integrate-sdk 0.8.28 → 0.8.30-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/adapters/auto-routes.js +397 -0
  2. package/dist/adapters/index.js +397 -0
  3. package/dist/adapters/nextjs.js +397 -0
  4. package/dist/adapters/node.js +397 -0
  5. package/dist/adapters/svelte-kit.js +397 -0
  6. package/dist/adapters/tanstack-start.js +397 -0
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +434 -1
  10. package/dist/oauth.js +397 -0
  11. package/dist/server.js +406 -0
  12. package/dist/src/client.d.ts +10 -1
  13. package/dist/src/client.d.ts.map +1 -1
  14. package/dist/src/index.d.ts +18 -0
  15. package/dist/src/index.d.ts.map +1 -1
  16. package/dist/src/integrations/airtable-client.d.ts +260 -0
  17. package/dist/src/integrations/airtable-client.d.ts.map +1 -0
  18. package/dist/src/integrations/airtable.d.ts +37 -0
  19. package/dist/src/integrations/airtable.d.ts.map +1 -0
  20. package/dist/src/integrations/gcal-client.d.ts +370 -0
  21. package/dist/src/integrations/gcal-client.d.ts.map +1 -0
  22. package/dist/src/integrations/gcal.d.ts +37 -0
  23. package/dist/src/integrations/gcal.d.ts.map +1 -0
  24. package/dist/src/integrations/linear-client.d.ts +309 -0
  25. package/dist/src/integrations/linear-client.d.ts.map +1 -0
  26. package/dist/src/integrations/linear.d.ts +37 -0
  27. package/dist/src/integrations/linear.d.ts.map +1 -0
  28. package/dist/src/integrations/outlook-client.d.ts +433 -0
  29. package/dist/src/integrations/outlook-client.d.ts.map +1 -0
  30. package/dist/src/integrations/outlook.d.ts +37 -0
  31. package/dist/src/integrations/outlook.d.ts.map +1 -0
  32. package/dist/src/integrations/slack-client.d.ts +271 -0
  33. package/dist/src/integrations/slack-client.d.ts.map +1 -0
  34. package/dist/src/integrations/slack.d.ts +37 -0
  35. package/dist/src/integrations/slack.d.ts.map +1 -0
  36. package/dist/src/integrations/stripe-client.d.ts +412 -0
  37. package/dist/src/integrations/stripe-client.d.ts.map +1 -0
  38. package/dist/src/integrations/stripe.d.ts +37 -0
  39. package/dist/src/integrations/stripe.d.ts.map +1 -0
  40. package/dist/src/integrations/todoist-client.d.ts +253 -0
  41. package/dist/src/integrations/todoist-client.d.ts.map +1 -0
  42. package/dist/src/integrations/todoist.d.ts +37 -0
  43. package/dist/src/integrations/todoist.d.ts.map +1 -0
  44. package/dist/src/integrations/vercel-client.d.ts +278 -0
  45. package/dist/src/integrations/vercel-client.d.ts.map +1 -0
  46. package/dist/src/integrations/vercel.d.ts +37 -0
  47. package/dist/src/integrations/vercel.d.ts.map +1 -0
  48. package/dist/src/integrations/zendesk-client.d.ts +395 -0
  49. package/dist/src/integrations/zendesk-client.d.ts.map +1 -0
  50. package/dist/src/integrations/zendesk.d.ts +39 -0
  51. package/dist/src/integrations/zendesk.d.ts.map +1 -0
  52. package/dist/src/server.d.ts +9 -0
  53. package/dist/src/server.d.ts.map +1 -1
  54. package/index.ts +18 -0
  55. package/package.json +2 -2
@@ -0,0 +1,253 @@
1
+ /**
2
+ * Todoist Integration Client Types
3
+ * Fully typed interface for Todoist integration methods
4
+ */
5
+ import type { MCPToolCallResponse } from "../protocol/messages.js";
6
+ /**
7
+ * Todoist Project
8
+ */
9
+ export interface TodoistProject {
10
+ id: string;
11
+ name: string;
12
+ color: string;
13
+ parent_id?: string;
14
+ order: number;
15
+ comment_count: number;
16
+ is_shared: boolean;
17
+ is_favorite: boolean;
18
+ is_inbox_project: boolean;
19
+ is_team_inbox: boolean;
20
+ view_style: "list" | "board";
21
+ url: string;
22
+ }
23
+ /**
24
+ * Todoist Task
25
+ */
26
+ export interface TodoistTask {
27
+ id: string;
28
+ project_id: string;
29
+ section_id?: string;
30
+ content: string;
31
+ description: string;
32
+ is_completed: boolean;
33
+ labels: string[];
34
+ parent_id?: string;
35
+ order: number;
36
+ priority: 1 | 2 | 3 | 4;
37
+ due?: {
38
+ date: string;
39
+ string: string;
40
+ lang: string;
41
+ is_recurring: boolean;
42
+ datetime?: string;
43
+ timezone?: string;
44
+ };
45
+ url: string;
46
+ comment_count: number;
47
+ created_at: string;
48
+ creator_id: string;
49
+ assignee_id?: string;
50
+ assigner_id?: string;
51
+ duration?: {
52
+ amount: number;
53
+ unit: "minute" | "day";
54
+ };
55
+ }
56
+ /**
57
+ * Todoist Label
58
+ */
59
+ export interface TodoistLabel {
60
+ id: string;
61
+ name: string;
62
+ color: string;
63
+ order: number;
64
+ is_favorite: boolean;
65
+ }
66
+ /**
67
+ * Todoist Section
68
+ */
69
+ export interface TodoistSection {
70
+ id: string;
71
+ project_id: string;
72
+ order: number;
73
+ name: string;
74
+ }
75
+ /**
76
+ * Todoist Integration Client Interface
77
+ * Provides type-safe methods for all Todoist operations
78
+ */
79
+ export interface TodoistIntegrationClient {
80
+ /**
81
+ * List all projects
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * const projects = await client.todoist.listProjects({});
86
+ * ```
87
+ */
88
+ listProjects(params?: Record<string, never>): Promise<MCPToolCallResponse>;
89
+ /**
90
+ * Get a specific project
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * const project = await client.todoist.getProject({
95
+ * projectId: "2203306141"
96
+ * });
97
+ * ```
98
+ */
99
+ getProject(params: {
100
+ /** Project ID */
101
+ projectId: string;
102
+ }): Promise<MCPToolCallResponse>;
103
+ /**
104
+ * Create a new project
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const project = await client.todoist.createProject({
109
+ * name: "My New Project",
110
+ * color: "blue"
111
+ * });
112
+ * ```
113
+ */
114
+ createProject(params: {
115
+ /** Project name */
116
+ name: string;
117
+ /** Parent project ID */
118
+ parent_id?: string;
119
+ /** Project color */
120
+ color?: string;
121
+ /** Whether project is a favorite */
122
+ is_favorite?: boolean;
123
+ /** View style */
124
+ view_style?: "list" | "board";
125
+ }): Promise<MCPToolCallResponse>;
126
+ /**
127
+ * List tasks
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * const tasks = await client.todoist.listTasks({
132
+ * projectId: "2203306141"
133
+ * });
134
+ * ```
135
+ */
136
+ listTasks(params?: {
137
+ /** Filter by project ID */
138
+ projectId?: string;
139
+ /** Filter by section ID */
140
+ sectionId?: string;
141
+ /** Filter by label */
142
+ label?: string;
143
+ /** Filter expression (Todoist filter syntax) */
144
+ filter?: string;
145
+ /** Language for filter parsing */
146
+ lang?: string;
147
+ /** List of task IDs to retrieve */
148
+ ids?: string[];
149
+ }): Promise<MCPToolCallResponse>;
150
+ /**
151
+ * Get a specific task
152
+ *
153
+ * @example
154
+ * ```typescript
155
+ * const task = await client.todoist.getTask({
156
+ * taskId: "2995104339"
157
+ * });
158
+ * ```
159
+ */
160
+ getTask(params: {
161
+ /** Task ID */
162
+ taskId: string;
163
+ }): Promise<MCPToolCallResponse>;
164
+ /**
165
+ * Create a new task
166
+ *
167
+ * @example
168
+ * ```typescript
169
+ * const task = await client.todoist.createTask({
170
+ * content: "Buy groceries",
171
+ * due_string: "tomorrow at 10am",
172
+ * priority: 2
173
+ * });
174
+ * ```
175
+ */
176
+ createTask(params: {
177
+ /** Task content/title */
178
+ content: string;
179
+ /** Task description */
180
+ description?: string;
181
+ /** Project ID */
182
+ project_id?: string;
183
+ /** Section ID */
184
+ section_id?: string;
185
+ /** Parent task ID */
186
+ parent_id?: string;
187
+ /** Task order */
188
+ order?: number;
189
+ /** Labels to apply */
190
+ labels?: string[];
191
+ /** Priority (1-4, 4 is highest) */
192
+ priority?: 1 | 2 | 3 | 4;
193
+ /** Due date string (natural language) */
194
+ due_string?: string;
195
+ /** Due date (YYYY-MM-DD) */
196
+ due_date?: string;
197
+ /** Due datetime (RFC 3339) */
198
+ due_datetime?: string;
199
+ /** Due date language */
200
+ due_lang?: string;
201
+ /** Assignee ID */
202
+ assignee_id?: string;
203
+ /** Duration */
204
+ duration?: number;
205
+ /** Duration unit */
206
+ duration_unit?: "minute" | "day";
207
+ }): Promise<MCPToolCallResponse>;
208
+ /**
209
+ * Complete a task
210
+ *
211
+ * @example
212
+ * ```typescript
213
+ * await client.todoist.completeTask({
214
+ * taskId: "2995104339"
215
+ * });
216
+ * ```
217
+ */
218
+ completeTask(params: {
219
+ /** Task ID to complete */
220
+ taskId: string;
221
+ }): Promise<MCPToolCallResponse>;
222
+ /**
223
+ * List all labels
224
+ *
225
+ * @example
226
+ * ```typescript
227
+ * const labels = await client.todoist.listLabels({});
228
+ * ```
229
+ */
230
+ listLabels(params?: Record<string, never>): Promise<MCPToolCallResponse>;
231
+ /**
232
+ * Create a new label
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * const label = await client.todoist.createLabel({
237
+ * name: "urgent",
238
+ * color: "red"
239
+ * });
240
+ * ```
241
+ */
242
+ createLabel(params: {
243
+ /** Label name */
244
+ name: string;
245
+ /** Label color */
246
+ color?: string;
247
+ /** Label order */
248
+ order?: number;
249
+ /** Whether label is a favorite */
250
+ is_favorite?: boolean;
251
+ }): Promise<MCPToolCallResponse>;
252
+ }
253
+ //# sourceMappingURL=todoist-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/todoist-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Todoist Integration
3
+ * Enables Todoist tools with OAuth configuration
4
+ */
5
+ import type { MCPIntegration } from "./types.js";
6
+ /**
7
+ * Todoist integration configuration
8
+ *
9
+ * SERVER-SIDE: Automatically reads TODOIST_CLIENT_ID and TODOIST_CLIENT_SECRET from environment.
10
+ * You can override by providing explicit clientId and clientSecret values.
11
+ * CLIENT-SIDE: Omit clientId and clientSecret when using createMCPClient()
12
+ */
13
+ export interface TodoistIntegrationConfig {
14
+ /** Todoist OAuth client ID (defaults to TODOIST_CLIENT_ID env var) */
15
+ clientId?: string;
16
+ /** Todoist OAuth client secret (defaults to TODOIST_CLIENT_SECRET env var) */
17
+ clientSecret?: string;
18
+ /** Additional OAuth scopes (default: ['data:read_write']) */
19
+ scopes?: string[];
20
+ /** OAuth redirect URI */
21
+ redirectUri?: string;
22
+ }
23
+ /**
24
+ * Default Todoist tools that this integration enables
25
+ * These should match the tool names exposed by your MCP server
26
+ */
27
+ declare const TODOIST_TOOLS: readonly ["todoist_list_projects", "todoist_get_project", "todoist_create_project", "todoist_list_tasks", "todoist_get_task", "todoist_create_task", "todoist_complete_task", "todoist_list_labels", "todoist_create_label"];
28
+ export declare function todoistIntegration(config?: TodoistIntegrationConfig): MCPIntegration<"todoist">;
29
+ /**
30
+ * Export tool names for type inference
31
+ */
32
+ export type TodoistTools = typeof TODOIST_TOOLS[number];
33
+ /**
34
+ * Export Todoist client types
35
+ */
36
+ export type { TodoistIntegrationClient } from "./todoist-client.js";
37
+ //# sourceMappingURL=todoist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoist.d.ts","sourceRoot":"","sources":["../../../src/integrations/todoist.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAG9D;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,QAAA,MAAM,aAAa,8NAUT,CAAC;AAGX,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,wBAA6B,GAAG,cAAc,CAAC,SAAS,CAAC,CAyBnG;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAExD;;GAEG;AACH,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Vercel Integration Client Types
3
+ * Fully typed interface for Vercel integration methods
4
+ */
5
+ import type { MCPToolCallResponse } from "../protocol/messages.js";
6
+ /**
7
+ * Vercel Project
8
+ */
9
+ export interface VercelProject {
10
+ id: string;
11
+ name: string;
12
+ accountId: string;
13
+ framework?: string;
14
+ devCommand?: string;
15
+ installCommand?: string;
16
+ buildCommand?: string;
17
+ outputDirectory?: string;
18
+ rootDirectory?: string;
19
+ nodeVersion?: string;
20
+ createdAt: number;
21
+ updatedAt: number;
22
+ latestDeployments?: VercelDeployment[];
23
+ link?: {
24
+ type: string;
25
+ repo: string;
26
+ repoId: number;
27
+ org: string;
28
+ gitCredentialId: string;
29
+ productionBranch: string;
30
+ createdAt: number;
31
+ updatedAt: number;
32
+ };
33
+ }
34
+ /**
35
+ * Vercel Deployment
36
+ */
37
+ export interface VercelDeployment {
38
+ uid: string;
39
+ name: string;
40
+ url: string;
41
+ state: "BUILDING" | "ERROR" | "INITIALIZING" | "QUEUED" | "READY" | "CANCELED";
42
+ type: "LAMBDAS";
43
+ created: number;
44
+ createdAt: number;
45
+ buildingAt?: number;
46
+ ready?: number;
47
+ readyState: string;
48
+ target?: "production" | "staging";
49
+ creator: {
50
+ uid: string;
51
+ email: string;
52
+ username: string;
53
+ };
54
+ meta?: Record<string, string>;
55
+ source?: string;
56
+ inspectorUrl?: string;
57
+ }
58
+ /**
59
+ * Vercel Domain
60
+ */
61
+ export interface VercelDomain {
62
+ name: string;
63
+ apexName: string;
64
+ projectId: string;
65
+ redirect?: string;
66
+ redirectStatusCode?: number;
67
+ gitBranch?: string;
68
+ updatedAt: number;
69
+ createdAt: number;
70
+ verified: boolean;
71
+ verification?: Array<{
72
+ type: string;
73
+ domain: string;
74
+ value: string;
75
+ reason: string;
76
+ }>;
77
+ }
78
+ /**
79
+ * Vercel Environment Variable
80
+ */
81
+ export interface VercelEnvVar {
82
+ id: string;
83
+ key: string;
84
+ value: string;
85
+ type: "system" | "secret" | "encrypted" | "plain";
86
+ target: Array<"production" | "preview" | "development">;
87
+ gitBranch?: string;
88
+ configurationId?: string;
89
+ createdAt: number;
90
+ updatedAt: number;
91
+ }
92
+ /**
93
+ * Vercel Integration Client Interface
94
+ * Provides type-safe methods for all Vercel operations
95
+ */
96
+ export interface VercelIntegrationClient {
97
+ /**
98
+ * List projects in Vercel
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const projects = await client.vercel.listProjects({
103
+ * limit: 20
104
+ * });
105
+ * ```
106
+ */
107
+ listProjects(params?: {
108
+ /** Maximum number of projects to return */
109
+ limit?: number;
110
+ /** Pagination cursor */
111
+ from?: string;
112
+ /** Search query */
113
+ search?: string;
114
+ /** Filter by Git repo */
115
+ repo?: string;
116
+ /** Filter by Git repo ID */
117
+ repoId?: string;
118
+ }): Promise<MCPToolCallResponse>;
119
+ /**
120
+ * Get a specific project
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * const project = await client.vercel.getProject({
125
+ * projectId: "prj_xxxxx"
126
+ * });
127
+ * ```
128
+ */
129
+ getProject(params: {
130
+ /** Project ID or name */
131
+ projectId: string;
132
+ }): Promise<MCPToolCallResponse>;
133
+ /**
134
+ * List deployments
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * const deployments = await client.vercel.listDeployments({
139
+ * projectId: "prj_xxxxx",
140
+ * limit: 10
141
+ * });
142
+ * ```
143
+ */
144
+ listDeployments(params?: {
145
+ /** Project ID to filter by */
146
+ projectId?: string;
147
+ /** Team ID to filter by */
148
+ teamId?: string;
149
+ /** Filter by state */
150
+ state?: "BUILDING" | "ERROR" | "INITIALIZING" | "QUEUED" | "READY" | "CANCELED";
151
+ /** Filter by target environment */
152
+ target?: "production" | "staging";
153
+ /** Maximum number of deployments to return */
154
+ limit?: number;
155
+ /** Pagination cursor */
156
+ from?: string;
157
+ /** Return deployments created after this timestamp */
158
+ since?: number;
159
+ /** Return deployments created before this timestamp */
160
+ until?: number;
161
+ }): Promise<MCPToolCallResponse>;
162
+ /**
163
+ * Get a specific deployment
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * const deployment = await client.vercel.getDeployment({
168
+ * deploymentId: "dpl_xxxxx"
169
+ * });
170
+ * ```
171
+ */
172
+ getDeployment(params: {
173
+ /** Deployment ID or URL */
174
+ deploymentId: string;
175
+ }): Promise<MCPToolCallResponse>;
176
+ /**
177
+ * Create a new deployment
178
+ *
179
+ * @example
180
+ * ```typescript
181
+ * const deployment = await client.vercel.createDeployment({
182
+ * name: "my-project",
183
+ * target: "production"
184
+ * });
185
+ * ```
186
+ */
187
+ createDeployment(params: {
188
+ /** Project name */
189
+ name: string;
190
+ /** Target environment */
191
+ target?: "production" | "staging";
192
+ /** Git source information */
193
+ gitSource?: {
194
+ type: "github" | "gitlab" | "bitbucket";
195
+ ref: string;
196
+ repoId: string | number;
197
+ };
198
+ /** Deployment meta */
199
+ meta?: Record<string, string>;
200
+ /** Force new deployment even if nothing changed */
201
+ forceNew?: boolean;
202
+ }): Promise<MCPToolCallResponse>;
203
+ /**
204
+ * Cancel a deployment
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * await client.vercel.cancelDeployment({
209
+ * deploymentId: "dpl_xxxxx"
210
+ * });
211
+ * ```
212
+ */
213
+ cancelDeployment(params: {
214
+ /** Deployment ID to cancel */
215
+ deploymentId: string;
216
+ }): Promise<MCPToolCallResponse>;
217
+ /**
218
+ * List domains for a project
219
+ *
220
+ * @example
221
+ * ```typescript
222
+ * const domains = await client.vercel.listDomains({
223
+ * projectId: "prj_xxxxx"
224
+ * });
225
+ * ```
226
+ */
227
+ listDomains(params?: {
228
+ /** Project ID to filter by */
229
+ projectId?: string;
230
+ /** Maximum number of domains to return */
231
+ limit?: number;
232
+ /** Pagination cursor */
233
+ since?: number;
234
+ /** Return domains created before this timestamp */
235
+ until?: number;
236
+ }): Promise<MCPToolCallResponse>;
237
+ /**
238
+ * List environment variables for a project
239
+ *
240
+ * @example
241
+ * ```typescript
242
+ * const envVars = await client.vercel.listEnvVars({
243
+ * projectId: "prj_xxxxx"
244
+ * });
245
+ * ```
246
+ */
247
+ listEnvVars(params: {
248
+ /** Project ID */
249
+ projectId: string;
250
+ /** Filter by target environment */
251
+ target?: "production" | "preview" | "development";
252
+ /** Filter by git branch */
253
+ gitBranch?: string;
254
+ }): Promise<MCPToolCallResponse>;
255
+ /**
256
+ * Get deployment logs
257
+ *
258
+ * @example
259
+ * ```typescript
260
+ * const logs = await client.vercel.getDeploymentLogs({
261
+ * deploymentId: "dpl_xxxxx"
262
+ * });
263
+ * ```
264
+ */
265
+ getDeploymentLogs(params: {
266
+ /** Deployment ID */
267
+ deploymentId: string;
268
+ /** Filter by log type */
269
+ type?: "build" | "runtime";
270
+ /** Return logs after this timestamp */
271
+ since?: number;
272
+ /** Return logs before this timestamp */
273
+ until?: number;
274
+ /** Maximum number of log lines */
275
+ limit?: number;
276
+ }): Promise<MCPToolCallResponse>;
277
+ }
278
+ //# sourceMappingURL=vercel-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/vercel-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Vercel Integration
3
+ * Enables Vercel tools with OAuth configuration
4
+ */
5
+ import type { MCPIntegration } from "./types.js";
6
+ /**
7
+ * Vercel integration configuration
8
+ *
9
+ * SERVER-SIDE: Automatically reads VERCEL_CLIENT_ID and VERCEL_CLIENT_SECRET from environment.
10
+ * You can override by providing explicit clientId and clientSecret values.
11
+ * CLIENT-SIDE: Omit clientId and clientSecret when using createMCPClient()
12
+ */
13
+ export interface VercelIntegrationConfig {
14
+ /** Vercel OAuth client ID (defaults to VERCEL_CLIENT_ID env var) */
15
+ clientId?: string;
16
+ /** Vercel OAuth client secret (defaults to VERCEL_CLIENT_SECRET env var) */
17
+ clientSecret?: string;
18
+ /** Additional OAuth scopes */
19
+ scopes?: string[];
20
+ /** OAuth redirect URI */
21
+ redirectUri?: string;
22
+ }
23
+ /**
24
+ * Default Vercel tools that this integration enables
25
+ * These should match the tool names exposed by your MCP server
26
+ */
27
+ declare const VERCEL_TOOLS: readonly ["vercel_list_projects", "vercel_get_project", "vercel_list_deployments", "vercel_get_deployment", "vercel_create_deployment", "vercel_cancel_deployment", "vercel_list_domains", "vercel_list_env_vars", "vercel_get_deployment_logs"];
28
+ export declare function vercelIntegration(config?: VercelIntegrationConfig): MCPIntegration<"vercel">;
29
+ /**
30
+ * Export tool names for type inference
31
+ */
32
+ export type VercelTools = typeof VERCEL_TOOLS[number];
33
+ /**
34
+ * Export Vercel client types
35
+ */
36
+ export type { VercelIntegrationClient } from "./vercel-client.js";
37
+ //# sourceMappingURL=vercel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/integrations/vercel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAG9D;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,QAAA,MAAM,YAAY,kPAUR,CAAC;AAGX,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,uBAA4B,GAAG,cAAc,CAAC,QAAQ,CAAC,CAyBhG;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAEtD;;GAEG;AACH,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}