@mcp-native/mcp 0.5.0 → 0.6.0
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/README.md +172 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +98 -11
- package/dist/index.js.map +1 -1
- package/dist/lifecycle.d.ts +103 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +425 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/oauth-error.d.ts +6 -0
- package/dist/oauth-error.d.ts.map +1 -0
- package/dist/oauth-error.js +9 -0
- package/dist/oauth-error.js.map +1 -0
- package/dist/oauth-native.d.ts +66 -0
- package/dist/oauth-native.d.ts.map +1 -0
- package/dist/oauth-native.js +499 -0
- package/dist/oauth-native.js.map +1 -0
- package/dist/oauth-url.d.ts +9 -0
- package/dist/oauth-url.d.ts.map +1 -0
- package/dist/oauth-url.js +38 -0
- package/dist/oauth-url.js.map +1 -0
- package/dist/oauth.d.ts +147 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +1183 -0
- package/dist/oauth.js.map +1 -0
- package/package.json +7 -2
package/dist/oauth.d.ts
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/client";
|
|
2
|
+
import type { FetchLike, OAuthClientInformationContext, OAuthClientMetadata, OAuthClientProvider, OAuthDiscoveryState, ReconnectionScheduler, StoredOAuthClientInformation, StoredOAuthTokens, StreamableHTTPReconnectionOptions } from "@modelcontextprotocol/client";
|
|
3
|
+
export { McpNativeOAuthError } from "./oauth-error.js";
|
|
4
|
+
export type { McpNativeOAuthErrorCode } from "./oauth-error.js";
|
|
5
|
+
export { McpNativeOAuthAuthorizationSession, McpNativeOAuthPlatformSecureStore, createMcpNativeOAuthAuthorizationSession, createMcpNativeOAuthPlatformSecureStore, } from "./oauth-native.js";
|
|
6
|
+
export type { McpNativeOAuthAuthorizationSessionOptions, McpNativeOAuthAuthorizationSessionResult, McpNativeOAuthPlatformSecureStoreOptions, McpNativeOAuthSecretBackend, } from "./oauth-native.js";
|
|
7
|
+
export type McpNativeOAuthCredentialScope = "all" | "client" | "discovery" | "tokens" | "verifier";
|
|
8
|
+
/** Durable authorization context used only while completing its state-bound callback. */
|
|
9
|
+
export interface McpNativeOAuthPendingAuthorizationRecord {
|
|
10
|
+
readonly resource: string;
|
|
11
|
+
readonly issuer?: string;
|
|
12
|
+
readonly scopes: readonly string[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Host-owned durable storage for one interactive OAuth session.
|
|
16
|
+
*
|
|
17
|
+
* Production native hosts should back secrets with the OS keychain or an equivalent
|
|
18
|
+
* encrypted store. Plain files and AsyncStorage are not suitable for access tokens,
|
|
19
|
+
* refresh tokens, client secrets, PKCE verifiers, or OAuth state.
|
|
20
|
+
*/
|
|
21
|
+
export interface McpNativeOAuthSecureStore {
|
|
22
|
+
loadClientInformation(issuer: string): StoredOAuthClientInformation | undefined | Promise<StoredOAuthClientInformation | undefined>;
|
|
23
|
+
saveClientInformation(issuer: string, information: StoredOAuthClientInformation): void | Promise<void>;
|
|
24
|
+
loadTokens(issuer?: string): StoredOAuthTokens | undefined | Promise<StoredOAuthTokens | undefined>;
|
|
25
|
+
saveTokens(issuer: string, tokens: StoredOAuthTokens): void | Promise<void>;
|
|
26
|
+
loadCodeVerifier(): string | undefined | Promise<string | undefined>;
|
|
27
|
+
saveCodeVerifier(verifier: string): void | Promise<void>;
|
|
28
|
+
loadPendingAuthorization(): unknown | Promise<unknown>;
|
|
29
|
+
savePendingAuthorization(record: McpNativeOAuthPendingAuthorizationRecord): void | Promise<void>;
|
|
30
|
+
/** Reserves this authorization context for one live provider before state generation begins. */
|
|
31
|
+
reserveOAuthState(owner: object): void | Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Atomically reserves the single pending-state slot for one interactive attempt. It must
|
|
34
|
+
* fail when a state is already reserved so concurrent providers sharing a namespace cannot
|
|
35
|
+
* overwrite each other's redirect state.
|
|
36
|
+
*/
|
|
37
|
+
saveOAuthState(state: string, owner: object): void | Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Atomically compares and claims the stored state to prevent callback replay while retaining
|
|
40
|
+
* the reservation until verifier cleanup finishes and `clearOAuthState(owner)` releases it.
|
|
41
|
+
*/
|
|
42
|
+
consumeOAuthState(state: string, owner: object): boolean | Promise<boolean>;
|
|
43
|
+
/** Acquires cleanup ownership, including for a reservation left by a terminated process. */
|
|
44
|
+
claimOAuthStateForCleanup(owner: object): void | Promise<void>;
|
|
45
|
+
/** Releases a reservation owned by the calling provider. */
|
|
46
|
+
clearOAuthState(owner: object): void | Promise<void>;
|
|
47
|
+
loadDiscoveryState(): OAuthDiscoveryState | undefined | Promise<OAuthDiscoveryState | undefined>;
|
|
48
|
+
saveDiscoveryState(state: OAuthDiscoveryState): void | Promise<void>;
|
|
49
|
+
/** `verifier` and `all` invalidation must also remove the pending authorization record. */
|
|
50
|
+
invalidate(scope: McpNativeOAuthCredentialScope, issuer?: string): void | Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
export interface McpNativeOAuthProviderOptions {
|
|
53
|
+
/** Exact protected MCP Streamable HTTP endpoint this provider may authorize. */
|
|
54
|
+
readonly serverUrl: string | URL;
|
|
55
|
+
/** Native deep link, app link, or loopback URL registered for this client. */
|
|
56
|
+
readonly redirectUrl: string | URL;
|
|
57
|
+
readonly clientMetadata: OAuthClientMetadata;
|
|
58
|
+
readonly clientMetadataUrl?: string;
|
|
59
|
+
readonly storage: McpNativeOAuthSecureStore;
|
|
60
|
+
/** Optional durable, resource-bound history used for cross-request scope-upgrade decisions. */
|
|
61
|
+
readonly scopeStore?: McpNativeOAuthScopeStore;
|
|
62
|
+
/** Must return a fresh, cryptographically random, URL-safe value for every redirect. */
|
|
63
|
+
readonly createState: () => string | Promise<string>;
|
|
64
|
+
/** Host-owned browser or authentication-session handoff. */
|
|
65
|
+
readonly openAuthorization: (authorizationUrl: URL) => void | Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Required before the SDK may open a new authorization request while credentials exist.
|
|
68
|
+
* `addedScopes` identifies an actual scope increase and may be empty on a repeated challenge.
|
|
69
|
+
* Return exactly `true` only after the host has applied its user-decision and retry policy.
|
|
70
|
+
*/
|
|
71
|
+
readonly approveReauthorization?: (request: McpNativeOAuthReauthorizationRequest) => boolean | Promise<boolean>;
|
|
72
|
+
}
|
|
73
|
+
export interface McpNativeOAuthReauthorizationRequest {
|
|
74
|
+
readonly resource: string;
|
|
75
|
+
readonly issuer: string | undefined;
|
|
76
|
+
readonly currentScopes: readonly string[];
|
|
77
|
+
readonly requestedScopes: readonly string[];
|
|
78
|
+
readonly addedScopes: readonly string[];
|
|
79
|
+
}
|
|
80
|
+
export interface McpNativeOAuthScopeRecord {
|
|
81
|
+
readonly resource: string;
|
|
82
|
+
readonly issuer: string;
|
|
83
|
+
readonly scopes: readonly string[];
|
|
84
|
+
}
|
|
85
|
+
/** Host-owned durable storage for non-token OAuth scope history. */
|
|
86
|
+
export interface McpNativeOAuthScopeStore {
|
|
87
|
+
load(resource: string): unknown | Promise<unknown>;
|
|
88
|
+
save(record: McpNativeOAuthScopeRecord): void | Promise<void>;
|
|
89
|
+
remove(resource: string): void | Promise<void>;
|
|
90
|
+
}
|
|
91
|
+
export interface McpNativeOAuthTransportOptions {
|
|
92
|
+
/** Additional non-credential headers. Authorization and Cookie are rejected. */
|
|
93
|
+
readonly headers?: Record<string, string> | readonly (readonly [string, string])[];
|
|
94
|
+
readonly fetch?: FetchLike;
|
|
95
|
+
readonly reconnectionOptions?: StreamableHTTPReconnectionOptions;
|
|
96
|
+
readonly reconnectionScheduler?: ReconnectionScheduler;
|
|
97
|
+
/**
|
|
98
|
+
* `host-approved` enables the SDK's bounded step-up retry only when the provider has
|
|
99
|
+
* an `approveReauthorization` callback. The default surfaces `InsufficientScopeError`.
|
|
100
|
+
*/
|
|
101
|
+
readonly scopeEscalation?: "throw" | "host-approved";
|
|
102
|
+
}
|
|
103
|
+
type OAuthFinisher = Pick<StreamableHTTPClientTransport, "finishAuth">;
|
|
104
|
+
/**
|
|
105
|
+
* SDK v2 OAuth provider with an explicit native-host persistence and callback boundary.
|
|
106
|
+
* Discovery, PKCE, issuer validation, token exchange, and refresh remain owned by the
|
|
107
|
+
* official SDK; this class pins their host-controlled seams.
|
|
108
|
+
*/
|
|
109
|
+
export declare class McpNativeOAuthClientProvider implements OAuthClientProvider {
|
|
110
|
+
#private;
|
|
111
|
+
readonly redirectUrl: URL;
|
|
112
|
+
readonly clientMetadata: OAuthClientMetadata;
|
|
113
|
+
readonly clientMetadataUrl?: string;
|
|
114
|
+
constructor(options: McpNativeOAuthProviderOptions);
|
|
115
|
+
state(): Promise<string>;
|
|
116
|
+
clientInformation(context?: OAuthClientInformationContext): Promise<StoredOAuthClientInformation | undefined>;
|
|
117
|
+
saveClientInformation(information: StoredOAuthClientInformation, context?: OAuthClientInformationContext): Promise<void>;
|
|
118
|
+
tokens(context?: OAuthClientInformationContext): Promise<StoredOAuthTokens | undefined>;
|
|
119
|
+
saveTokens(tokens: StoredOAuthTokens, context?: OAuthClientInformationContext): Promise<void>;
|
|
120
|
+
redirectToAuthorization(authorizationUrl: URL): Promise<void>;
|
|
121
|
+
saveCodeVerifier(verifier: string): Promise<void>;
|
|
122
|
+
codeVerifier(): Promise<string>;
|
|
123
|
+
validateResourceURL(serverUrl: string | URL, resource?: string): Promise<URL>;
|
|
124
|
+
saveDiscoveryState(state: OAuthDiscoveryState): Promise<void>;
|
|
125
|
+
discoveryState(): Promise<OAuthDiscoveryState | undefined>;
|
|
126
|
+
invalidateCredentials(scope: McpNativeOAuthCredentialScope): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Clears an abandoned interactive attempt after the platform handoff has settled, including a
|
|
129
|
+
* reservation persisted by an earlier process. Active state setup, handoff, and callback
|
|
130
|
+
* completion cannot be cancelled through this method.
|
|
131
|
+
*/
|
|
132
|
+
cancelAuthorization(): Promise<void>;
|
|
133
|
+
/**
|
|
134
|
+
* Validates an app/loopback callback before asking the SDK to redeem its code.
|
|
135
|
+
* OAuth state is consumed before token exchange, so the callback cannot be replayed.
|
|
136
|
+
*/
|
|
137
|
+
finishAuthorization(finisher: OAuthFinisher, callbackUrl: string | URL): Promise<void>;
|
|
138
|
+
assertServerUrl(serverUrl: string | URL): URL;
|
|
139
|
+
hasReauthorizationApproval(): boolean;
|
|
140
|
+
}
|
|
141
|
+
export declare function createMcpNativeOAuthProvider(options: McpNativeOAuthProviderOptions): McpNativeOAuthClientProvider;
|
|
142
|
+
/**
|
|
143
|
+
* Creates the supported protected Streamable HTTP transport profile.
|
|
144
|
+
* Scope step-up is surfaced to the host so consent can be obtained before reauthorization.
|
|
145
|
+
*/
|
|
146
|
+
export declare function createMcpNativeOAuthTransport(serverUrl: string | URL, provider: McpNativeOAuthClientProvider, options?: McpNativeOAuthTransportOptions): StreamableHTTPClientTransport;
|
|
147
|
+
//# sourceMappingURL=oauth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
|