@mastra/mcp 1.0.0-beta.0 → 1.0.0-beta.10
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/CHANGELOG.md +303 -0
- package/README.md +250 -24
- package/dist/__fixtures__/tools.d.ts +8 -5
- package/dist/__fixtures__/tools.d.ts.map +1 -1
- package/dist/client/{elicitationActions.d.ts → actions/elicitation.d.ts} +2 -2
- package/dist/client/actions/elicitation.d.ts.map +1 -0
- package/dist/client/actions/progress.d.ts +23 -0
- package/dist/client/actions/progress.d.ts.map +1 -0
- package/dist/client/{promptActions.d.ts → actions/prompt.d.ts} +2 -2
- package/dist/client/actions/prompt.d.ts.map +1 -0
- package/dist/client/{resourceActions.d.ts → actions/resource.d.ts} +2 -2
- package/dist/client/actions/resource.d.ts.map +1 -0
- package/dist/client/client.d.ts +79 -132
- package/dist/client/client.d.ts.map +1 -1
- package/dist/client/configuration.d.ts +23 -1
- package/dist/client/configuration.d.ts.map +1 -1
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/oauth-provider.d.ts +230 -0
- package/dist/client/oauth-provider.d.ts.map +1 -0
- package/dist/client/types.d.ts +237 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/docs/README.md +33 -0
- package/dist/docs/SKILL.md +46 -0
- package/dist/docs/SOURCE_MAP.json +59 -0
- package/dist/docs/mcp/01-overview.md +372 -0
- package/dist/docs/mcp/02-publishing-mcp-server.md +111 -0
- package/dist/docs/tools/01-reference.md +2306 -0
- package/dist/docs/tools-mcp/01-mcp-overview.md +384 -0
- package/dist/index.cjs +851 -107
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +774 -92
- package/dist/index.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/oauth-middleware.d.ts +142 -0
- package/dist/server/oauth-middleware.d.ts.map +1 -0
- package/dist/server/server.d.ts +20 -4
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/types.d.ts +11 -4
- package/dist/server/types.d.ts.map +1 -1
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/oauth-types.d.ts +137 -0
- package/dist/shared/oauth-types.d.ts.map +1 -0
- package/package.json +17 -14
- package/dist/client/elicitationActions.d.ts.map +0 -1
- package/dist/client/promptActions.d.ts.map +0 -1
- package/dist/client/resourceActions.d.ts.map +0 -1
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OAuth Client Provider Implementation for MCP Client
|
|
3
|
+
*
|
|
4
|
+
* Provides a ready-to-use OAuthClientProvider implementation that can be used
|
|
5
|
+
* with Mastra's MCPClient for connecting to OAuth-protected MCP servers.
|
|
6
|
+
*
|
|
7
|
+
* @see https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization
|
|
8
|
+
*/
|
|
9
|
+
import type { OAuthClientProvider, OAuthClientMetadata, OAuthClientInformation, OAuthClientInformationFull, OAuthTokens, AuthorizationServerMetadata } from '../shared/oauth-types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Storage interface for persisting OAuth data.
|
|
12
|
+
*
|
|
13
|
+
* Implement this interface to persist OAuth data across sessions.
|
|
14
|
+
* For simple in-memory usage, use InMemoryOAuthStorage.
|
|
15
|
+
*/
|
|
16
|
+
export interface OAuthStorage {
|
|
17
|
+
/**
|
|
18
|
+
* Store a value by key.
|
|
19
|
+
*/
|
|
20
|
+
set(key: string, value: string): Promise<void> | void;
|
|
21
|
+
/**
|
|
22
|
+
* Retrieve a value by key.
|
|
23
|
+
*/
|
|
24
|
+
get(key: string): Promise<string | undefined> | string | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Delete a value by key.
|
|
27
|
+
*/
|
|
28
|
+
delete(key: string): Promise<void> | void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Simple in-memory OAuth storage.
|
|
32
|
+
*
|
|
33
|
+
* Data is lost when the process exits. For production, implement
|
|
34
|
+
* OAuthStorage with a persistent store like Redis or a database.
|
|
35
|
+
*/
|
|
36
|
+
export declare class InMemoryOAuthStorage implements OAuthStorage {
|
|
37
|
+
private data;
|
|
38
|
+
set(key: string, value: string): void;
|
|
39
|
+
get(key: string): string | undefined;
|
|
40
|
+
delete(key: string): void;
|
|
41
|
+
clear(): void;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Options for creating a MCPOAuthClientProvider.
|
|
45
|
+
*/
|
|
46
|
+
export interface MCPOAuthClientProviderOptions {
|
|
47
|
+
/**
|
|
48
|
+
* The redirect URL for the OAuth callback.
|
|
49
|
+
* This should be a URL your application controls that can handle
|
|
50
|
+
* the authorization code callback.
|
|
51
|
+
*
|
|
52
|
+
* @example 'http://localhost:3000/oauth/callback'
|
|
53
|
+
*/
|
|
54
|
+
redirectUrl: string | URL;
|
|
55
|
+
/**
|
|
56
|
+
* OAuth client metadata for registration.
|
|
57
|
+
* If the client is not pre-registered with the authorization server,
|
|
58
|
+
* this metadata will be used for dynamic client registration.
|
|
59
|
+
*/
|
|
60
|
+
clientMetadata: OAuthClientMetadata;
|
|
61
|
+
/**
|
|
62
|
+
* Pre-registered client information.
|
|
63
|
+
* If provided, skips dynamic client registration.
|
|
64
|
+
*/
|
|
65
|
+
clientInformation?: OAuthClientInformation;
|
|
66
|
+
/**
|
|
67
|
+
* Storage for persisting OAuth data (tokens, client info, etc.).
|
|
68
|
+
* Defaults to InMemoryOAuthStorage if not provided.
|
|
69
|
+
*/
|
|
70
|
+
storage?: OAuthStorage;
|
|
71
|
+
/**
|
|
72
|
+
* Callback invoked when the user needs to be redirected to authorize.
|
|
73
|
+
*
|
|
74
|
+
* For CLI applications, you might open the URL in a browser.
|
|
75
|
+
* For web applications, you might redirect the response.
|
|
76
|
+
*
|
|
77
|
+
* @param url - The authorization URL to redirect to
|
|
78
|
+
*/
|
|
79
|
+
onRedirectToAuthorization?: (url: URL) => void | Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Generate a random state parameter for OAuth requests.
|
|
82
|
+
* Defaults to using crypto.randomUUID.
|
|
83
|
+
*/
|
|
84
|
+
stateGenerator?: () => string | Promise<string>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Mastra's OAuth Client Provider implementation.
|
|
88
|
+
*
|
|
89
|
+
* This provider handles the OAuth 2.1 flow for connecting to OAuth-protected
|
|
90
|
+
* MCP servers, including:
|
|
91
|
+
* - Dynamic client registration (RFC 7591)
|
|
92
|
+
* - PKCE (Proof Key for Code Exchange)
|
|
93
|
+
* - Token storage and refresh
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* import { MCPClient, MCPOAuthClientProvider, InMemoryOAuthStorage } from '@mastra/mcp';
|
|
98
|
+
*
|
|
99
|
+
* // Create the OAuth provider
|
|
100
|
+
* const oauthProvider = new MCPOAuthClientProvider({
|
|
101
|
+
* redirectUrl: 'http://localhost:3000/oauth/callback',
|
|
102
|
+
* clientMetadata: {
|
|
103
|
+
* redirect_uris: ['http://localhost:3000/oauth/callback'],
|
|
104
|
+
* client_name: 'My MCP Client',
|
|
105
|
+
* grant_types: ['authorization_code', 'refresh_token'],
|
|
106
|
+
* response_types: ['code'],
|
|
107
|
+
* },
|
|
108
|
+
* onRedirectToAuthorization: (url) => {
|
|
109
|
+
* // Open URL in browser for CLI, or redirect response for web
|
|
110
|
+
* console.log(`Please visit: ${url}`);
|
|
111
|
+
* },
|
|
112
|
+
* });
|
|
113
|
+
*
|
|
114
|
+
* // Create the MCP client with OAuth
|
|
115
|
+
* const client = new MCPClient({
|
|
116
|
+
* servers: {
|
|
117
|
+
* 'protected-server': {
|
|
118
|
+
* url: 'https://mcp.example.com/mcp',
|
|
119
|
+
* authProvider: oauthProvider,
|
|
120
|
+
* },
|
|
121
|
+
* },
|
|
122
|
+
* });
|
|
123
|
+
*
|
|
124
|
+
* await client.connect();
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export declare class MCPOAuthClientProvider implements OAuthClientProvider {
|
|
128
|
+
private readonly _redirectUrl;
|
|
129
|
+
private readonly _clientMetadata;
|
|
130
|
+
private readonly storage;
|
|
131
|
+
private readonly onRedirect?;
|
|
132
|
+
private readonly generateState;
|
|
133
|
+
private _clientInfo?;
|
|
134
|
+
constructor(options: MCPOAuthClientProviderOptions);
|
|
135
|
+
/**
|
|
136
|
+
* The URL to redirect the user agent to after authorization.
|
|
137
|
+
*/
|
|
138
|
+
get redirectUrl(): string | URL;
|
|
139
|
+
/**
|
|
140
|
+
* Metadata about this OAuth client.
|
|
141
|
+
*/
|
|
142
|
+
get clientMetadata(): OAuthClientMetadata;
|
|
143
|
+
/**
|
|
144
|
+
* Returns a OAuth2 state parameter.
|
|
145
|
+
*/
|
|
146
|
+
state(): Promise<string>;
|
|
147
|
+
/**
|
|
148
|
+
* Loads information about this OAuth client.
|
|
149
|
+
*/
|
|
150
|
+
clientInformation(): Promise<OAuthClientInformation | undefined>;
|
|
151
|
+
/**
|
|
152
|
+
* Saves dynamically registered client information.
|
|
153
|
+
*/
|
|
154
|
+
saveClientInformation(clientInformation: OAuthClientInformationFull): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* Loads existing OAuth tokens.
|
|
157
|
+
*/
|
|
158
|
+
tokens(): Promise<OAuthTokens | undefined>;
|
|
159
|
+
/**
|
|
160
|
+
* Stores new OAuth tokens after successful authorization.
|
|
161
|
+
*/
|
|
162
|
+
saveTokens(tokens: OAuthTokens): Promise<void>;
|
|
163
|
+
/**
|
|
164
|
+
* Invoked to redirect the user agent to the authorization URL.
|
|
165
|
+
*/
|
|
166
|
+
redirectToAuthorization(authorizationUrl: URL): Promise<void>;
|
|
167
|
+
/**
|
|
168
|
+
* Saves a PKCE code verifier before redirecting to authorization.
|
|
169
|
+
*/
|
|
170
|
+
saveCodeVerifier(codeVerifier: string): Promise<void>;
|
|
171
|
+
/**
|
|
172
|
+
* Loads the PKCE code verifier for validating authorization result.
|
|
173
|
+
*/
|
|
174
|
+
codeVerifier(): Promise<string>;
|
|
175
|
+
/**
|
|
176
|
+
* Optional: Custom client authentication for token requests.
|
|
177
|
+
* Uses default behavior if not implemented.
|
|
178
|
+
*/
|
|
179
|
+
addClientAuthentication?(_headers: Headers, _params: URLSearchParams, _url: string | URL, _metadata?: AuthorizationServerMetadata): Promise<void>;
|
|
180
|
+
/**
|
|
181
|
+
* Invalidate credentials when server indicates they're no longer valid.
|
|
182
|
+
*/
|
|
183
|
+
invalidateCredentials(scope: 'all' | 'client' | 'tokens' | 'verifier'): Promise<void>;
|
|
184
|
+
/**
|
|
185
|
+
* Clear all stored OAuth data.
|
|
186
|
+
* Useful for logging out or resetting state.
|
|
187
|
+
*/
|
|
188
|
+
clear(): Promise<void>;
|
|
189
|
+
/**
|
|
190
|
+
* Check if the provider has valid (non-expired) tokens.
|
|
191
|
+
*/
|
|
192
|
+
hasValidTokens(): Promise<boolean>;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Creates a simple OAuth provider with pre-configured tokens.
|
|
196
|
+
*
|
|
197
|
+
* This is useful for testing scenarios where you already have a valid token.
|
|
198
|
+
* For production, use the full MCPOAuthClientProvider with proper OAuth flow.
|
|
199
|
+
*
|
|
200
|
+
* @param accessToken - A valid access token
|
|
201
|
+
* @param options - Additional configuration options
|
|
202
|
+
* @returns An OAuthClientProvider that returns the pre-configured token
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```typescript
|
|
206
|
+
* const provider = createSimpleTokenProvider('my-access-token', {
|
|
207
|
+
* redirectUrl: 'http://localhost:3000/callback',
|
|
208
|
+
* clientMetadata: {
|
|
209
|
+
* redirect_uris: ['http://localhost:3000/callback'],
|
|
210
|
+
* client_name: 'Test Client',
|
|
211
|
+
* },
|
|
212
|
+
* });
|
|
213
|
+
*
|
|
214
|
+
* const client = new MCPClient({
|
|
215
|
+
* servers: {
|
|
216
|
+
* test: { url: 'https://mcp.example.com', authProvider: provider }
|
|
217
|
+
* },
|
|
218
|
+
* });
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
221
|
+
export declare function createSimpleTokenProvider(accessToken: string, options: {
|
|
222
|
+
redirectUrl: string | URL;
|
|
223
|
+
clientMetadata: OAuthClientMetadata;
|
|
224
|
+
clientInformation?: OAuthClientInformation;
|
|
225
|
+
tokenType?: string;
|
|
226
|
+
refreshToken?: string;
|
|
227
|
+
expiresIn?: number;
|
|
228
|
+
scope?: string;
|
|
229
|
+
}): OAuthClientProvider;
|
|
230
|
+
//# sourceMappingURL=oauth-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-provider.d.ts","sourceRoot":"","sources":["../../src/client/oauth-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import type { RequestContext } from '@mastra/core/di';
|
|
2
|
+
import type { SSEClientTransportOptions } from '@modelcontextprotocol/sdk/client/sse.js';
|
|
3
|
+
import type { StreamableHTTPClientTransportOptions } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
4
|
+
import type { FetchLike } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
5
|
+
import type { ClientCapabilities, ElicitRequest, ElicitResult, LoggingLevel, ProgressNotification } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
export type { LoggingLevel } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Log message structure for MCP client logging.
|
|
9
|
+
*/
|
|
10
|
+
export interface LogMessage {
|
|
11
|
+
/** Logging level (debug, info, warning, error, etc.) */
|
|
12
|
+
level: LoggingLevel;
|
|
13
|
+
/** Log message content */
|
|
14
|
+
message: string;
|
|
15
|
+
/** Timestamp when the log was created */
|
|
16
|
+
timestamp: Date;
|
|
17
|
+
/** Name of the MCP server that generated the log */
|
|
18
|
+
serverName: string;
|
|
19
|
+
/** Optional additional details */
|
|
20
|
+
details?: Record<string, any>;
|
|
21
|
+
requestContext?: RequestContext | null;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Handler function for processing log messages from MCP servers.
|
|
25
|
+
*/
|
|
26
|
+
export type LogHandler = (logMessage: LogMessage) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Handler function for processing elicitation requests from MCP servers.
|
|
29
|
+
*
|
|
30
|
+
* @param request - The elicitation request parameters including message and schema
|
|
31
|
+
* @returns Promise resolving to the user's response (accept/decline/cancel with optional content)
|
|
32
|
+
*/
|
|
33
|
+
export type ElicitationHandler = (request: ElicitRequest['params']) => Promise<ElicitResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Handler function for processing progress notifications from MCP servers.
|
|
36
|
+
*
|
|
37
|
+
* @param params - The progress notification parameters including message and status
|
|
38
|
+
*/
|
|
39
|
+
export type ProgressHandler = (params: ProgressNotification['params']) => void;
|
|
40
|
+
/**
|
|
41
|
+
* Represents a filesystem root that the client exposes to MCP servers.
|
|
42
|
+
*
|
|
43
|
+
* Per MCP spec (https://modelcontextprotocol.io/specification/2025-11-25/client/roots):
|
|
44
|
+
* Roots define the boundaries of where servers can operate within the filesystem,
|
|
45
|
+
* allowing them to understand which directories and files they have access to.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const root: Root = {
|
|
50
|
+
* uri: 'file:///home/user/projects/myproject',
|
|
51
|
+
* name: 'My Project'
|
|
52
|
+
* };
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export interface Root {
|
|
56
|
+
/** Unique identifier for the root. Must be a file:// URI. */
|
|
57
|
+
uri: string;
|
|
58
|
+
/** Optional human-readable name for display purposes. */
|
|
59
|
+
name?: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Base options common to all MCP server definitions.
|
|
63
|
+
*/
|
|
64
|
+
export type BaseServerOptions = {
|
|
65
|
+
/** Optional handler for server log messages */
|
|
66
|
+
logger?: LogHandler;
|
|
67
|
+
/** Optional timeout in milliseconds for server operations */
|
|
68
|
+
timeout?: number;
|
|
69
|
+
/** Optional client capabilities to advertise to the server */
|
|
70
|
+
capabilities?: ClientCapabilities;
|
|
71
|
+
/** Whether to enable server log forwarding (default: true) */
|
|
72
|
+
enableServerLogs?: boolean;
|
|
73
|
+
/** Whether to enable progress tracking (default: false) */
|
|
74
|
+
enableProgressTracking?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* List of filesystem roots to expose to the MCP server.
|
|
77
|
+
*
|
|
78
|
+
* Per MCP spec (https://modelcontextprotocol.io/specification/2025-11-25/client/roots):
|
|
79
|
+
* Roots define the boundaries of where servers can operate within the filesystem.
|
|
80
|
+
*
|
|
81
|
+
* When configured, the client will:
|
|
82
|
+
* 1. Automatically advertise the `roots` capability to the server
|
|
83
|
+
* 2. Respond to `roots/list` requests with these roots
|
|
84
|
+
* 3. Send `notifications/roots/list_changed` when roots are updated via `setRoots()`
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* {
|
|
89
|
+
* command: 'npx',
|
|
90
|
+
* args: ['-y', '@modelcontextprotocol/server-filesystem', '/tmp'],
|
|
91
|
+
* roots: [
|
|
92
|
+
* { uri: 'file:///tmp', name: 'Temp Directory' }
|
|
93
|
+
* ]
|
|
94
|
+
* }
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
roots?: Root[];
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Configuration for MCP servers using stdio (subprocess) transport.
|
|
101
|
+
*
|
|
102
|
+
* Used when the MCP server is spawned as a subprocess that communicates via stdin/stdout.
|
|
103
|
+
*/
|
|
104
|
+
export type StdioServerDefinition = BaseServerOptions & {
|
|
105
|
+
/** Command to execute (e.g., 'node', 'python', 'npx') */
|
|
106
|
+
command: string;
|
|
107
|
+
/** Optional arguments to pass to the command */
|
|
108
|
+
args?: string[];
|
|
109
|
+
/** Optional environment variables for the subprocess */
|
|
110
|
+
env?: Record<string, string>;
|
|
111
|
+
url?: never;
|
|
112
|
+
requestInit?: never;
|
|
113
|
+
eventSourceInit?: never;
|
|
114
|
+
authProvider?: never;
|
|
115
|
+
reconnectionOptions?: never;
|
|
116
|
+
sessionId?: never;
|
|
117
|
+
connectTimeout?: never;
|
|
118
|
+
fetch?: never;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Configuration for MCP servers using HTTP-based transport (Streamable HTTP or SSE fallback).
|
|
122
|
+
*
|
|
123
|
+
* Used when connecting to remote MCP servers over HTTP. The client will attempt Streamable HTTP
|
|
124
|
+
* transport first and fall back to SSE if that fails.
|
|
125
|
+
*
|
|
126
|
+
* When `fetch` is provided, all other HTTP-related options (`requestInit`, `eventSourceInit`, `authProvider`)
|
|
127
|
+
* become optional, as the custom fetch function can handle authentication and request customization.
|
|
128
|
+
*/
|
|
129
|
+
export type HttpServerDefinition = BaseServerOptions & {
|
|
130
|
+
/** URL of the MCP server endpoint */
|
|
131
|
+
url: URL;
|
|
132
|
+
command?: never;
|
|
133
|
+
args?: never;
|
|
134
|
+
env?: never;
|
|
135
|
+
/**
|
|
136
|
+
* Custom fetch implementation used for all network requests.
|
|
137
|
+
*
|
|
138
|
+
* When provided, this function will be used for all HTTP requests, allowing you to:
|
|
139
|
+
* - Add dynamic authentication headers (e.g., refreshing bearer tokens)
|
|
140
|
+
* - Customize request behavior per-request
|
|
141
|
+
* - Intercept and modify requests/responses
|
|
142
|
+
*
|
|
143
|
+
* When `fetch` is provided, `requestInit`, `eventSourceInit`, and `authProvider` become optional,
|
|
144
|
+
* as you can handle these concerns within your custom fetch function.
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* {
|
|
149
|
+
* url: new URL('https://api.example.com/mcp'),
|
|
150
|
+
* fetch: async (url, init) => {
|
|
151
|
+
* const token = await getAuthToken(); // Your token refresh logic
|
|
152
|
+
* return fetch(url, {
|
|
153
|
+
* ...init,
|
|
154
|
+
* headers: {
|
|
155
|
+
* ...init?.headers,
|
|
156
|
+
* Authorization: `Bearer ${token}`,
|
|
157
|
+
* },
|
|
158
|
+
* });
|
|
159
|
+
* },
|
|
160
|
+
* }
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
fetch?: FetchLike;
|
|
164
|
+
/** Optional request configuration for HTTP requests (optional when `fetch` is provided) */
|
|
165
|
+
requestInit?: StreamableHTTPClientTransportOptions['requestInit'];
|
|
166
|
+
/** Optional configuration for SSE fallback (required when using custom headers with SSE, optional when `fetch` is provided) */
|
|
167
|
+
eventSourceInit?: SSEClientTransportOptions['eventSourceInit'];
|
|
168
|
+
/** Optional authentication provider for HTTP requests (optional when `fetch` is provided) */
|
|
169
|
+
authProvider?: StreamableHTTPClientTransportOptions['authProvider'];
|
|
170
|
+
/** Optional reconnection configuration for Streamable HTTP */
|
|
171
|
+
reconnectionOptions?: StreamableHTTPClientTransportOptions['reconnectionOptions'];
|
|
172
|
+
/** Optional session ID for Streamable HTTP */
|
|
173
|
+
sessionId?: StreamableHTTPClientTransportOptions['sessionId'];
|
|
174
|
+
/** Optional timeout in milliseconds for the connection phase (default: 3000ms).
|
|
175
|
+
* This timeout allows the system to switch MCP streaming protocols during the setup phase.
|
|
176
|
+
* The default is set to 3s because the long default timeout would be extremely slow for SSE backwards compat (60s).
|
|
177
|
+
*/
|
|
178
|
+
connectTimeout?: number;
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Configuration for connecting to an MCP server.
|
|
182
|
+
*
|
|
183
|
+
* Either stdio-based (subprocess) or HTTP-based (remote server). The transport type is
|
|
184
|
+
* automatically detected based on whether `command` or `url` is provided.
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* ```typescript
|
|
188
|
+
* // Stdio server
|
|
189
|
+
* const stdioServer: MastraMCPServerDefinition = {
|
|
190
|
+
* command: 'npx',
|
|
191
|
+
* args: ['tsx', 'server.ts'],
|
|
192
|
+
* env: { API_KEY: 'secret' }
|
|
193
|
+
* };
|
|
194
|
+
*
|
|
195
|
+
* // HTTP server with static headers
|
|
196
|
+
* const httpServer: MastraMCPServerDefinition = {
|
|
197
|
+
* url: new URL('http://localhost:8080/mcp'),
|
|
198
|
+
* requestInit: {
|
|
199
|
+
* headers: { Authorization: 'Bearer token' }
|
|
200
|
+
* }
|
|
201
|
+
* };
|
|
202
|
+
*
|
|
203
|
+
* // HTTP server with custom fetch for dynamic auth
|
|
204
|
+
* const httpServerWithFetch: MastraMCPServerDefinition = {
|
|
205
|
+
* url: new URL('http://localhost:8080/mcp'),
|
|
206
|
+
* fetch: async (url, init) => {
|
|
207
|
+
* const token = await getAuthToken(); // Refresh token on each request
|
|
208
|
+
* return fetch(url, {
|
|
209
|
+
* ...init,
|
|
210
|
+
* headers: {
|
|
211
|
+
* ...init?.headers,
|
|
212
|
+
* Authorization: `Bearer ${token}`,
|
|
213
|
+
* },
|
|
214
|
+
* });
|
|
215
|
+
* },
|
|
216
|
+
* };
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
export type MastraMCPServerDefinition = StdioServerDefinition | HttpServerDefinition;
|
|
220
|
+
/**
|
|
221
|
+
* Options for creating an internal MCP client instance.
|
|
222
|
+
*
|
|
223
|
+
* @internal
|
|
224
|
+
*/
|
|
225
|
+
export type InternalMastraMCPClientOptions = {
|
|
226
|
+
/** Name identifier for this client */
|
|
227
|
+
name: string;
|
|
228
|
+
/** Server connection configuration */
|
|
229
|
+
server: MastraMCPServerDefinition;
|
|
230
|
+
/** Optional client capabilities to advertise to the server */
|
|
231
|
+
capabilities?: ClientCapabilities;
|
|
232
|
+
/** Optional client version */
|
|
233
|
+
version?: string;
|
|
234
|
+
/** Optional timeout in milliseconds */
|
|
235
|
+
timeout?: number;
|
|
236
|
+
};
|
|
237
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# @mastra/mcp Documentation
|
|
2
|
+
|
|
3
|
+
> Embedded documentation for coding agents
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Read the skill overview
|
|
9
|
+
cat docs/SKILL.md
|
|
10
|
+
|
|
11
|
+
# Get the source map
|
|
12
|
+
cat docs/SOURCE_MAP.json
|
|
13
|
+
|
|
14
|
+
# Read topic documentation
|
|
15
|
+
cat docs/<topic>/01-overview.md
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
docs/
|
|
22
|
+
├── SKILL.md # Entry point
|
|
23
|
+
├── README.md # This file
|
|
24
|
+
├── SOURCE_MAP.json # Export index
|
|
25
|
+
├── mcp/ (2 files)
|
|
26
|
+
├── tools/ (3 files)
|
|
27
|
+
├── tools-mcp/ (1 files)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Version
|
|
31
|
+
|
|
32
|
+
Package: @mastra/mcp
|
|
33
|
+
Version: 1.0.0-beta.10
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mastra-mcp-docs
|
|
3
|
+
description: Documentation for @mastra/mcp. Includes links to type definitions and readable implementation code in dist/.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# @mastra/mcp Documentation
|
|
7
|
+
|
|
8
|
+
> **Version**: 1.0.0-beta.10
|
|
9
|
+
> **Package**: @mastra/mcp
|
|
10
|
+
|
|
11
|
+
## Quick Navigation
|
|
12
|
+
|
|
13
|
+
Use SOURCE_MAP.json to find any export:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
cat docs/SOURCE_MAP.json
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Each export maps to:
|
|
20
|
+
- **types**: `.d.ts` file with JSDoc and API signatures
|
|
21
|
+
- **implementation**: `.js` chunk file with readable source
|
|
22
|
+
- **docs**: Conceptual documentation in `docs/`
|
|
23
|
+
|
|
24
|
+
## Top Exports
|
|
25
|
+
|
|
26
|
+
- UnauthorizedError: dist/index.d.ts
|
|
27
|
+
- auth: dist/index.d.ts
|
|
28
|
+
- buildDiscoveryUrls: dist/index.d.ts
|
|
29
|
+
- discoverAuthorizationServerMetadata: dist/index.d.ts
|
|
30
|
+
- discoverOAuthMetadata: dist/index.d.ts
|
|
31
|
+
- discoverOAuthProtectedResourceMetadata: dist/index.d.ts
|
|
32
|
+
- exchangeAuthorization: dist/index.d.ts
|
|
33
|
+
- extractResourceMetadataUrl: dist/index.d.ts
|
|
34
|
+
- parseErrorResponse: dist/index.d.ts
|
|
35
|
+
- refreshAuthorization: dist/index.d.ts
|
|
36
|
+
- registerClient: dist/index.d.ts
|
|
37
|
+
- selectResourceURL: dist/index.d.ts
|
|
38
|
+
- startAuthorization: dist/index.d.ts
|
|
39
|
+
|
|
40
|
+
See SOURCE_MAP.json for the complete list.
|
|
41
|
+
|
|
42
|
+
## Available Topics
|
|
43
|
+
|
|
44
|
+
- [Mcp](mcp/) - 2 file(s)
|
|
45
|
+
- [Tools](tools/) - 3 file(s)
|
|
46
|
+
- [Tools mcp](tools-mcp/) - 1 file(s)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0-beta.10",
|
|
3
|
+
"package": "@mastra/mcp",
|
|
4
|
+
"exports": {
|
|
5
|
+
"UnauthorizedError": {
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"implementation": "dist/auth.js"
|
|
8
|
+
},
|
|
9
|
+
"auth": {
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"implementation": "dist/auth.js"
|
|
12
|
+
},
|
|
13
|
+
"buildDiscoveryUrls": {
|
|
14
|
+
"types": "dist/index.d.ts",
|
|
15
|
+
"implementation": "dist/auth.js"
|
|
16
|
+
},
|
|
17
|
+
"discoverAuthorizationServerMetadata": {
|
|
18
|
+
"types": "dist/index.d.ts",
|
|
19
|
+
"implementation": "dist/auth.js"
|
|
20
|
+
},
|
|
21
|
+
"discoverOAuthMetadata": {
|
|
22
|
+
"types": "dist/index.d.ts",
|
|
23
|
+
"implementation": "dist/auth.js"
|
|
24
|
+
},
|
|
25
|
+
"discoverOAuthProtectedResourceMetadata": {
|
|
26
|
+
"types": "dist/index.d.ts",
|
|
27
|
+
"implementation": "dist/auth.js"
|
|
28
|
+
},
|
|
29
|
+
"exchangeAuthorization": {
|
|
30
|
+
"types": "dist/index.d.ts",
|
|
31
|
+
"implementation": "dist/auth.js"
|
|
32
|
+
},
|
|
33
|
+
"extractResourceMetadataUrl": {
|
|
34
|
+
"types": "dist/index.d.ts",
|
|
35
|
+
"implementation": "dist/auth.js"
|
|
36
|
+
},
|
|
37
|
+
"parseErrorResponse": {
|
|
38
|
+
"types": "dist/index.d.ts",
|
|
39
|
+
"implementation": "dist/auth.js"
|
|
40
|
+
},
|
|
41
|
+
"refreshAuthorization": {
|
|
42
|
+
"types": "dist/index.d.ts",
|
|
43
|
+
"implementation": "dist/auth.js"
|
|
44
|
+
},
|
|
45
|
+
"registerClient": {
|
|
46
|
+
"types": "dist/index.d.ts",
|
|
47
|
+
"implementation": "dist/auth.js"
|
|
48
|
+
},
|
|
49
|
+
"selectResourceURL": {
|
|
50
|
+
"types": "dist/index.d.ts",
|
|
51
|
+
"implementation": "dist/auth.js"
|
|
52
|
+
},
|
|
53
|
+
"startAuthorization": {
|
|
54
|
+
"types": "dist/index.d.ts",
|
|
55
|
+
"implementation": "dist/auth.js"
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"modules": {}
|
|
59
|
+
}
|