Merge pull request #544 from richardkmichael/accurate-cli-version

fix: hard-coded CLI inspector version
This commit is contained in:
Ola Hungerford 2025-09-22 21:24:52 -07:00 • committed by GitHub
commit 42aa95b343
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 31 additions and 21 deletions

View file

@ -31,6 +31,8 @@ type JsonValue =
| JsonValue[]
| { [key: string]: JsonValue };
import packageJson from "../package.json" with { type: "json" };
type Args = {
target: string[];
method?: string;
@ -105,10 +107,12 @@ async function callMethod(args: Args): Promise<void> {
args.headers,
);
const transport = createTransport(transportOptions);
const client = new Client({
name: "inspector-cli",
version: "0.5.1",
});
const [, name = packageJson.name] = packageJson.name.split("/");
const version = packageJson.version;
const clientIdentity = { name, version };
const client = new Client(clientIdentity);
try {
await connect(client, transport);

View file

@ -1,4 +1,12 @@
import { InspectorConfig } from "./configurationTypes";
import packageJson from "../../package.json";
// Client identity for MCP connections
export const CLIENT_IDENTITY = (() => {
const [, name = packageJson.name] = packageJson.name.split("/");
const version = packageJson.version;
return { name, version };
})();
// OAuth-related session storage keys
export const SESSION_KEYS = {

View file

@ -2,7 +2,7 @@ import { renderHook, act } from "@testing-library/react";
import { useConnection } from "../useConnection";
import { z } from "zod";
import { ClientRequest } from "@modelcontextprotocol/sdk/types.js";
import { DEFAULT_INSPECTOR_CONFIG } from "../../constants";
import { DEFAULT_INSPECTOR_CONFIG, CLIENT_IDENTITY } from "../../constants";
import {
SSEClientTransportOptions,
SseError,
@ -251,8 +251,8 @@ describe("useConnection", () => {
expect(Client).toHaveBeenCalledWith(
expect.objectContaining({
name: "mcp-inspector",
version: expect.any(String),
name: CLIENT_IDENTITY.name,
version: CLIENT_IDENTITY.version,
}),
expect.objectContaining({
capabilities: expect.objectContaining({

View file

@ -35,7 +35,7 @@ import { RequestOptions } from "@modelcontextprotocol/sdk/shared/protocol.js";
import { useEffect, useState } from "react";
import { useToast } from "@/lib/hooks/useToast";
import { z } from "zod";
import { ConnectionStatus } from "../constants";
import { ConnectionStatus, CLIENT_IDENTITY } from "../constants";
import { Notification } from "../notificationTypes";
import {
auth,
@ -47,7 +47,6 @@ import {
saveClientInformationToSessionStorage,
discoverScopes,
} from "../auth";
import packageJson from "../../../package.json";
import {
getMCPProxyAddress,
getMCPServerRequestMaxTotalTimeout,
@ -364,20 +363,19 @@ export function useConnection({
};
const connect = async (_e?: unknown, retryCount: number = 0) => {
const client = new Client<Request, Notification, Result>(
{
name: "mcp-inspector",
version: packageJson.version,
},
{
capabilities: {
sampling: {},
elicitation: {},
roots: {
listChanged: true,
},
const clientCapabilities = {
capabilities: {
sampling: {},
elicitation: {},
roots: {
listChanged: true,
},
},
};
const client = new Client<Request, Notification, Result>(
CLIENT_IDENTITY,
clientCapabilities,
);
// Only check proxy health for proxy connections