@polpo-ai/connect-server 0.15.139 → 0.15.141

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export * from "./memory-store.js";
2
2
  export * from "./oauth.js";
3
3
  export * from "./secrets.js";
4
4
  export * from "./service.js";
5
+ export * from "./mcp-oauth.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -2,4 +2,5 @@ export * from "./memory-store.js";
2
2
  export * from "./oauth.js";
3
3
  export * from "./secrets.js";
4
4
  export * from "./service.js";
5
+ export * from "./mcp-oauth.js";
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { type McpOAuthClientInformation, type McpOAuthClientMode, type McpOAuthInspection, type McpOAuthSecretMaterial, type TokenSet } from "@polpo-ai/connect";
2
+ export interface McpOAuthClientRegistrationStore {
3
+ get(input: {
4
+ resource: string;
5
+ redirectUri: string;
6
+ mode: McpOAuthClientMode;
7
+ }): Promise<McpOAuthClientInformation | null>;
8
+ set(input: {
9
+ resource: string;
10
+ redirectUri: string;
11
+ mode: McpOAuthClientMode;
12
+ client: McpOAuthClientInformation;
13
+ }): Promise<void>;
14
+ }
15
+ export interface InspectMcpOAuthInput {
16
+ url: string;
17
+ transport?: "http" | "sse";
18
+ }
19
+ export interface StartMcpOAuthProtocolInput extends InspectMcpOAuthInput {
20
+ redirectUri: string;
21
+ state: string;
22
+ scopes?: string[];
23
+ mode: McpOAuthClientMode;
24
+ clientName?: string;
25
+ clientUri?: string;
26
+ clientMetadataUrl?: string;
27
+ preRegisteredClient?: McpOAuthClientInformation;
28
+ }
29
+ export interface StartMcpOAuthProtocolResult {
30
+ authorizationUrl: string;
31
+ material: McpOAuthSecretMaterial;
32
+ }
33
+ export interface McpOAuthProtocolOptions {
34
+ fetch: typeof fetch;
35
+ registrations?: McpOAuthClientRegistrationStore;
36
+ now?: () => Date;
37
+ }
38
+ export declare function createMcpOAuthProtocol(options: McpOAuthProtocolOptions): {
39
+ inspect: (input: InspectMcpOAuthInput) => Promise<McpOAuthInspection>;
40
+ start: (input: StartMcpOAuthProtocolInput) => Promise<StartMcpOAuthProtocolResult>;
41
+ complete: (input: {
42
+ material: McpOAuthSecretMaterial;
43
+ code: string;
44
+ requestedScopes: string[];
45
+ }) => Promise<TokenSet>;
46
+ refresh: (input: {
47
+ material: McpOAuthSecretMaterial;
48
+ fallbackScopes: string[];
49
+ }) => Promise<TokenSet>;
50
+ };
51
+ //# sourceMappingURL=mcp-oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-oauth.d.ts","sourceRoot":"","sources":["../src/mcp-oauth.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,+BAA+B;IAC9C,GAAG,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,kBAAkB,CAAA;KAAE,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;IAC3H,GAAG,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,kBAAkB,CAAC;QAAC,MAAM,EAAE,yBAAyB,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnI;AAED,MAAM,WAAW,oBAAoB;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE;AAEjF,MAAM,WAAW,0BAA2B,SAAQ,oBAAoB;IACtE,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,kBAAkB,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;CACjD;AAED,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,aAAa,CAAC,EAAE,+BAA+B,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB;qBAGvC,oBAAoB,KAAG,OAAO,CAAC,kBAAkB,CAAC;mBA6BpD,0BAA0B,KAAG,OAAO,CAAC,2BAA2B,CAAC;sBAsB9D;QAAE,QAAQ,EAAE,sBAAsB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;qBAoBlG;QAAE,QAAQ,EAAE,sBAAsB,CAAC;QAAC,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE,KAAG,OAAO,CAAC,QAAQ,CAAC;EAiEjH"}
@@ -0,0 +1,192 @@
1
+ import { discoverOAuthServerInfo, exchangeAuthorization, refreshAuthorization, registerClient, startAuthorization, } from "@modelcontextprotocol/sdk/client/auth.js";
2
+ import { ConnectError, } from "@polpo-ai/connect";
3
+ export function createMcpOAuthProtocol(options) {
4
+ const now = options.now ?? (() => new Date());
5
+ async function inspect(input) {
6
+ const url = normalizeHttpsUrl(input.url);
7
+ try {
8
+ const discovered = await discoverOAuthServerInfo(url, { fetchFn: options.fetch });
9
+ const discovery = normalizeDiscovery(url, discovered.authorizationServerUrl, discovered.authorizationServerMetadata, discovered.resourceMetadata);
10
+ const methods = discovery.codeChallengeMethodsSupported;
11
+ if (methods && !methods.includes("S256")) {
12
+ throw new ConnectError("oauth_discovery_failed", "MCP authorization server does not support PKCE S256");
13
+ }
14
+ const clientModes = ["metadata_document", "pre_registered"];
15
+ if (discovery.registrationEndpoint)
16
+ clientModes.unshift("dynamic");
17
+ return { url, transport: input.transport ?? "http", auth: "oauth2", discovery, clientModes, warnings: [] };
18
+ }
19
+ catch (error) {
20
+ if (error instanceof ConnectError)
21
+ throw error;
22
+ return {
23
+ url,
24
+ transport: input.transport ?? "http",
25
+ auth: "unknown",
26
+ clientModes: ["metadata_document", "pre_registered"],
27
+ warnings: ["OAuth metadata discovery was inconclusive; choose authentication explicitly."],
28
+ };
29
+ }
30
+ }
31
+ async function start(input) {
32
+ const inspected = await inspect(input);
33
+ if (!inspected.discovery) {
34
+ throw new ConnectError("oauth_discovery_failed", "MCP OAuth metadata could not be discovered");
35
+ }
36
+ const redirectUri = normalizeHttpsUrl(input.redirectUri);
37
+ const scopes = normalizeScopes(input.scopes ?? inspected.discovery.scopesSupported ?? []);
38
+ const client = await resolveClient(input, inspected.discovery, redirectUri, scopes);
39
+ const started = await startAuthorization(inspected.discovery.authorizationServer, {
40
+ metadata: inspected.discovery.rawAuthorizationServerMetadata,
41
+ clientInformation: client,
42
+ redirectUrl: redirectUri,
43
+ scope: scopes.length ? scopes.join(" ") : undefined,
44
+ state: input.state,
45
+ resource: new URL(inspected.discovery.resource),
46
+ });
47
+ return {
48
+ authorizationUrl: started.authorizationUrl.toString(),
49
+ material: { mode: input.mode, redirectUri, discovery: inspected.discovery, client, codeVerifier: started.codeVerifier },
50
+ };
51
+ }
52
+ async function complete(input) {
53
+ if (!input.material.codeVerifier) {
54
+ throw new ConnectError("token_exchange_failed", "MCP OAuth PKCE verifier is missing");
55
+ }
56
+ try {
57
+ const tokens = await exchangeAuthorization(input.material.discovery.authorizationServer, {
58
+ metadata: input.material.discovery.rawAuthorizationServerMetadata,
59
+ clientInformation: input.material.client,
60
+ authorizationCode: input.code,
61
+ codeVerifier: input.material.codeVerifier,
62
+ redirectUri: input.material.redirectUri,
63
+ resource: new URL(input.material.discovery.resource),
64
+ fetchFn: options.fetch,
65
+ });
66
+ return normalizeTokens(tokens, input.requestedScopes, now());
67
+ }
68
+ catch (error) {
69
+ throw protocolError("token_exchange_failed", "MCP OAuth token exchange failed", error);
70
+ }
71
+ }
72
+ async function refresh(input) {
73
+ if (!input.material.tokens?.refreshToken) {
74
+ throw new ConnectError("refresh_unavailable", "MCP OAuth refresh token is unavailable");
75
+ }
76
+ try {
77
+ const tokens = await refreshAuthorization(input.material.discovery.authorizationServer, {
78
+ metadata: input.material.discovery.rawAuthorizationServerMetadata,
79
+ clientInformation: input.material.client,
80
+ refreshToken: input.material.tokens.refreshToken,
81
+ resource: new URL(input.material.discovery.resource),
82
+ fetchFn: options.fetch,
83
+ });
84
+ return normalizeTokens(tokens, input.fallbackScopes, now(), input.material.tokens.refreshToken);
85
+ }
86
+ catch (error) {
87
+ throw protocolError("refresh_unavailable", "MCP OAuth token refresh failed", error);
88
+ }
89
+ }
90
+ async function resolveClient(input, discovery, redirectUri, scopes) {
91
+ if (input.mode === "pre_registered") {
92
+ if (!input.preRegisteredClient?.client_id) {
93
+ throw new ConnectError("oauth_registration_failed", "A pre-registered MCP OAuth client is required");
94
+ }
95
+ return input.preRegisteredClient;
96
+ }
97
+ if (input.mode === "metadata_document") {
98
+ if (!input.clientMetadataUrl) {
99
+ throw new ConnectError("oauth_registration_failed", "Client ID Metadata Document URL is required");
100
+ }
101
+ return { client_id: normalizeHttpsUrl(input.clientMetadataUrl) };
102
+ }
103
+ if (!discovery.registrationEndpoint) {
104
+ throw new ConnectError("oauth_registration_failed", "MCP authorization server does not support dynamic client registration");
105
+ }
106
+ const cached = await options.registrations?.get({ resource: discovery.resource, redirectUri, mode: input.mode });
107
+ if (cached)
108
+ return cached;
109
+ const metadata = {
110
+ client_name: input.clientName ?? "Polpo",
111
+ redirect_uris: [redirectUri],
112
+ grant_types: ["authorization_code", "refresh_token"],
113
+ response_types: ["code"],
114
+ token_endpoint_auth_method: "none",
115
+ ...(input.clientUri ? { client_uri: normalizeHttpsUrl(input.clientUri) } : {}),
116
+ };
117
+ try {
118
+ const registered = await registerClient(discovery.authorizationServer, {
119
+ metadata: discovery.rawAuthorizationServerMetadata,
120
+ clientMetadata: metadata,
121
+ scope: scopes.length ? scopes.join(" ") : undefined,
122
+ fetchFn: options.fetch,
123
+ });
124
+ const client = registered;
125
+ await options.registrations?.set({ resource: discovery.resource, redirectUri, mode: input.mode, client });
126
+ return client;
127
+ }
128
+ catch (error) {
129
+ throw protocolError("oauth_registration_failed", "MCP OAuth dynamic client registration failed", error);
130
+ }
131
+ }
132
+ return { inspect, start, complete, refresh };
133
+ }
134
+ function normalizeDiscovery(resource, authorizationServer, metadata, protectedResource) {
135
+ const authorizationEndpoint = text(metadata?.authorization_endpoint);
136
+ const tokenEndpoint = text(metadata?.token_endpoint);
137
+ if (!authorizationEndpoint || !tokenEndpoint) {
138
+ throw new ConnectError("oauth_discovery_failed", "MCP OAuth metadata is missing authorization or token endpoint");
139
+ }
140
+ const registrationEndpoint = text(metadata?.registration_endpoint);
141
+ const revocationEndpoint = text(metadata?.revocation_endpoint);
142
+ const scopesSupported = strings(metadata?.scopes_supported);
143
+ const codeChallengeMethodsSupported = strings(metadata?.code_challenge_methods_supported);
144
+ return {
145
+ resource: normalizeHttpsUrl(text(protectedResource?.resource) ?? resource),
146
+ authorizationServer: normalizeHttpsUrl(authorizationServer),
147
+ authorizationEndpoint: normalizeHttpsUrl(authorizationEndpoint),
148
+ tokenEndpoint: normalizeHttpsUrl(tokenEndpoint),
149
+ ...(registrationEndpoint ? { registrationEndpoint: normalizeHttpsUrl(registrationEndpoint) } : {}),
150
+ ...(revocationEndpoint ? { revocationEndpoint: normalizeHttpsUrl(revocationEndpoint) } : {}),
151
+ ...(scopesSupported ? { scopesSupported } : {}),
152
+ ...(codeChallengeMethodsSupported ? { codeChallengeMethodsSupported } : {}),
153
+ rawAuthorizationServerMetadata: metadata,
154
+ rawProtectedResourceMetadata: protectedResource,
155
+ };
156
+ }
157
+ function normalizeTokens(tokens, fallbackScopes, now, fallbackRefreshToken) {
158
+ const accessToken = text(tokens.access_token);
159
+ if (!accessToken)
160
+ throw new ConnectError("token_exchange_failed", "MCP OAuth response is missing access_token");
161
+ const expiresIn = typeof tokens.expires_in === "number" ? tokens.expires_in : undefined;
162
+ return {
163
+ accessToken,
164
+ refreshToken: text(tokens.refresh_token) ?? fallbackRefreshToken,
165
+ tokenType: text(tokens.token_type) ?? "Bearer",
166
+ expiresAt: expiresIn === undefined ? undefined : new Date(now.getTime() + expiresIn * 1000).toISOString(),
167
+ scopes: normalizeScopes(text(tokens.scope)?.split(/[,\s]+/) ?? fallbackScopes),
168
+ raw: tokens,
169
+ };
170
+ }
171
+ function normalizeHttpsUrl(value) {
172
+ let url;
173
+ try {
174
+ url = new URL(value);
175
+ }
176
+ catch {
177
+ throw new ConnectError("invalid_request", "MCP OAuth URL must be absolute");
178
+ }
179
+ if (url.protocol !== "https:" || url.username || url.password) {
180
+ throw new ConnectError("invalid_request", "MCP OAuth URL must use HTTPS and cannot contain credentials");
181
+ }
182
+ return url.toString();
183
+ }
184
+ function normalizeScopes(values) {
185
+ return [...new Set(values.map((value) => value.trim()).filter(Boolean))].sort();
186
+ }
187
+ function text(value) { return typeof value === "string" && value.trim() ? value.trim() : undefined; }
188
+ function strings(value) { return Array.isArray(value) && value.every((item) => typeof item === "string") ? value : undefined; }
189
+ function protocolError(code, message, error) {
190
+ return error instanceof ConnectError ? error : new ConnectError(code, message, { details: error instanceof Error ? error.message : String(error) });
191
+ }
192
+ //# sourceMappingURL=mcp-oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-oauth.js","sourceRoot":"","sources":["../src/mcp-oauth.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,10 @@ export declare class MemoryConnectStore implements ConnectStore, ConnectionLinkS
11
11
  deleteConnection(id: string): Promise<void>;
12
12
  saveOAuthState(record: OAuthStateRecord): Promise<void>;
13
13
  consumeOAuthState(state: string): Promise<OAuthStateRecord | null>;
14
+ getOAuthState(state: string): Promise<OAuthStateRecord | null>;
15
+ claimOAuthState(state: string, claimToken: string, claimExpiresAt: string, now: string): Promise<OAuthStateRecord | null>;
16
+ completeOAuthState(state: string, claimToken: string, connectionId: string): Promise<OAuthStateRecord | null>;
17
+ releaseOAuthState(state: string, claimToken: string, errorCode: string): Promise<OAuthStateRecord | null>;
14
18
  listConnectionLinks(filter?: ConnectionLinkListFilter): Promise<ConnectionLink[]>;
15
19
  getConnectionLink(id: string): Promise<ConnectionLink | null>;
16
20
  upsertConnectionLink(link: ConnectionLink): Promise<ConnectionLink>;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,kBAAmB,YAAW,YAAY,EAAE,mBAAmB,EAAE,2BAA2B;IACvG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqC;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;IAErE,eAAe,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI/E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAK3D,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKrE,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQnH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAMlE,mBAAmB,CAAC,MAAM,GAAE,wBAA6B,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAQrF,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAK7D,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAKnE,oBAAoB,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GACvD,OAAO,CAAC,cAAc,CAAC;IAQpB,0BAA0B,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAK7E,6BAA6B,CACjC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;CAO1C"}
1
+ {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,kBAAmB,YAAW,YAAY,EAAE,mBAAmB,EAAE,2BAA2B;IACvG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuC;IACnE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqC;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;IAErE,eAAe,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI/E,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAK3D,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKrE,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQnH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAMlE,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAK9D,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAmB7B,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAe7B,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAc7B,mBAAmB,CAAC,MAAM,GAAE,wBAA6B,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAQrF,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAK7D,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAKnE,oBAAoB,CACxB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GACvD,OAAO,CAAC,cAAc,CAAC;IAQpB,0BAA0B,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAK7E,6BAA6B,CACjC,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;CAO1C"}
@@ -34,6 +34,57 @@ export class MemoryConnectStore {
34
34
  this.oauthStates.delete(state);
35
35
  return record ? clone(record) : null;
36
36
  }
37
+ async getOAuthState(state) {
38
+ const record = this.oauthStates.get(state);
39
+ return record ? clone(record) : null;
40
+ }
41
+ async claimOAuthState(state, claimToken, claimExpiresAt, now) {
42
+ const record = this.oauthStates.get(state);
43
+ if (!record || record.status === "completed")
44
+ return record ? clone(record) : null;
45
+ if (record.status === "processing"
46
+ && record.claimExpiresAt
47
+ && new Date(record.claimExpiresAt).getTime() > new Date(now).getTime())
48
+ return null;
49
+ const claimed = {
50
+ ...record,
51
+ status: "processing",
52
+ claimToken,
53
+ claimExpiresAt,
54
+ attempts: (record.attempts ?? 0) + 1,
55
+ };
56
+ this.oauthStates.set(state, clone(claimed));
57
+ return clone(claimed);
58
+ }
59
+ async completeOAuthState(state, claimToken, connectionId) {
60
+ const record = this.oauthStates.get(state);
61
+ if (!record || record.claimToken !== claimToken)
62
+ return null;
63
+ const completed = {
64
+ ...record,
65
+ status: "completed",
66
+ completedConnectionId: connectionId,
67
+ claimToken: undefined,
68
+ claimExpiresAt: undefined,
69
+ lastErrorCode: undefined,
70
+ };
71
+ this.oauthStates.set(state, clone(completed));
72
+ return clone(completed);
73
+ }
74
+ async releaseOAuthState(state, claimToken, errorCode) {
75
+ const record = this.oauthStates.get(state);
76
+ if (!record || record.claimToken !== claimToken)
77
+ return null;
78
+ const released = {
79
+ ...record,
80
+ status: "pending",
81
+ claimToken: undefined,
82
+ claimExpiresAt: undefined,
83
+ lastErrorCode: errorCode,
84
+ };
85
+ this.oauthStates.set(state, clone(released));
86
+ return clone(released);
87
+ }
37
88
  async listConnectionLinks(filter = {}) {
38
89
  return [...this.links.values()].filter((link) => (!filter.connectionId || link.connectionId === filter.connectionId)
39
90
  && (!filter.projectId || link.projectId === filter.projectId)
@@ -1 +1 @@
1
- {"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"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"}
package/dist/service.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { type ConnectPolicy, type ConnectStore, type ConnectSubject, type ConnectionAudience, type ConnectionBindingAttributes, type ConnectionLinkStore, type ConnectionLink, type ConnectionLinkListFilter, type ConnectionOwner, type ConnectionRecord, type ConnectionSetupSession, type ConnectionSetupSessionStore, type ConnectorProviderDefinition, type McpConnectionAuth, type McpConnectionTransport, type OAuthClientResolver, type ResolvedConnectionCredential, type RuntimeToken } from "@polpo-ai/connect";
1
+ import { type ConnectPolicy, type ConnectStore, type ConnectSubject, type ConnectionAudience, type ConnectionBindingAttributes, type ConnectionLinkStore, type ConnectionLink, type ConnectionLinkListFilter, type ConnectionOwner, type ConnectionRecord, type ConnectionSetupSession, type ConnectionSetupSessionStore, type ConnectorProviderDefinition, type McpConnectionAuth, type McpConnectionTransport, type McpOAuthClientInformation, type McpOAuthClientMode, type McpOAuthInspection, type OAuthClientResolver, type ResolvedConnectionCredential, type RuntimeToken } from "@polpo-ai/connect";
2
2
  import { type ConnectionRequest, type ConnectionResponse } from "@polpo-ai/core";
3
3
  import { type ConnectionSecretStore, type TokenRefreshCoordinator } from "./secrets.js";
4
+ import { type McpOAuthClientRegistrationStore } from "./mcp-oauth.js";
4
5
  export interface CreateConnectServiceOptions {
5
6
  providers: readonly ConnectorProviderDefinition[];
6
7
  store: ConnectStore;
@@ -18,6 +19,8 @@ export interface CreateConnectServiceOptions {
18
19
  links?: ConnectionLinkStore;
19
20
  setupSessionTtlMs?: number;
20
21
  allowedReturnUrlOrigins?: readonly string[];
22
+ mcpOAuthRegistrations?: McpOAuthClientRegistrationStore;
23
+ mcpOAuthCallbackClaimTtlMs?: number;
21
24
  }
22
25
  export interface CreateApiKeyConnectionInput {
23
26
  providerId: string;
@@ -60,6 +63,27 @@ export interface StartOAuthResult {
60
63
  state: string;
61
64
  expiresAt: string;
62
65
  }
66
+ export interface InspectMcpOAuthConnectionInput {
67
+ url: string;
68
+ transport?: McpConnectionTransport;
69
+ }
70
+ export interface StartMcpOAuthInput {
71
+ providerId?: string;
72
+ name?: string;
73
+ url: string;
74
+ transport?: McpConnectionTransport;
75
+ scopes?: string[];
76
+ subject?: ConnectionOwner;
77
+ projectId?: string;
78
+ orgId?: string;
79
+ redirectUri: string;
80
+ mode: McpOAuthClientMode;
81
+ clientName?: string;
82
+ clientUri?: string;
83
+ clientMetadataUrl?: string;
84
+ preRegisteredClient?: McpOAuthClientInformation;
85
+ metadata?: Record<string, unknown>;
86
+ }
63
87
  export interface CompleteOAuthInput {
64
88
  state: string;
65
89
  code?: string;
@@ -111,6 +135,9 @@ export interface ConnectService {
111
135
  unlinkConnection(input: UnlinkConnectionInput): Promise<ConnectionLink>;
112
136
  createApiKeyConnection(input: CreateApiKeyConnectionInput): Promise<ConnectionRecord>;
113
137
  createMcpConnection(input: CreateMcpConnectionInput): Promise<ConnectionRecord>;
138
+ inspectMcpOAuth(input: InspectMcpOAuthConnectionInput): Promise<McpOAuthInspection>;
139
+ startMcpOAuth(input: StartMcpOAuthInput): Promise<StartOAuthResult>;
140
+ completeMcpOAuth(input: CompleteOAuthInput): Promise<ConnectionRecord>;
114
141
  createSetupSession(input: CreateConnectionSetupSessionInput): Promise<ConnectionSetupSession>;
115
142
  startOAuthSetup(input: StartOAuthSetupInput): Promise<StartOAuthResult>;
116
143
  startOAuth(input: StartOAuthInput): Promise<StartOAuthResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/service.js CHANGED
@@ -3,6 +3,7 @@ import { ConnectionSelectionError, } from "@polpo-ai/core";
3
3
  import { lookup } from "node:dns/promises";
4
4
  import { MemoryTokenRefreshCoordinator, isVersionedConnectionSecretStore, } from "./secrets.js";
5
5
  import { createOpaqueToken, createPkcePair, parseScopes, toFormBody } from "./oauth.js";
6
+ import { createMcpOAuthProtocol, } from "./mcp-oauth.js";
6
7
  export function createConnectService(options) {
7
8
  const registry = createConnectorRegistry(options.providers);
8
9
  const fetchImpl = options.fetch ?? fetch;
@@ -12,6 +13,20 @@ export function createConnectService(options) {
12
13
  const setupSessionTtlMs = options.setupSessionTtlMs ?? 10 * 60_000;
13
14
  const refreshCoordinator = options.refreshCoordinator ?? new MemoryTokenRefreshCoordinator();
14
15
  const resolveHostname = options.resolveHostname ?? (async (hostname) => (await lookup(hostname, { all: true, verbatim: true })).map((entry) => entry.address));
16
+ const mcpOAuthFetch = async (request, init) => {
17
+ const url = new URL(request instanceof Request ? request.url : String(request));
18
+ if (url.protocol !== "https:") {
19
+ throw new ConnectError("oauth_discovery_failed", "MCP OAuth network requests must use HTTPS");
20
+ }
21
+ await assertPublicDns(url.hostname, resolveHostname);
22
+ return fetchImpl(request, { ...init, redirect: "error" });
23
+ };
24
+ const mcpOAuth = createMcpOAuthProtocol({
25
+ fetch: mcpOAuthFetch,
26
+ registrations: options.mcpOAuthRegistrations,
27
+ now,
28
+ });
29
+ const mcpOAuthCallbackClaimTtlMs = options.mcpOAuthCallbackClaimTtlMs ?? 30_000;
15
30
  const resolveOAuthClient = async (input) => {
16
31
  if (options.oauthClients) {
17
32
  const client = await options.oauthClients.resolve({
@@ -236,6 +251,152 @@ export function createConnectService(options) {
236
251
  metadata,
237
252
  });
238
253
  },
254
+ async inspectMcpOAuth(input) {
255
+ return mcpOAuth.inspect({ url: input.url, transport: input.transport });
256
+ },
257
+ async startMcpOAuth(input) {
258
+ const provider = registry.require(input.providerId ?? "mcp_url");
259
+ if (provider.auth.type !== "mcp") {
260
+ throw new ConnectError("unsupported_auth", `Provider "${provider.id}" does not use MCP auth`);
261
+ }
262
+ const url = normalizeMcpUrl(input.url, false);
263
+ const transport = input.transport ?? "http";
264
+ const requestedScopes = normalizeScopes(input.scopes ?? provider.auth.defaultScopes ?? []);
265
+ const state = createOpaqueToken();
266
+ const pendingConnectionId = createId("conn");
267
+ const temporarySecretRef = createId("connsec");
268
+ const started = await mcpOAuth.start({
269
+ url,
270
+ transport,
271
+ redirectUri: input.redirectUri,
272
+ state,
273
+ scopes: requestedScopes,
274
+ mode: input.mode,
275
+ clientName: input.clientName,
276
+ clientUri: input.clientUri,
277
+ clientMetadataUrl: input.clientMetadataUrl,
278
+ preRegisteredClient: input.preRegisteredClient,
279
+ });
280
+ const createdAt = now();
281
+ const expiresAt = new Date(createdAt.getTime() + oauthStateTtlMs);
282
+ await options.secrets.setSecret(temporarySecretRef, {
283
+ kind: "mcp",
284
+ mcpOAuth: started.material,
285
+ });
286
+ try {
287
+ await options.store.saveOAuthState({
288
+ state,
289
+ providerId: provider.id,
290
+ flowKind: "mcp",
291
+ status: "pending",
292
+ subject: input.subject,
293
+ requestedScopes,
294
+ redirectUri: started.material.redirectUri,
295
+ projectId: input.projectId,
296
+ orgId: input.orgId,
297
+ connectionName: input.name,
298
+ temporarySecretRef,
299
+ createdAt: createdAt.toISOString(),
300
+ expiresAt: expiresAt.toISOString(),
301
+ metadata: {
302
+ ...(input.metadata ?? {}),
303
+ url,
304
+ transport,
305
+ auth: "oauth2",
306
+ oauthClientMode: input.mode,
307
+ pendingConnectionId,
308
+ },
309
+ });
310
+ }
311
+ catch (error) {
312
+ await options.secrets.deleteSecret(temporarySecretRef).catch(() => undefined);
313
+ throw error;
314
+ }
315
+ return { authorizationUrl: started.authorizationUrl, state, expiresAt: expiresAt.toISOString() };
316
+ },
317
+ async completeMcpOAuth(input) {
318
+ const store = options.store;
319
+ if (!store.getOAuthState || !store.claimOAuthState || !store.completeOAuthState || !store.releaseOAuthState) {
320
+ throw new ConnectError("setup_invalid", "Host store does not support retry-safe MCP OAuth callbacks");
321
+ }
322
+ const current = await store.getOAuthState(input.state);
323
+ if (!current || current.flowKind !== "mcp") {
324
+ throw new ConnectError("oauth_state_not_found", "MCP OAuth state was not found");
325
+ }
326
+ if (current.status === "completed" && current.completedConnectionId) {
327
+ const completed = await store.getConnection(current.completedConnectionId);
328
+ if (completed)
329
+ return completed;
330
+ }
331
+ if (new Date(current.expiresAt).getTime() <= now().getTime()) {
332
+ throw new ConnectError("oauth_state_expired", "MCP OAuth state has expired");
333
+ }
334
+ if (input.error) {
335
+ throw new ConnectError("oauth_error", input.errorDescription ?? input.error);
336
+ }
337
+ if (!input.code)
338
+ throw new ConnectError("invalid_request", "OAuth callback is missing code");
339
+ const claimToken = createOpaqueToken();
340
+ const claimed = await store.claimOAuthState(input.state, claimToken, new Date(now().getTime() + mcpOAuthCallbackClaimTtlMs).toISOString(), now().toISOString());
341
+ if (!claimed) {
342
+ throw new ConnectError("oauth_callback_in_progress", "MCP OAuth callback is already being processed");
343
+ }
344
+ const pendingConnectionId = typeof claimed.metadata?.pendingConnectionId === "string"
345
+ ? claimed.metadata.pendingConnectionId
346
+ : undefined;
347
+ try {
348
+ if (pendingConnectionId) {
349
+ const existing = await store.getConnection(pendingConnectionId);
350
+ if (existing?.status === "active") {
351
+ await store.completeOAuthState(input.state, claimToken, existing.id);
352
+ return existing;
353
+ }
354
+ }
355
+ if (!claimed.temporarySecretRef) {
356
+ throw new ConnectError("secret_not_found", "MCP OAuth transient secret is missing");
357
+ }
358
+ const transient = await options.secrets.getSecret(claimed.temporarySecretRef);
359
+ if (!transient?.mcpOAuth) {
360
+ throw new ConnectError("secret_not_found", "MCP OAuth transient material is unavailable");
361
+ }
362
+ const tokens = await mcpOAuth.complete({
363
+ material: transient.mcpOAuth,
364
+ code: input.code,
365
+ requestedScopes: claimed.requestedScopes,
366
+ });
367
+ const grantedScopes = normalizeScopes(tokens.scopes ?? claimed.requestedScopes);
368
+ const material = {
369
+ ...transient.mcpOAuth,
370
+ codeVerifier: undefined,
371
+ tokens,
372
+ };
373
+ await options.secrets.setSecret(claimed.temporarySecretRef, { kind: "mcp", mcpOAuth: material });
374
+ const id = pendingConnectionId ?? createId("conn");
375
+ const connection = await store.upsertConnection({
376
+ id,
377
+ providerId: claimed.providerId,
378
+ name: claimed.connectionName,
379
+ projectId: claimed.projectId,
380
+ orgId: claimed.orgId,
381
+ owner: claimed.subject,
382
+ authType: "mcp",
383
+ status: "active",
384
+ grantedScopes,
385
+ secretRef: claimed.temporarySecretRef,
386
+ tokenExpiresAt: tokens.expiresAt,
387
+ createdAt: now().toISOString(),
388
+ updatedAt: now().toISOString(),
389
+ metadata: omitInternalMcpStateMetadata(claimed.metadata),
390
+ });
391
+ await store.completeOAuthState(input.state, claimToken, connection.id);
392
+ return connection;
393
+ }
394
+ catch (error) {
395
+ const code = error instanceof ConnectError ? error.code : "oauth_error";
396
+ await store.releaseOAuthState(input.state, claimToken, code).catch(() => undefined);
397
+ throw error;
398
+ }
399
+ },
239
400
  async createSetupSession(input) {
240
401
  if (!options.setupSessions || !options.oauthClients) {
241
402
  throw new ConnectError("setup_invalid", "Connection setup sessions are not configured on this host");
@@ -467,6 +628,41 @@ export function createConnectService(options) {
467
628
  };
468
629
  }
469
630
  if (secret.kind === "mcp") {
631
+ if (secret.mcpOAuth?.tokens?.accessToken) {
632
+ let material = secret.mcpOAuth;
633
+ if (input.forceRefresh || shouldRefresh(material.tokens, now(), tokenRefreshSkewMs)) {
634
+ material = await refreshCoordinator.runExclusive(connection.id, async () => {
635
+ const latest = await options.secrets.getSecret(connection.secretRef);
636
+ if (!latest?.mcpOAuth?.tokens?.accessToken) {
637
+ throw new ConnectError("token_not_available", "MCP OAuth connection secret is empty");
638
+ }
639
+ if (!input.forceRefresh && !shouldRefresh(latest.mcpOAuth.tokens, now(), tokenRefreshSkewMs)) {
640
+ return latest.mcpOAuth;
641
+ }
642
+ const tokens = await mcpOAuth.refresh({
643
+ material: latest.mcpOAuth,
644
+ fallbackScopes: scopes,
645
+ });
646
+ const refreshed = { ...latest.mcpOAuth, tokens };
647
+ await options.secrets.setSecret(connection.secretRef, { kind: "mcp", mcpOAuth: refreshed });
648
+ await options.store.updateConnection(connection.id, {
649
+ tokenExpiresAt: tokens.expiresAt,
650
+ updatedAt: now().toISOString(),
651
+ });
652
+ return refreshed;
653
+ });
654
+ }
655
+ return {
656
+ kind: "mcp",
657
+ accessToken: material.tokens.accessToken,
658
+ tokenType: material.tokens.tokenType ?? "Bearer",
659
+ expiresAt: material.tokens.expiresAt,
660
+ scopes,
661
+ connectionId: connection.id,
662
+ providerId: connection.providerId,
663
+ metadata: connection.metadata,
664
+ };
665
+ }
470
666
  if (!secret.apiKey)
471
667
  throw new ConnectError("token_not_available", "MCP connection secret is empty");
472
668
  return {
@@ -990,7 +1186,19 @@ function isLocalHost(hostname) {
990
1186
  return hostname === "localhost" || hostname === "127.0.0.1" || hostname.endsWith(".localhost");
991
1187
  }
992
1188
  function readMcpAuthMode(metadata) {
993
- return metadata?.auth === "none" ? "none" : "bearer";
1189
+ if (metadata?.auth === "none")
1190
+ return "none";
1191
+ if (metadata?.auth === "oauth2")
1192
+ return "oauth2";
1193
+ if (metadata?.auth === "header")
1194
+ return "header";
1195
+ return "bearer";
1196
+ }
1197
+ function omitInternalMcpStateMetadata(metadata) {
1198
+ if (!metadata)
1199
+ return undefined;
1200
+ const { pendingConnectionId: _pendingConnectionId, ...publicMetadata } = metadata;
1201
+ return publicMetadata;
994
1202
  }
995
1203
  function readTokenType(secret) {
996
1204
  const tokenType = secret.metadata?.tokenType;
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polpo-ai/connect-server",
3
- "version": "0.15.139",
3
+ "version": "0.15.141",
4
4
  "description": "Server-side Polpo Connect primitives for OAuth, API-key connections, token refresh, and policy checks",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -17,8 +17,9 @@
17
17
  "README.md"
18
18
  ],
19
19
  "dependencies": {
20
- "@polpo-ai/core": "0.15.139",
21
- "@polpo-ai/connect": "0.15.139"
20
+ "@modelcontextprotocol/sdk": "^1.29.0",
21
+ "@polpo-ai/core": "0.15.141",
22
+ "@polpo-ai/connect": "0.15.141"
22
23
  },
23
24
  "devDependencies": {
24
25
  "typescript": "^5.7.3",