Skip to content

Commit 9ef2a6c

Browse files
committed
Use new auth svr discovery method from latest auth SDK
1 parent 113b612 commit 9ef2a6c

File tree

4 files changed

+26
-19
lines changed

4 files changed

+26
-19
lines changed

client/src/components/__tests__/AuthDebugger.test.tsx

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const mockOAuthClientInfo = {
3636
// Mock MCP SDK functions - must be before imports
3737
jest.mock("@modelcontextprotocol/sdk/client/auth.js", () => ({
3838
auth: jest.fn(),
39-
discoverOAuthMetadata: jest.fn(),
39+
discoverAuthorizationServerMetadata: jest.fn(),
4040
registerClient: jest.fn(),
4141
startAuthorization: jest.fn(),
4242
exchangeAuthorization: jest.fn(),
@@ -46,7 +46,7 @@ jest.mock("@modelcontextprotocol/sdk/client/auth.js", () => ({
4646

4747
// Import the functions to get their types
4848
import {
49-
discoverOAuthMetadata,
49+
discoverAuthorizationServerMetadata,
5050
registerClient,
5151
startAuthorization,
5252
exchangeAuthorization,
@@ -57,9 +57,10 @@ import { OAuthMetadata } from "@modelcontextprotocol/sdk/shared/auth.js";
5757
import { EMPTY_DEBUGGER_STATE } from "@/lib/auth-types";
5858

5959
// Type the mocked functions properly
60-
const mockDiscoverOAuthMetadata = discoverOAuthMetadata as jest.MockedFunction<
61-
typeof discoverOAuthMetadata
62-
>;
60+
const mockDiscoverAuthorizationServerMetadata =
61+
discoverAuthorizationServerMetadata as jest.MockedFunction<
62+
typeof discoverAuthorizationServerMetadata
63+
>;
6364
const mockRegisterClient = registerClient as jest.MockedFunction<
6465
typeof registerClient
6566
>;
@@ -102,7 +103,9 @@ describe("AuthDebugger", () => {
102103
// Suppress console errors in tests to avoid JSDOM navigation noise
103104
jest.spyOn(console, "error").mockImplementation(() => {});
104105

105-
mockDiscoverOAuthMetadata.mockResolvedValue(mockOAuthMetadata);
106+
mockDiscoverAuthorizationServerMetadata.mockResolvedValue(
107+
mockOAuthMetadata,
108+
);
106109
mockRegisterClient.mockResolvedValue(mockOAuthClientInfo);
107110
mockDiscoverOAuthProtectedResourceMetadata.mockRejectedValue(
108111
new Error("No protected resource metadata found"),
@@ -203,7 +206,7 @@ describe("AuthDebugger", () => {
203206
});
204207

205208
// Should first discover and save OAuth metadata
206-
expect(mockDiscoverOAuthMetadata).toHaveBeenCalledWith(
209+
expect(mockDiscoverAuthorizationServerMetadata).toHaveBeenCalledWith(
207210
new URL("https://example.com/"),
208211
);
209212

@@ -216,7 +219,7 @@ describe("AuthDebugger", () => {
216219
});
217220

218221
it("should show error when quick OAuth flow fails to discover metadata", async () => {
219-
mockDiscoverOAuthMetadata.mockRejectedValue(
222+
mockDiscoverAuthorizationServerMetadata.mockRejectedValue(
220223
new Error("Metadata discovery failed"),
221224
);
222225

@@ -362,7 +365,7 @@ describe("AuthDebugger", () => {
362365
fireEvent.click(screen.getByText("Continue"));
363366
});
364367

365-
expect(mockDiscoverOAuthMetadata).toHaveBeenCalledWith(
368+
expect(mockDiscoverAuthorizationServerMetadata).toHaveBeenCalledWith(
366369
new URL("https://example.com/"),
367370
);
368371
});
@@ -509,7 +512,9 @@ describe("AuthDebugger", () => {
509512
mockDiscoverOAuthProtectedResourceMetadata.mockResolvedValue(
510513
mockResourceMetadata,
511514
);
512-
mockDiscoverOAuthMetadata.mockResolvedValue(mockOAuthMetadata);
515+
mockDiscoverAuthorizationServerMetadata.mockResolvedValue(
516+
mockOAuthMetadata,
517+
);
513518

514519
await act(async () => {
515520
renderAuthDebugger({
@@ -563,7 +568,9 @@ describe("AuthDebugger", () => {
563568
// Mock failed metadata discovery
564569
mockDiscoverOAuthProtectedResourceMetadata.mockRejectedValue(mockError);
565570
// But OAuth metadata should still work with the original URL
566-
mockDiscoverOAuthMetadata.mockResolvedValue(mockOAuthMetadata);
571+
mockDiscoverAuthorizationServerMetadata.mockResolvedValue(
572+
mockOAuthMetadata,
573+
);
567574

568575
await act(async () => {
569576
renderAuthDebugger({
@@ -603,7 +610,7 @@ describe("AuthDebugger", () => {
603610
});
604611

605612
// Verify that regular OAuth metadata discovery was still called
606-
expect(mockDiscoverOAuthMetadata).toHaveBeenCalledWith(
613+
expect(mockDiscoverAuthorizationServerMetadata).toHaveBeenCalledWith(
607614
new URL("https://example.com/"),
608615
);
609616
});

client/src/lib/oauth-state-machine.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { OAuthStep, AuthDebuggerState } from "./auth-types";
22
import { DebugInspectorOAuthClientProvider } from "./auth";
33
import {
4-
discoverOAuthMetadata,
4+
discoverAuthorizationServerMetadata,
55
registerClient,
66
startAuthorization,
77
exchangeAuthorization,
@@ -56,7 +56,7 @@ export const oauthTransitions: Record<OAuthStep, StateTransition> = {
5656
resourceMetadata ?? undefined,
5757
);
5858

59-
const metadata = await discoverOAuthMetadata(authServerUrl);
59+
const metadata = await discoverAuthorizationServerMetadata(authServerUrl);
6060
if (!metadata) {
6161
throw new Error("Failed to discover OAuth metadata");
6262
}

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
"@modelcontextprotocol/inspector-cli": "^0.16.3",
5151
"@modelcontextprotocol/inspector-client": "^0.16.3",
5252
"@modelcontextprotocol/inspector-server": "^0.16.3",
53-
"@modelcontextprotocol/sdk": "^1.17.0",
53+
"@modelcontextprotocol/sdk": "^1.17.2",
5454
"concurrently": "^9.2.0",
5555
"open": "^10.2.0",
5656
"shell-quote": "^1.8.3",

0 commit comments

Comments
 (0)