Merge pull request #611 from antholeole/oleina/logging

initalize logging after connection
This commit is contained in:
Ola Hungerford 2025-07-31 18:13:30 -07:00 • committed by GitHub
commit 21bb00499f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 14 additions and 0 deletions

View file

@ -18,6 +18,12 @@ export async function connect(
): Promise<void> {
try {
await client.connect(transport);
if (client.getServerCapabilities()?.logging) {
// default logging level is undefined in the spec, but the user of the
// inspector most likely wants debug.
await client.setLoggingLevel("debug");
}
} catch (error) {
throw new Error(
`Failed to connect to MCP server: ${error instanceof Error ? error.message : String(error)}`,

View file

@ -260,6 +260,7 @@ const App = () => {
window.location.hash = "elicitations";
},
getRoots: () => rootsRef.current,
defaultLoggingLevel: logLevel,
});
useEffect(() => {

View file

@ -28,6 +28,7 @@ import {
ToolListChangedNotificationSchema,
PromptListChangedNotificationSchema,
Progress,
LoggingLevel,
ElicitRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";
import { RequestOptions } from "@modelcontextprotocol/sdk/shared/protocol.js";
@ -72,6 +73,7 @@ interface UseConnectionOptions {
onElicitationRequest?: (request: any, resolve: any) => void;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
getRoots?: () => any[];
defaultLoggingLevel?: LoggingLevel;
}
export function useConnection({
@ -90,6 +92,7 @@ export function useConnection({
onPendingRequest,
onElicitationRequest,
getRoots,
defaultLoggingLevel,
}: UseConnectionOptions) {
const [connectionStatus, setConnectionStatus] =
useState<ConnectionStatus>("disconnected");
@ -560,6 +563,10 @@ export function useConnection({
});
}
if (capabilities?.logging && defaultLoggingLevel) {
await client.setLoggingLevel(defaultLoggingLevel);
}
if (onElicitationRequest) {
client.setRequestHandler(ElicitRequestSchema, async (request) => {
return new Promise((resolve) => {