integrate-sdk 0.1.7 → 0.2.1
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 +92 -17
- package/dist/client.d.ts +60 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +82 -18
- package/dist/integrations/vercel-ai.d.ts.map +1 -1
- package/dist/plugins/generic.d.ts +17 -10
- package/dist/plugins/generic.d.ts.map +1 -1
- package/dist/plugins/github-client.d.ts +320 -0
- package/dist/plugins/github-client.d.ts.map +1 -0
- package/dist/plugins/github.d.ts +4 -1
- package/dist/plugins/github.d.ts.map +1 -1
- package/dist/plugins/gmail-client.d.ts +106 -0
- package/dist/plugins/gmail-client.d.ts.map +1 -0
- package/dist/plugins/gmail.d.ts +5 -2
- package/dist/plugins/gmail.d.ts.map +1 -1
- package/dist/plugins/server-client.d.ts +18 -0
- package/dist/plugins/server-client.d.ts.map +1 -0
- package/dist/plugins/types.d.ts +4 -4
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/protocol/messages.d.ts +1 -0
- package/dist/protocol/messages.d.ts.map +1 -1
- package/dist/utils/naming.d.ts +37 -0
- package/dist/utils/naming.d.ts.map +1 -0
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -11,10 +11,11 @@ A type-safe TypeScript SDK for connecting to the Integrate MCP (Model Context Pr
|
|
|
11
11
|
## Features
|
|
12
12
|
|
|
13
13
|
- 🔌 **Plugin-Based Architecture** - Enable only the integrations you need
|
|
14
|
-
- 🔒 **
|
|
14
|
+
- 🔒 **Fully Typed API** - Type-safe methods with autocomplete (e.g., `client.github.createIssue()`)
|
|
15
|
+
- 💡 **IntelliSense Support** - Full TypeScript support with parameter hints
|
|
15
16
|
- 🌊 **Real-time Communication** - HTTP streaming with NDJSON
|
|
16
17
|
- 🔐 **OAuth Ready** - Configure OAuth credentials for each provider
|
|
17
|
-
- 🛠️ **Extensible** -
|
|
18
|
+
- 🛠️ **Extensible** - Configure plugins for any server-supported integration
|
|
18
19
|
- 📦 **Zero Dependencies** - Lightweight implementation
|
|
19
20
|
|
|
20
21
|
## Installation
|
|
@@ -44,21 +45,60 @@ const client = createMCPClient({
|
|
|
44
45
|
// Connect to the server
|
|
45
46
|
await client.connect();
|
|
46
47
|
|
|
47
|
-
// Call
|
|
48
|
-
const result = await client.
|
|
49
|
-
|
|
48
|
+
// Call GitHub methods with full type safety
|
|
49
|
+
const result = await client.github.createIssue({
|
|
50
|
+
owner: "owner",
|
|
51
|
+
repo: "repo",
|
|
50
52
|
title: "Bug report",
|
|
51
53
|
body: "Description of the bug",
|
|
52
54
|
});
|
|
53
55
|
|
|
54
56
|
console.log("Issue created:", result);
|
|
55
57
|
|
|
58
|
+
// Call server-level tools with typed methods
|
|
59
|
+
const tools = await client.server.listToolsByIntegration({
|
|
60
|
+
integration: "github",
|
|
61
|
+
});
|
|
62
|
+
|
|
56
63
|
// Disconnect when done
|
|
57
64
|
await client.disconnect();
|
|
58
65
|
```
|
|
59
66
|
|
|
60
67
|
**Need help?** Check out the [complete documentation](https://integrate.dev) for detailed guides, examples, and API reference.
|
|
61
68
|
|
|
69
|
+
## Why Use Integrate SDK?
|
|
70
|
+
|
|
71
|
+
### Typed Plugin Methods
|
|
72
|
+
|
|
73
|
+
Instead of generic tool calls, use typed methods with full autocomplete:
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
// ✅ New: Typed methods with autocomplete
|
|
77
|
+
await client.github.createIssue({ owner: "user", repo: "project", title: "Bug" });
|
|
78
|
+
await client.gmail.sendEmail({ to: "user@example.com", subject: "Hello" });
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Benefits
|
|
82
|
+
|
|
83
|
+
- **Type Safety**: Parameters are validated at compile time
|
|
84
|
+
- **Autocomplete**: Your IDE suggests available methods and parameters
|
|
85
|
+
- **Documentation**: Inline JSDoc comments for every method
|
|
86
|
+
- **Refactoring**: Rename methods safely across your codebase
|
|
87
|
+
|
|
88
|
+
### Three Ways to Call Tools
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
// 1. Typed plugin methods (recommended for built-in plugins like GitHub/Gmail)
|
|
92
|
+
await client.github.createIssue({ owner: "user", repo: "project", title: "Bug" });
|
|
93
|
+
await client.gmail.sendEmail({ to: "user@example.com", subject: "Hello" });
|
|
94
|
+
|
|
95
|
+
// 2. Typed server methods (for server-level tools)
|
|
96
|
+
await client.server.listToolsByIntegration({ integration: "github" });
|
|
97
|
+
|
|
98
|
+
// 3. Direct tool calls (for other server-supported integrations)
|
|
99
|
+
await client._callToolByName("slack_send_message", { channel: "#general", text: "Hello" });
|
|
100
|
+
```
|
|
101
|
+
|
|
62
102
|
## Built-in Plugins
|
|
63
103
|
|
|
64
104
|
### GitHub Plugin
|
|
@@ -66,11 +106,22 @@ await client.disconnect();
|
|
|
66
106
|
Access GitHub repositories, issues, pull requests, and more.
|
|
67
107
|
|
|
68
108
|
```typescript
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
109
|
+
const client = createMCPClient({
|
|
110
|
+
plugins: [
|
|
111
|
+
githubPlugin({
|
|
112
|
+
clientId: process.env.GITHUB_CLIENT_ID!,
|
|
113
|
+
clientSecret: process.env.GITHUB_CLIENT_SECRET!,
|
|
114
|
+
scopes: ["repo", "user"],
|
|
115
|
+
}),
|
|
116
|
+
],
|
|
73
117
|
});
|
|
118
|
+
|
|
119
|
+
await client.connect();
|
|
120
|
+
|
|
121
|
+
// Use typed methods
|
|
122
|
+
await client.github.getRepo({ owner: "facebook", repo: "react" });
|
|
123
|
+
await client.github.createIssue({ owner: "user", repo: "repo", title: "Bug" });
|
|
124
|
+
await client.github.listPullRequests({ owner: "user", repo: "repo", state: "open" });
|
|
74
125
|
```
|
|
75
126
|
|
|
76
127
|
[→ View GitHub plugin documentation](https://integrate.dev/docs/plugins/github)
|
|
@@ -80,32 +131,56 @@ githubPlugin({
|
|
|
80
131
|
Send emails, manage labels, and search messages.
|
|
81
132
|
|
|
82
133
|
```typescript
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
134
|
+
const client = createMCPClient({
|
|
135
|
+
plugins: [
|
|
136
|
+
gmailPlugin({
|
|
137
|
+
clientId: process.env.GMAIL_CLIENT_ID!,
|
|
138
|
+
clientSecret: process.env.GMAIL_CLIENT_SECRET!,
|
|
139
|
+
}),
|
|
140
|
+
],
|
|
86
141
|
});
|
|
142
|
+
|
|
143
|
+
await client.connect();
|
|
144
|
+
|
|
145
|
+
// Use typed methods
|
|
146
|
+
await client.gmail.sendEmail({ to: "user@example.com", subject: "Hello", body: "Hi!" });
|
|
147
|
+
await client.gmail.listEmails({ maxResults: 10, q: "is:unread" });
|
|
148
|
+
await client.gmail.searchEmails({ query: "from:notifications@github.com" });
|
|
87
149
|
```
|
|
88
150
|
|
|
89
151
|
[→ View Gmail plugin documentation](https://integrate.dev/docs/plugins/gmail)
|
|
90
152
|
|
|
91
|
-
###
|
|
153
|
+
### Configure Additional Integrations
|
|
92
154
|
|
|
93
|
-
|
|
155
|
+
The server may support additional integrations beyond GitHub and Gmail. You can configure OAuth and enable these tools using `genericOAuthPlugin`:
|
|
94
156
|
|
|
95
157
|
```typescript
|
|
96
158
|
import { genericOAuthPlugin } from "integrate-sdk";
|
|
97
159
|
|
|
160
|
+
// Configure a plugin for any server-supported integration
|
|
98
161
|
const slackPlugin = genericOAuthPlugin({
|
|
99
162
|
id: "slack",
|
|
100
163
|
provider: "slack",
|
|
101
164
|
clientId: process.env.SLACK_CLIENT_ID!,
|
|
102
165
|
clientSecret: process.env.SLACK_CLIENT_SECRET!,
|
|
103
166
|
scopes: ["chat:write", "channels:read"],
|
|
104
|
-
tools: ["slack_send_message", "slack_list_channels"],
|
|
167
|
+
tools: ["slack_send_message", "slack_list_channels"], // Must exist on server
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
const client = createMCPClient({
|
|
171
|
+
plugins: [slackPlugin],
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
await client.connect();
|
|
175
|
+
|
|
176
|
+
// Use _callToolByName to call the tools
|
|
177
|
+
await client._callToolByName("slack_send_message", {
|
|
178
|
+
channel: "#general",
|
|
179
|
+
text: "Hello!"
|
|
105
180
|
});
|
|
106
181
|
```
|
|
107
182
|
|
|
108
|
-
|
|
183
|
+
**Note**: Plugins configure access to server-provided tools - they don't create new tools. All tool implementations must exist on the Integrate MCP server.
|
|
109
184
|
|
|
110
185
|
## Vercel AI SDK Integration
|
|
111
186
|
|
|
@@ -135,7 +210,7 @@ const result = await generateText({
|
|
|
135
210
|
For detailed guides, API reference, and examples, visit the [complete documentation](https://integrate.dev):
|
|
136
211
|
|
|
137
212
|
- **[Getting Started](https://integrate.dev/docs/getting-started/installation)** - Installation and quick start
|
|
138
|
-
- **[Plugins](https://integrate.dev/docs/plugins)** - Built-in and
|
|
213
|
+
- **[Plugins](https://integrate.dev/docs/plugins)** - Built-in plugins and configuration
|
|
139
214
|
- **[Vercel AI SDK](https://integrate.dev/docs/integrations/vercel-ai)** - AI model integration
|
|
140
215
|
- **[Advanced Usage](https://integrate.dev/docs/guides/advanced-usage)** - Error handling, retries, and more
|
|
141
216
|
- **[API Reference](https://integrate.dev/docs/reference/api-reference)** - Complete API documentation
|
package/dist/client.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ import type { MCPTool, MCPToolCallResponse } from "./protocol/messages.js";
|
|
|
6
6
|
import type { MCPPlugin, OAuthConfig } from "./plugins/types.js";
|
|
7
7
|
import type { MCPClientConfig } from "./config/types.js";
|
|
8
8
|
import { type AuthenticationError } from "./errors.js";
|
|
9
|
+
import type { GitHubPluginClient } from "./plugins/github-client.js";
|
|
10
|
+
import type { GmailPluginClient } from "./plugins/gmail-client.js";
|
|
11
|
+
import type { ServerPluginClient } from "./plugins/server-client.js";
|
|
9
12
|
/**
|
|
10
13
|
* Tool invocation options
|
|
11
14
|
*/
|
|
@@ -15,6 +18,25 @@ export interface ToolInvocationOptions {
|
|
|
15
18
|
/** Tool arguments */
|
|
16
19
|
arguments?: Record<string, unknown>;
|
|
17
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Extract all plugin IDs from a plugins array as a union
|
|
23
|
+
*/
|
|
24
|
+
type ExtractPluginId<T> = T extends {
|
|
25
|
+
id: infer Id;
|
|
26
|
+
} ? Id : never;
|
|
27
|
+
type PluginIds<TPlugins extends readonly MCPPlugin[]> = ExtractPluginId<TPlugins[number]>;
|
|
28
|
+
/**
|
|
29
|
+
* Check if a specific plugin ID exists in the plugin array
|
|
30
|
+
*/
|
|
31
|
+
type HasPluginId<TPlugins extends readonly MCPPlugin[], Id extends string> = Id extends PluginIds<TPlugins> ? true : false;
|
|
32
|
+
/**
|
|
33
|
+
* Plugin namespace type mapping - only includes properties for configured plugins
|
|
34
|
+
*/
|
|
35
|
+
type PluginNamespaces<TPlugins extends readonly MCPPlugin[]> = (HasPluginId<TPlugins, "github"> extends true ? {
|
|
36
|
+
github: GitHubPluginClient;
|
|
37
|
+
} : {}) & (HasPluginId<TPlugins, "gmail"> extends true ? {
|
|
38
|
+
gmail: GmailPluginClient;
|
|
39
|
+
} : {});
|
|
18
40
|
/**
|
|
19
41
|
* MCP Client Class
|
|
20
42
|
*
|
|
@@ -30,7 +52,27 @@ export declare class MCPClient<TPlugins extends readonly MCPPlugin[] = readonly
|
|
|
30
52
|
private onReauthRequired?;
|
|
31
53
|
private maxReauthRetries;
|
|
32
54
|
private authState;
|
|
55
|
+
readonly github: PluginNamespaces<TPlugins> extends {
|
|
56
|
+
github: GitHubPluginClient;
|
|
57
|
+
} ? GitHubPluginClient : never;
|
|
58
|
+
readonly gmail: PluginNamespaces<TPlugins> extends {
|
|
59
|
+
gmail: GmailPluginClient;
|
|
60
|
+
} ? GmailPluginClient : never;
|
|
61
|
+
readonly server: ServerPluginClient;
|
|
33
62
|
constructor(config: MCPClientConfig<TPlugins>);
|
|
63
|
+
/**
|
|
64
|
+
* Create a proxy for a plugin namespace that intercepts method calls
|
|
65
|
+
* and routes them to the appropriate tool
|
|
66
|
+
*/
|
|
67
|
+
private createPluginProxy;
|
|
68
|
+
/**
|
|
69
|
+
* Create a proxy for the server namespace that handles server-level tools
|
|
70
|
+
*/
|
|
71
|
+
private createServerProxy;
|
|
72
|
+
/**
|
|
73
|
+
* Internal implementation for calling server tools
|
|
74
|
+
*/
|
|
75
|
+
private callServerToolInternal;
|
|
34
76
|
/**
|
|
35
77
|
* Initialize all plugins
|
|
36
78
|
*/
|
|
@@ -48,9 +90,24 @@ export declare class MCPClient<TPlugins extends readonly MCPPlugin[] = readonly
|
|
|
48
90
|
*/
|
|
49
91
|
private discoverTools;
|
|
50
92
|
/**
|
|
51
|
-
*
|
|
93
|
+
* Internal method for integrations to call tools by name
|
|
94
|
+
* Used by integrations like Vercel AI that need to map from tool names
|
|
95
|
+
* @internal
|
|
96
|
+
*/
|
|
97
|
+
_callToolByName(name: string, args?: Record<string, unknown>): Promise<MCPToolCallResponse>;
|
|
98
|
+
/**
|
|
99
|
+
* Call any available tool on the server by name, bypassing plugin restrictions
|
|
100
|
+
* Useful for server-level tools like 'list_tools_by_integration' that don't belong to a specific plugin
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* // Call a server-level tool
|
|
105
|
+
* const tools = await client.callServerTool('list_tools_by_integration', {
|
|
106
|
+
* integration: 'github'
|
|
107
|
+
* });
|
|
108
|
+
* ```
|
|
52
109
|
*/
|
|
53
|
-
|
|
110
|
+
callServerTool(name: string, args?: Record<string, unknown>): Promise<MCPToolCallResponse>;
|
|
54
111
|
/**
|
|
55
112
|
* Internal method to call a tool with retry logic
|
|
56
113
|
*/
|
|
@@ -134,4 +191,5 @@ export declare class MCPClient<TPlugins extends readonly MCPPlugin[] = readonly
|
|
|
134
191
|
* ```
|
|
135
192
|
*/
|
|
136
193
|
export declare function createMCPClient<TPlugins extends readonly MCPPlugin[]>(config: MCPClientConfig<TPlugins>): MCPClient<TPlugins>;
|
|
194
|
+
export {};
|
|
137
195
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,OAAO,EAEP,mBAAmB,EAIpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,9 +8,10 @@ export type { MCPClientConfig, ReauthContext, ReauthHandler } from "./config/typ
|
|
|
8
8
|
export { IntegrateSDKError, AuthenticationError, AuthorizationError, TokenExpiredError, ConnectionError, ToolCallError, isAuthError, isTokenExpiredError, isAuthorizationError, parseServerError, } from "./errors.js";
|
|
9
9
|
export type { MCPPlugin, OAuthConfig, ExtractPluginIds, ExtractPluginTools, } from "./plugins/types.js";
|
|
10
10
|
export { githubPlugin } from "./plugins/github.js";
|
|
11
|
-
export type { GitHubPluginConfig, GitHubTools } from "./plugins/github.js";
|
|
11
|
+
export type { GitHubPluginConfig, GitHubTools, GitHubPluginClient } from "./plugins/github.js";
|
|
12
12
|
export { gmailPlugin } from "./plugins/gmail.js";
|
|
13
|
-
export type { GmailPluginConfig, GmailTools } from "./plugins/gmail.js";
|
|
13
|
+
export type { GmailPluginConfig, GmailTools, GmailPluginClient } from "./plugins/gmail.js";
|
|
14
|
+
export type { ServerPluginClient } from "./plugins/server-client.js";
|
|
14
15
|
export { genericOAuthPlugin, createSimplePlugin, } from "./plugins/generic.js";
|
|
15
16
|
export type { GenericOAuthPluginConfig } from "./plugins/generic.js";
|
|
16
17
|
export { convertMCPToolToVercelAI, convertMCPToolsToVercelAI, getVercelAITools, } from "./integrations/vercel-ai.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG3F,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGhE,YAAY,EACV,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,OAAO,EACP,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EACV,cAAc,EACd,2BAA2B,GAC5B,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -351,6 +351,17 @@ var MCPMethod;
|
|
|
351
351
|
|
|
352
352
|
// src/client.ts
|
|
353
353
|
init_errors();
|
|
354
|
+
|
|
355
|
+
// src/utils/naming.ts
|
|
356
|
+
function camelToSnake(str) {
|
|
357
|
+
return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
|
|
358
|
+
}
|
|
359
|
+
function methodToToolName(methodName, pluginId) {
|
|
360
|
+
const snakeCaseMethod = camelToSnake(methodName);
|
|
361
|
+
return `${pluginId}_${snakeCaseMethod}`;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
// src/client.ts
|
|
354
365
|
var MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp";
|
|
355
366
|
|
|
356
367
|
class MCPClient {
|
|
@@ -363,6 +374,9 @@ class MCPClient {
|
|
|
363
374
|
onReauthRequired;
|
|
364
375
|
maxReauthRetries;
|
|
365
376
|
authState = new Map;
|
|
377
|
+
github;
|
|
378
|
+
gmail;
|
|
379
|
+
server;
|
|
366
380
|
constructor(config) {
|
|
367
381
|
this.transport = new HttpSessionTransport({
|
|
368
382
|
url: MCP_SERVER_URL,
|
|
@@ -384,8 +398,51 @@ class MCPClient {
|
|
|
384
398
|
this.authState.set(plugin.oauth.provider, { authenticated: true });
|
|
385
399
|
}
|
|
386
400
|
}
|
|
401
|
+
this.github = this.createPluginProxy("github");
|
|
402
|
+
this.gmail = this.createPluginProxy("gmail");
|
|
403
|
+
this.server = this.createServerProxy();
|
|
387
404
|
this.initializePlugins();
|
|
388
405
|
}
|
|
406
|
+
createPluginProxy(pluginId) {
|
|
407
|
+
return new Proxy({}, {
|
|
408
|
+
get: (_target, methodName) => {
|
|
409
|
+
return async (args) => {
|
|
410
|
+
const toolName = methodToToolName(methodName, pluginId);
|
|
411
|
+
return await this.callToolWithRetry(toolName, args, 0);
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
createServerProxy() {
|
|
417
|
+
return new Proxy({}, {
|
|
418
|
+
get: (_target, methodName) => {
|
|
419
|
+
return async (args) => {
|
|
420
|
+
const toolName = methodToToolName(methodName, "");
|
|
421
|
+
const finalToolName = toolName.startsWith("_") ? toolName.substring(1) : toolName;
|
|
422
|
+
return await this.callServerToolInternal(finalToolName, args);
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
async callServerToolInternal(name, args) {
|
|
428
|
+
if (!this.initialized) {
|
|
429
|
+
throw new Error("Client not initialized. Call connect() first.");
|
|
430
|
+
}
|
|
431
|
+
if (!this.availableTools.has(name)) {
|
|
432
|
+
throw new Error(`Tool "${name}" is not available on the server. Available tools: ${Array.from(this.availableTools.keys()).join(", ")}`);
|
|
433
|
+
}
|
|
434
|
+
const params = {
|
|
435
|
+
name,
|
|
436
|
+
arguments: args
|
|
437
|
+
};
|
|
438
|
+
try {
|
|
439
|
+
const response = await this.transport.sendRequest("tools/call" /* TOOLS_CALL */, params);
|
|
440
|
+
return response;
|
|
441
|
+
} catch (error) {
|
|
442
|
+
const parsedError = parseServerError(error, { toolName: name });
|
|
443
|
+
throw parsedError;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
389
446
|
async initializePlugins() {
|
|
390
447
|
for (const plugin of this.plugins) {
|
|
391
448
|
if (plugin.onInit) {
|
|
@@ -428,9 +485,28 @@ class MCPClient {
|
|
|
428
485
|
const enabledTools = response.tools.filter((tool) => this.enabledToolNames.has(tool.name));
|
|
429
486
|
console.log(`Discovered ${response.tools.length} tools, ${enabledTools.length} enabled by plugins`);
|
|
430
487
|
}
|
|
431
|
-
async
|
|
488
|
+
async _callToolByName(name, args) {
|
|
432
489
|
return await this.callToolWithRetry(name, args, 0);
|
|
433
490
|
}
|
|
491
|
+
async callServerTool(name, args) {
|
|
492
|
+
if (!this.initialized) {
|
|
493
|
+
throw new Error("Client not initialized. Call connect() first.");
|
|
494
|
+
}
|
|
495
|
+
if (!this.availableTools.has(name)) {
|
|
496
|
+
throw new Error(`Tool "${name}" is not available on the server. Available tools: ${Array.from(this.availableTools.keys()).join(", ")}`);
|
|
497
|
+
}
|
|
498
|
+
const params = {
|
|
499
|
+
name,
|
|
500
|
+
arguments: args
|
|
501
|
+
};
|
|
502
|
+
try {
|
|
503
|
+
const response = await this.transport.sendRequest("tools/call" /* TOOLS_CALL */, params);
|
|
504
|
+
return response;
|
|
505
|
+
} catch (error) {
|
|
506
|
+
const parsedError = parseServerError(error, { toolName: name });
|
|
507
|
+
throw parsedError;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
434
510
|
async callToolWithRetry(name, args, retryCount = 0) {
|
|
435
511
|
if (!this.initialized) {
|
|
436
512
|
throw new Error("Client not initialized. Call connect() first.");
|
|
@@ -603,22 +679,10 @@ function githubPlugin(config) {
|
|
|
603
679
|
}
|
|
604
680
|
// src/plugins/gmail.ts
|
|
605
681
|
var GMAIL_TOOLS = [
|
|
606
|
-
"
|
|
607
|
-
"
|
|
608
|
-
"
|
|
609
|
-
"
|
|
610
|
-
"gmail_search_emails",
|
|
611
|
-
"gmail_mark_as_read",
|
|
612
|
-
"gmail_mark_as_unread",
|
|
613
|
-
"gmail_add_label",
|
|
614
|
-
"gmail_remove_label",
|
|
615
|
-
"gmail_list_labels",
|
|
616
|
-
"gmail_create_label",
|
|
617
|
-
"gmail_get_draft",
|
|
618
|
-
"gmail_create_draft",
|
|
619
|
-
"gmail_update_draft",
|
|
620
|
-
"gmail_delete_draft",
|
|
621
|
-
"gmail_send_draft"
|
|
682
|
+
"gmail_send_message",
|
|
683
|
+
"gmail_list_messages",
|
|
684
|
+
"gmail_get_message",
|
|
685
|
+
"gmail_search_messages"
|
|
622
686
|
];
|
|
623
687
|
function gmailPlugin(config) {
|
|
624
688
|
const oauth = {
|
|
@@ -683,7 +747,7 @@ function convertMCPToolToVercelAI(mcpTool, client) {
|
|
|
683
747
|
description: mcpTool.description || `Execute ${mcpTool.name}`,
|
|
684
748
|
parameters: convertMCPSchemaToParameters(mcpTool.inputSchema),
|
|
685
749
|
execute: async (args) => {
|
|
686
|
-
const result = await client.
|
|
750
|
+
const result = await client._callToolByName(mcpTool.name, args);
|
|
687
751
|
return result;
|
|
688
752
|
}
|
|
689
753
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../src/integrations/vercel-ai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9D;AAcD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,GAChB,YAAY,
|
|
1
|
+
{"version":3,"file":"vercel-ai.d.ts","sourceRoot":"","sources":["../../src/integrations/vercel-ai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9D;AAcD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,GAChB,YAAY,CAUd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,GAChB,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAS9B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,gCAEjD"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generic OAuth Plugin
|
|
3
|
-
*
|
|
3
|
+
* Configure OAuth and enable tools for any integration supported by the server
|
|
4
4
|
*/
|
|
5
5
|
import type { MCPPlugin } from "./types.js";
|
|
6
6
|
/**
|
|
7
7
|
* Generic OAuth plugin configuration
|
|
8
8
|
*/
|
|
9
9
|
export interface GenericOAuthPluginConfig {
|
|
10
|
-
/** Plugin unique identifier */
|
|
10
|
+
/** Plugin unique identifier (must match the integration ID on the server) */
|
|
11
11
|
id: string;
|
|
12
12
|
/** OAuth provider name */
|
|
13
13
|
provider: string;
|
|
@@ -17,7 +17,7 @@ export interface GenericOAuthPluginConfig {
|
|
|
17
17
|
clientSecret: string;
|
|
18
18
|
/** OAuth scopes */
|
|
19
19
|
scopes: string[];
|
|
20
|
-
/** Tool names to enable */
|
|
20
|
+
/** Tool names to enable from the server (must exist on the server) */
|
|
21
21
|
tools: string[];
|
|
22
22
|
/** OAuth redirect URI */
|
|
23
23
|
redirectUri?: string;
|
|
@@ -33,10 +33,13 @@ export interface GenericOAuthPluginConfig {
|
|
|
33
33
|
/**
|
|
34
34
|
* Generic OAuth Plugin
|
|
35
35
|
*
|
|
36
|
-
*
|
|
36
|
+
* Configure OAuth and enable tools for any integration supported by the Integrate MCP server.
|
|
37
|
+
* Note: This does NOT create new tools - it only configures access to existing server-side tools.
|
|
38
|
+
* All tools must be implemented on the server and exposed via the MCP protocol.
|
|
37
39
|
*
|
|
38
40
|
* @example
|
|
39
41
|
* ```typescript
|
|
42
|
+
* // Configure Slack integration (assuming server supports Slack tools)
|
|
40
43
|
* const slackPlugin = genericOAuthPlugin({
|
|
41
44
|
* id: 'slack',
|
|
42
45
|
* provider: 'slack',
|
|
@@ -44,28 +47,32 @@ export interface GenericOAuthPluginConfig {
|
|
|
44
47
|
* clientSecret: process.env.SLACK_CLIENT_SECRET!,
|
|
45
48
|
* scopes: ['chat:write', 'channels:read'],
|
|
46
49
|
* tools: [
|
|
47
|
-
* '
|
|
48
|
-
* '
|
|
49
|
-
* 'slack/getChannel',
|
|
50
|
+
* 'slack_send_message', // Must exist on server
|
|
51
|
+
* 'slack_list_channels', // Must exist on server
|
|
50
52
|
* ],
|
|
51
53
|
* });
|
|
52
54
|
*
|
|
53
55
|
* const client = createMCPClient({
|
|
54
|
-
* serverUrl: 'http://localhost:3000/mcp',
|
|
55
56
|
* plugins: [slackPlugin],
|
|
56
57
|
* });
|
|
58
|
+
*
|
|
59
|
+
* await client.connect();
|
|
60
|
+
* // Call server tools using _callToolByName
|
|
61
|
+
* await client._callToolByName('slack_send_message', { channel: '#general', text: 'Hello' });
|
|
57
62
|
* ```
|
|
58
63
|
*/
|
|
59
64
|
export declare function genericOAuthPlugin(config: GenericOAuthPluginConfig): MCPPlugin;
|
|
60
65
|
/**
|
|
61
66
|
* Create a simple plugin without OAuth
|
|
62
|
-
*
|
|
67
|
+
* Enable server-provided tools that don't require authentication
|
|
68
|
+
* Note: Tools must exist on the server - this does not create new tools
|
|
63
69
|
*
|
|
64
70
|
* @example
|
|
65
71
|
* ```typescript
|
|
72
|
+
* // Enable server-provided math tools (if they exist on the server)
|
|
66
73
|
* const mathPlugin = createSimplePlugin({
|
|
67
74
|
* id: 'math',
|
|
68
|
-
* tools: ['
|
|
75
|
+
* tools: ['math_add', 'math_subtract', 'math_multiply', 'math_divide'],
|
|
69
76
|
* });
|
|
70
77
|
* ```
|
|
71
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/plugins/generic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/plugins/generic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sEAAsE;IACtE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,uCAAuC;IACvC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,sCAAsC;IACtC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,mCAAmC;IACnC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,wBAAwB,GAC/B,SAAS,CAmBX;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACtD,GAAG,SAAS,CAQZ"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitHub Plugin Client Types
|
|
3
|
+
* Fully typed interface for GitHub plugin methods
|
|
4
|
+
*/
|
|
5
|
+
import type { MCPToolCallResponse } from "../protocol/messages.js";
|
|
6
|
+
/**
|
|
7
|
+
* GitHub Issue
|
|
8
|
+
*/
|
|
9
|
+
export interface GitHubIssue {
|
|
10
|
+
number: number;
|
|
11
|
+
title: string;
|
|
12
|
+
body?: string;
|
|
13
|
+
state: "open" | "closed";
|
|
14
|
+
html_url: string;
|
|
15
|
+
user?: {
|
|
16
|
+
login: string;
|
|
17
|
+
avatar_url: string;
|
|
18
|
+
};
|
|
19
|
+
created_at: string;
|
|
20
|
+
updated_at: string;
|
|
21
|
+
closed_at?: string;
|
|
22
|
+
labels?: Array<{
|
|
23
|
+
name: string;
|
|
24
|
+
color: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* GitHub Pull Request
|
|
29
|
+
*/
|
|
30
|
+
export interface GitHubPullRequest {
|
|
31
|
+
number: number;
|
|
32
|
+
title: string;
|
|
33
|
+
body?: string;
|
|
34
|
+
state: "open" | "closed" | "merged";
|
|
35
|
+
html_url: string;
|
|
36
|
+
user?: {
|
|
37
|
+
login: string;
|
|
38
|
+
avatar_url: string;
|
|
39
|
+
};
|
|
40
|
+
created_at: string;
|
|
41
|
+
updated_at: string;
|
|
42
|
+
merged_at?: string;
|
|
43
|
+
head: {
|
|
44
|
+
ref: string;
|
|
45
|
+
sha: string;
|
|
46
|
+
};
|
|
47
|
+
base: {
|
|
48
|
+
ref: string;
|
|
49
|
+
sha: string;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* GitHub Repository
|
|
54
|
+
*/
|
|
55
|
+
export interface GitHubRepository {
|
|
56
|
+
id: number;
|
|
57
|
+
name: string;
|
|
58
|
+
full_name: string;
|
|
59
|
+
description?: string;
|
|
60
|
+
html_url: string;
|
|
61
|
+
private: boolean;
|
|
62
|
+
owner: {
|
|
63
|
+
login: string;
|
|
64
|
+
avatar_url: string;
|
|
65
|
+
};
|
|
66
|
+
created_at: string;
|
|
67
|
+
updated_at: string;
|
|
68
|
+
pushed_at: string;
|
|
69
|
+
stargazers_count: number;
|
|
70
|
+
watchers_count: number;
|
|
71
|
+
forks_count: number;
|
|
72
|
+
language?: string;
|
|
73
|
+
default_branch: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* GitHub Branch
|
|
77
|
+
*/
|
|
78
|
+
export interface GitHubBranch {
|
|
79
|
+
name: string;
|
|
80
|
+
commit: {
|
|
81
|
+
sha: string;
|
|
82
|
+
url: string;
|
|
83
|
+
};
|
|
84
|
+
protected: boolean;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* GitHub User
|
|
88
|
+
*/
|
|
89
|
+
export interface GitHubUser {
|
|
90
|
+
login: string;
|
|
91
|
+
id: number;
|
|
92
|
+
avatar_url: string;
|
|
93
|
+
html_url: string;
|
|
94
|
+
name?: string;
|
|
95
|
+
email?: string;
|
|
96
|
+
bio?: string;
|
|
97
|
+
public_repos: number;
|
|
98
|
+
followers: number;
|
|
99
|
+
following: number;
|
|
100
|
+
created_at: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* GitHub Commit
|
|
104
|
+
*/
|
|
105
|
+
export interface GitHubCommit {
|
|
106
|
+
sha: string;
|
|
107
|
+
commit: {
|
|
108
|
+
message: string;
|
|
109
|
+
author: {
|
|
110
|
+
name: string;
|
|
111
|
+
email: string;
|
|
112
|
+
date: string;
|
|
113
|
+
};
|
|
114
|
+
committer: {
|
|
115
|
+
name: string;
|
|
116
|
+
email: string;
|
|
117
|
+
date: string;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
html_url: string;
|
|
121
|
+
author?: {
|
|
122
|
+
login: string;
|
|
123
|
+
avatar_url: string;
|
|
124
|
+
};
|
|
125
|
+
committer?: {
|
|
126
|
+
login: string;
|
|
127
|
+
avatar_url: string;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* GitHub Plugin Client Interface
|
|
132
|
+
* Provides type-safe methods for all GitHub operations
|
|
133
|
+
*/
|
|
134
|
+
export interface GitHubPluginClient {
|
|
135
|
+
/**
|
|
136
|
+
* Create a new issue in a repository
|
|
137
|
+
*/
|
|
138
|
+
createIssue(params: {
|
|
139
|
+
owner: string;
|
|
140
|
+
repo: string;
|
|
141
|
+
title: string;
|
|
142
|
+
body?: string;
|
|
143
|
+
labels?: string[];
|
|
144
|
+
assignees?: string[];
|
|
145
|
+
}): Promise<MCPToolCallResponse>;
|
|
146
|
+
/**
|
|
147
|
+
* List issues in a repository
|
|
148
|
+
*/
|
|
149
|
+
listIssues(params: {
|
|
150
|
+
owner: string;
|
|
151
|
+
repo: string;
|
|
152
|
+
state?: "open" | "closed" | "all";
|
|
153
|
+
labels?: string[];
|
|
154
|
+
sort?: "created" | "updated" | "comments";
|
|
155
|
+
direction?: "asc" | "desc";
|
|
156
|
+
per_page?: number;
|
|
157
|
+
page?: number;
|
|
158
|
+
}): Promise<MCPToolCallResponse>;
|
|
159
|
+
/**
|
|
160
|
+
* Get a specific issue
|
|
161
|
+
*/
|
|
162
|
+
getIssue(params: {
|
|
163
|
+
owner: string;
|
|
164
|
+
repo: string;
|
|
165
|
+
issue_number: number;
|
|
166
|
+
}): Promise<MCPToolCallResponse>;
|
|
167
|
+
/**
|
|
168
|
+
* Update an existing issue
|
|
169
|
+
*/
|
|
170
|
+
updateIssue(params: {
|
|
171
|
+
owner: string;
|
|
172
|
+
repo: string;
|
|
173
|
+
issue_number: number;
|
|
174
|
+
title?: string;
|
|
175
|
+
body?: string;
|
|
176
|
+
state?: "open" | "closed";
|
|
177
|
+
labels?: string[];
|
|
178
|
+
assignees?: string[];
|
|
179
|
+
}): Promise<MCPToolCallResponse>;
|
|
180
|
+
/**
|
|
181
|
+
* Close an issue
|
|
182
|
+
*/
|
|
183
|
+
closeIssue(params: {
|
|
184
|
+
owner: string;
|
|
185
|
+
repo: string;
|
|
186
|
+
issue_number: number;
|
|
187
|
+
}): Promise<MCPToolCallResponse>;
|
|
188
|
+
/**
|
|
189
|
+
* Create a pull request
|
|
190
|
+
*/
|
|
191
|
+
createPullRequest(params: {
|
|
192
|
+
owner: string;
|
|
193
|
+
repo: string;
|
|
194
|
+
title: string;
|
|
195
|
+
head: string;
|
|
196
|
+
base: string;
|
|
197
|
+
body?: string;
|
|
198
|
+
draft?: boolean;
|
|
199
|
+
}): Promise<MCPToolCallResponse>;
|
|
200
|
+
/**
|
|
201
|
+
* List pull requests in a repository
|
|
202
|
+
*/
|
|
203
|
+
listPullRequests(params: {
|
|
204
|
+
owner: string;
|
|
205
|
+
repo: string;
|
|
206
|
+
state?: "open" | "closed" | "all";
|
|
207
|
+
sort?: "created" | "updated" | "popularity" | "long-running";
|
|
208
|
+
direction?: "asc" | "desc";
|
|
209
|
+
per_page?: number;
|
|
210
|
+
page?: number;
|
|
211
|
+
}): Promise<MCPToolCallResponse>;
|
|
212
|
+
/**
|
|
213
|
+
* Get a specific pull request
|
|
214
|
+
*/
|
|
215
|
+
getPullRequest(params: {
|
|
216
|
+
owner: string;
|
|
217
|
+
repo: string;
|
|
218
|
+
pull_number: number;
|
|
219
|
+
}): Promise<MCPToolCallResponse>;
|
|
220
|
+
/**
|
|
221
|
+
* Merge a pull request
|
|
222
|
+
*/
|
|
223
|
+
mergePullRequest(params: {
|
|
224
|
+
owner: string;
|
|
225
|
+
repo: string;
|
|
226
|
+
pull_number: number;
|
|
227
|
+
commit_title?: string;
|
|
228
|
+
commit_message?: string;
|
|
229
|
+
merge_method?: "merge" | "squash" | "rebase";
|
|
230
|
+
}): Promise<MCPToolCallResponse>;
|
|
231
|
+
/**
|
|
232
|
+
* List repositories (for a user or organization)
|
|
233
|
+
*/
|
|
234
|
+
listRepos(params: {
|
|
235
|
+
owner: string;
|
|
236
|
+
type?: "all" | "owner" | "member";
|
|
237
|
+
sort?: "created" | "updated" | "pushed" | "full_name";
|
|
238
|
+
direction?: "asc" | "desc";
|
|
239
|
+
per_page?: number;
|
|
240
|
+
page?: number;
|
|
241
|
+
}): Promise<MCPToolCallResponse>;
|
|
242
|
+
/**
|
|
243
|
+
* List repositories for the authenticated user
|
|
244
|
+
*/
|
|
245
|
+
listOwnRepos(params?: {
|
|
246
|
+
visibility?: "all" | "public" | "private";
|
|
247
|
+
affiliation?: string;
|
|
248
|
+
type?: "all" | "owner" | "public" | "private" | "member";
|
|
249
|
+
sort?: "created" | "updated" | "pushed" | "full_name";
|
|
250
|
+
direction?: "asc" | "desc";
|
|
251
|
+
per_page?: number;
|
|
252
|
+
page?: number;
|
|
253
|
+
}): Promise<MCPToolCallResponse>;
|
|
254
|
+
/**
|
|
255
|
+
* Get a specific repository
|
|
256
|
+
*/
|
|
257
|
+
getRepo(params: {
|
|
258
|
+
owner: string;
|
|
259
|
+
repo: string;
|
|
260
|
+
}): Promise<MCPToolCallResponse>;
|
|
261
|
+
/**
|
|
262
|
+
* Create a new repository
|
|
263
|
+
*/
|
|
264
|
+
createRepo(params: {
|
|
265
|
+
name: string;
|
|
266
|
+
description?: string;
|
|
267
|
+
private?: boolean;
|
|
268
|
+
auto_init?: boolean;
|
|
269
|
+
gitignore_template?: string;
|
|
270
|
+
license_template?: string;
|
|
271
|
+
}): Promise<MCPToolCallResponse>;
|
|
272
|
+
/**
|
|
273
|
+
* List branches in a repository
|
|
274
|
+
*/
|
|
275
|
+
listBranches(params: {
|
|
276
|
+
owner: string;
|
|
277
|
+
repo: string;
|
|
278
|
+
protected?: boolean;
|
|
279
|
+
per_page?: number;
|
|
280
|
+
page?: number;
|
|
281
|
+
}): Promise<MCPToolCallResponse>;
|
|
282
|
+
/**
|
|
283
|
+
* Create a new branch
|
|
284
|
+
*/
|
|
285
|
+
createBranch(params: {
|
|
286
|
+
owner: string;
|
|
287
|
+
repo: string;
|
|
288
|
+
branch: string;
|
|
289
|
+
from_branch?: string;
|
|
290
|
+
}): Promise<MCPToolCallResponse>;
|
|
291
|
+
/**
|
|
292
|
+
* Get information about a user
|
|
293
|
+
*/
|
|
294
|
+
getUser(params: {
|
|
295
|
+
username: string;
|
|
296
|
+
}): Promise<MCPToolCallResponse>;
|
|
297
|
+
/**
|
|
298
|
+
* List commits in a repository
|
|
299
|
+
*/
|
|
300
|
+
listCommits(params: {
|
|
301
|
+
owner: string;
|
|
302
|
+
repo: string;
|
|
303
|
+
sha?: string;
|
|
304
|
+
path?: string;
|
|
305
|
+
author?: string;
|
|
306
|
+
since?: string;
|
|
307
|
+
until?: string;
|
|
308
|
+
per_page?: number;
|
|
309
|
+
page?: number;
|
|
310
|
+
}): Promise<MCPToolCallResponse>;
|
|
311
|
+
/**
|
|
312
|
+
* Get a specific commit
|
|
313
|
+
*/
|
|
314
|
+
getCommit(params: {
|
|
315
|
+
owner: string;
|
|
316
|
+
repo: string;
|
|
317
|
+
ref: string;
|
|
318
|
+
}): Promise<MCPToolCallResponse>;
|
|
319
|
+
}
|
|
320
|
+
//# sourceMappingURL=github-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-client.d.ts","sourceRoot":"","sources":["../../src/plugins/github-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,IAAI,EAAE;QACJ,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;QAC1C,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,cAAc,CAAC;QAC7D,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;KAC9C,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;QAClC,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;QACtD,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,YAAY,CAAC,MAAM,CAAC,EAAE;QACpB,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QACzD,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;QACtD,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAClC"}
|
package/dist/plugins/github.d.ts
CHANGED
|
@@ -47,5 +47,8 @@ export declare function githubPlugin(config: GitHubPluginConfig): MCPPlugin;
|
|
|
47
47
|
* Export tool names for type inference
|
|
48
48
|
*/
|
|
49
49
|
export type GitHubTools = typeof GITHUB_TOOLS[number];
|
|
50
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Export GitHub client types
|
|
52
|
+
*/
|
|
53
|
+
export type { GitHubPluginClient } from "./github-client.js";
|
|
51
54
|
//# sourceMappingURL=github.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/plugins/github.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,QAAA,MAAM,YAAY,kbAmBR,CAAC;AAEX;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,CA0BlE;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/plugins/github.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,QAAA,MAAM,YAAY,kbAmBR,CAAC;AAEX;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,CA0BlE;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAEtD;;GAEG;AACH,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gmail Plugin Client Types
|
|
3
|
+
* Fully typed interface for Gmail plugin methods
|
|
4
|
+
*/
|
|
5
|
+
import type { MCPToolCallResponse } from "../protocol/messages.js";
|
|
6
|
+
/**
|
|
7
|
+
* Gmail Email Message
|
|
8
|
+
*/
|
|
9
|
+
export interface GmailMessage {
|
|
10
|
+
id: string;
|
|
11
|
+
threadId: string;
|
|
12
|
+
labelIds?: string[];
|
|
13
|
+
snippet?: string;
|
|
14
|
+
payload?: {
|
|
15
|
+
headers?: Array<{
|
|
16
|
+
name: string;
|
|
17
|
+
value: string;
|
|
18
|
+
}>;
|
|
19
|
+
body?: {
|
|
20
|
+
data?: string;
|
|
21
|
+
size?: number;
|
|
22
|
+
};
|
|
23
|
+
parts?: Array<{
|
|
24
|
+
mimeType?: string;
|
|
25
|
+
body?: {
|
|
26
|
+
data?: string;
|
|
27
|
+
size?: number;
|
|
28
|
+
};
|
|
29
|
+
}>;
|
|
30
|
+
};
|
|
31
|
+
sizeEstimate?: number;
|
|
32
|
+
historyId?: string;
|
|
33
|
+
internalDate?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Gmail Label
|
|
37
|
+
*/
|
|
38
|
+
export interface GmailLabel {
|
|
39
|
+
id: string;
|
|
40
|
+
name: string;
|
|
41
|
+
type?: "system" | "user";
|
|
42
|
+
messageListVisibility?: "show" | "hide";
|
|
43
|
+
labelListVisibility?: "labelShow" | "labelShowIfUnread" | "labelHide";
|
|
44
|
+
color?: {
|
|
45
|
+
textColor?: string;
|
|
46
|
+
backgroundColor?: string;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Gmail Draft
|
|
51
|
+
*/
|
|
52
|
+
export interface GmailDraft {
|
|
53
|
+
id: string;
|
|
54
|
+
message: GmailMessage;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Gmail Plugin Client Interface
|
|
58
|
+
* Provides type-safe methods for all Gmail operations
|
|
59
|
+
*/
|
|
60
|
+
export interface GmailPluginClient {
|
|
61
|
+
/**
|
|
62
|
+
* Send a message
|
|
63
|
+
*/
|
|
64
|
+
sendMessage(params: {
|
|
65
|
+
to: string | string[];
|
|
66
|
+
subject: string;
|
|
67
|
+
body: string;
|
|
68
|
+
cc?: string | string[];
|
|
69
|
+
bcc?: string | string[];
|
|
70
|
+
from?: string;
|
|
71
|
+
replyTo?: string;
|
|
72
|
+
html?: boolean;
|
|
73
|
+
attachments?: Array<{
|
|
74
|
+
filename: string;
|
|
75
|
+
content: string;
|
|
76
|
+
encoding?: string;
|
|
77
|
+
}>;
|
|
78
|
+
}): Promise<MCPToolCallResponse>;
|
|
79
|
+
/**
|
|
80
|
+
* List messages in the mailbox
|
|
81
|
+
*/
|
|
82
|
+
listMessages(params?: {
|
|
83
|
+
maxResults?: number;
|
|
84
|
+
pageToken?: string;
|
|
85
|
+
q?: string;
|
|
86
|
+
labelIds?: string[];
|
|
87
|
+
includeSpamTrash?: boolean;
|
|
88
|
+
}): Promise<MCPToolCallResponse>;
|
|
89
|
+
/**
|
|
90
|
+
* Get a specific message by ID
|
|
91
|
+
*/
|
|
92
|
+
getMessage(params: {
|
|
93
|
+
id: string;
|
|
94
|
+
format?: "minimal" | "full" | "raw" | "metadata";
|
|
95
|
+
}): Promise<MCPToolCallResponse>;
|
|
96
|
+
/**
|
|
97
|
+
* Search messages with query
|
|
98
|
+
*/
|
|
99
|
+
searchMessages(params: {
|
|
100
|
+
query: string;
|
|
101
|
+
maxResults?: number;
|
|
102
|
+
pageToken?: string;
|
|
103
|
+
includeSpamTrash?: boolean;
|
|
104
|
+
}): Promise<MCPToolCallResponse>;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=gmail-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gmail-client.d.ts","sourceRoot":"","sources":["../../src/plugins/gmail-client.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins/gmail.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export interface GmailPluginConfig {
|
|
|
20
20
|
* Default Gmail tools that this plugin enables
|
|
21
21
|
* These should match the tool names exposed by your MCP server
|
|
22
22
|
*/
|
|
23
|
-
declare const GMAIL_TOOLS: readonly ["
|
|
23
|
+
declare const GMAIL_TOOLS: readonly ["gmail_send_message", "gmail_list_messages", "gmail_get_message", "gmail_search_messages"];
|
|
24
24
|
/**
|
|
25
25
|
* Gmail Plugin
|
|
26
26
|
*
|
|
@@ -44,5 +44,8 @@ export declare function gmailPlugin(config: GmailPluginConfig): MCPPlugin;
|
|
|
44
44
|
* Export tool names for type inference
|
|
45
45
|
*/
|
|
46
46
|
export type GmailTools = typeof GMAIL_TOOLS[number];
|
|
47
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Export Gmail client types
|
|
49
|
+
*/
|
|
50
|
+
export type { GmailPluginClient } from "./gmail-client.js";
|
|
48
51
|
//# sourceMappingURL=gmail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../../src/plugins/gmail.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,QAAA,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"gmail.d.ts","sourceRoot":"","sources":["../../src/plugins/gmail.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,QAAA,MAAM,WAAW,sGAKP,CAAC;AAEX;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CA4BhE;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAEpD;;GAEG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Plugin Client Types
|
|
3
|
+
* Fully typed interface for server-level tools that don't belong to a specific plugin
|
|
4
|
+
*/
|
|
5
|
+
import type { MCPToolCallResponse } from "../protocol/messages.js";
|
|
6
|
+
/**
|
|
7
|
+
* Server Plugin Client Interface
|
|
8
|
+
* Provides type-safe methods for server-level operations
|
|
9
|
+
*/
|
|
10
|
+
export interface ServerPluginClient {
|
|
11
|
+
/**
|
|
12
|
+
* List all tools available for a specific integration
|
|
13
|
+
*/
|
|
14
|
+
listToolsByIntegration(params: {
|
|
15
|
+
integration: string;
|
|
16
|
+
}): Promise<MCPToolCallResponse>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=server-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-client.d.ts","sourceRoot":"","sources":["../../src/plugins/server-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE;QAC7B,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAClC"}
|
package/dist/plugins/types.d.ts
CHANGED
|
@@ -33,13 +33,13 @@ export interface MCPPlugin {
|
|
|
33
33
|
/** OAuth configuration for this plugin */
|
|
34
34
|
oauth?: OAuthConfig;
|
|
35
35
|
/** Called when the plugin is initialized with the client */
|
|
36
|
-
onInit?: (client: MCPClient) => Promise<void> | void;
|
|
36
|
+
onInit?: (client: MCPClient<any>) => Promise<void> | void;
|
|
37
37
|
/** Called before the client connects to the server */
|
|
38
|
-
onBeforeConnect?: (client: MCPClient) => Promise<void> | void;
|
|
38
|
+
onBeforeConnect?: (client: MCPClient<any>) => Promise<void> | void;
|
|
39
39
|
/** Called after the client successfully connects */
|
|
40
|
-
onAfterConnect?: (client: MCPClient) => Promise<void> | void;
|
|
40
|
+
onAfterConnect?: (client: MCPClient<any>) => Promise<void> | void;
|
|
41
41
|
/** Called when the client disconnects */
|
|
42
|
-
onDisconnect?: (client: MCPClient) => Promise<void> | void;
|
|
42
|
+
onDisconnect?: (client: MCPClient<any>) => Promise<void> | void;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Helper type to extract plugin IDs from an array of plugins
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IAEX,6CAA6C;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugins/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IAEX,6CAA6C;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE1D,sDAAsD;IACtD,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEnE,oDAAoD;IACpD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAElE,yCAAyC;IACzC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,SAAS,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5F;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,GAChB,MAAM,IAAI,SAAS,GAAG;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,CAE9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/protocol/messages.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/protocol/messages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,GAAG,OAAO;IACjD,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IACnC,sBAAsB,CAAC,CAAC,CAAC,GACzB,oBAAoB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Naming conversion utilities
|
|
3
|
+
* Helpers for converting between camelCase and snake_case
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Convert camelCase to snake_case
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* camelToSnake('getRepo') // 'get_repo'
|
|
10
|
+
* camelToSnake('listOwnRepos') // 'list_own_repos'
|
|
11
|
+
*/
|
|
12
|
+
export declare function camelToSnake(str: string): string;
|
|
13
|
+
/**
|
|
14
|
+
* Convert snake_case to camelCase
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* snakeToCamel('get_repo') // 'getRepo'
|
|
18
|
+
* snakeToCamel('list_own_repos') // 'listOwnRepos'
|
|
19
|
+
*/
|
|
20
|
+
export declare function snakeToCamel(str: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Convert a method name to a full tool name with plugin prefix
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* methodToToolName('getRepo', 'github') // 'github_get_repo'
|
|
26
|
+
* methodToToolName('sendEmail', 'gmail') // 'gmail_send_email'
|
|
27
|
+
*/
|
|
28
|
+
export declare function methodToToolName(methodName: string, pluginId: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Convert a tool name to a method name (removes plugin prefix and converts to camelCase)
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* toolNameToMethod('github_get_repo') // 'getRepo'
|
|
34
|
+
* toolNameToMethod('gmail_send_email') // 'sendEmail'
|
|
35
|
+
*/
|
|
36
|
+
export declare function toolNameToMethod(toolName: string): string;
|
|
37
|
+
//# sourceMappingURL=naming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../src/utils/naming.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG7E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIzD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "integrate-sdk",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Type-safe TypeScript SDK for MCP Client with plugin-based OAuth provider configuration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"test:watch": "bun test --watch tests/protocol tests/plugins tests/client tests/integrations tests/integration/simple-integration.test.ts",
|
|
33
33
|
"test:unit": "bun test tests/protocol tests/plugins tests/client tests/integrations",
|
|
34
34
|
"test:integration": "bun test tests/integration/simple-integration.test.ts",
|
|
35
|
-
"test:coverage": "bun test --coverage tests/protocol tests/plugins tests/client tests/integrations tests/integration/simple-integration.test.ts"
|
|
35
|
+
"test:coverage": "bun test --coverage tests/protocol tests/plugins tests/client tests/integrations tests/integration/simple-integration.test.ts",
|
|
36
|
+
"prepare": "simple-git-hooks"
|
|
36
37
|
},
|
|
37
38
|
"keywords": [
|
|
38
39
|
"mcp",
|
|
@@ -46,9 +47,13 @@
|
|
|
46
47
|
"license": "MIT",
|
|
47
48
|
"devDependencies": {
|
|
48
49
|
"@types/bun": "latest",
|
|
50
|
+
"simple-git-hooks": "^2.13.1",
|
|
49
51
|
"typescript": "^5.3.3"
|
|
50
52
|
},
|
|
51
53
|
"peerDependencies": {
|
|
52
54
|
"typescript": ">=5.0.0"
|
|
55
|
+
},
|
|
56
|
+
"simple-git-hooks": {
|
|
57
|
+
"pre-commit": "./scripts/check-version.sh"
|
|
53
58
|
}
|
|
54
59
|
}
|