@jezweb/mcp-integrations 0.1.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 +78 -0
- package/dist/google/calendar/index.d.ts +29 -0
- package/dist/google/calendar/index.d.ts.map +1 -0
- package/dist/google/calendar/index.js +33 -0
- package/dist/google/calendar/index.js.map +1 -0
- package/dist/google/calendar/prompts.d.ts +65 -0
- package/dist/google/calendar/prompts.d.ts.map +1 -0
- package/dist/google/calendar/prompts.js +88 -0
- package/dist/google/calendar/prompts.js.map +1 -0
- package/dist/google/calendar/resources.d.ts +9 -0
- package/dist/google/calendar/resources.d.ts.map +1 -0
- package/dist/google/calendar/resources.js +56 -0
- package/dist/google/calendar/resources.js.map +1 -0
- package/dist/google/calendar/tools/calendars.d.ts +36 -0
- package/dist/google/calendar/tools/calendars.d.ts.map +1 -0
- package/dist/google/calendar/tools/calendars.js +77 -0
- package/dist/google/calendar/tools/calendars.js.map +1 -0
- package/dist/google/calendar/tools/events.d.ts +118 -0
- package/dist/google/calendar/tools/events.d.ts.map +1 -0
- package/dist/google/calendar/tools/events.js +281 -0
- package/dist/google/calendar/tools/events.js.map +1 -0
- package/dist/google/calendar/tools/index.d.ts +280 -0
- package/dist/google/calendar/tools/index.d.ts.map +1 -0
- package/dist/google/calendar/tools/index.js +24 -0
- package/dist/google/calendar/tools/index.js.map +1 -0
- package/dist/google/index.d.ts +13 -0
- package/dist/google/index.d.ts.map +1 -0
- package/dist/google/index.js +13 -0
- package/dist/google/index.js.map +1 -0
- package/dist/helpers.d.ts +84 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +111 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +179 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper functions for defining tools, resources, and prompts
|
|
3
|
+
*/
|
|
4
|
+
import type { z } from 'zod';
|
|
5
|
+
import type { ToolDefinition, ResourceDefinition, PromptDefinition, ToolResult } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Define a tool with proper typing and defaults
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* export const listEvents = defineTool({
|
|
12
|
+
* name: 'google_calendar_list_events',
|
|
13
|
+
* description: 'List upcoming calendar events',
|
|
14
|
+
* category: 'calendar',
|
|
15
|
+
* tags: ['google', 'calendar', 'events', 'read'],
|
|
16
|
+
* alwaysVisible: true,
|
|
17
|
+
* parameters: z.object({
|
|
18
|
+
* maxResults: z.number().default(10),
|
|
19
|
+
* }),
|
|
20
|
+
* handler: async (params, ctx) => {
|
|
21
|
+
* // Implementation
|
|
22
|
+
* },
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function defineTool<T extends z.ZodType>(def: ToolDefinition<T>): ToolDefinition<T>;
|
|
27
|
+
/**
|
|
28
|
+
* Define a resource with proper typing
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* export const calendarInfo = defineResource({
|
|
33
|
+
* name: 'calendar_info',
|
|
34
|
+
* uri: 'mcp://my-server/calendar/info',
|
|
35
|
+
* metadata: {
|
|
36
|
+
* description: 'Current calendar information',
|
|
37
|
+
* mimeType: 'application/json',
|
|
38
|
+
* },
|
|
39
|
+
* category: 'calendar',
|
|
40
|
+
* tags: ['google', 'calendar', 'info'],
|
|
41
|
+
* handler: async (uri, ctx) => {
|
|
42
|
+
* // Implementation
|
|
43
|
+
* },
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function defineResource(def: ResourceDefinition): ResourceDefinition;
|
|
48
|
+
/**
|
|
49
|
+
* Define a prompt with proper typing
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* export const scheduleAssistant = definePrompt({
|
|
54
|
+
* name: 'schedule_assistant',
|
|
55
|
+
* description: 'Help schedule a meeting',
|
|
56
|
+
* category: 'calendar',
|
|
57
|
+
* tags: ['google', 'calendar', 'scheduling'],
|
|
58
|
+
* arguments: z.object({
|
|
59
|
+
* topic: z.string().describe('Meeting topic'),
|
|
60
|
+
* }),
|
|
61
|
+
* handler: async (args, ctx) => {
|
|
62
|
+
* // Implementation
|
|
63
|
+
* },
|
|
64
|
+
* });
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export declare function definePrompt<T extends z.ZodType>(def: PromptDefinition<T>): PromptDefinition<T>;
|
|
68
|
+
/**
|
|
69
|
+
* Create a success result
|
|
70
|
+
*/
|
|
71
|
+
export declare function successResult(text: string): ToolResult;
|
|
72
|
+
/**
|
|
73
|
+
* Create a JSON success result
|
|
74
|
+
*/
|
|
75
|
+
export declare function jsonResult(data: unknown): ToolResult;
|
|
76
|
+
/**
|
|
77
|
+
* Create an error result
|
|
78
|
+
*/
|
|
79
|
+
export declare function errorResult(message: string): ToolResult;
|
|
80
|
+
/**
|
|
81
|
+
* Wrap a handler with error handling
|
|
82
|
+
*/
|
|
83
|
+
export declare function withErrorHandling<T>(handler: (params: T, ctx: unknown) => Promise<ToolResult>): (params: T, ctx: unknown) => Promise<ToolResult>;
|
|
84
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACX,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAC5C,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,GACrB,cAAc,CAAC,CAAC,CAAC,CAKnB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,kBAAkB,GAAG,kBAAkB,CAE1E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAC9C,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC,GACvB,gBAAgB,CAAC,CAAC,CAAC,CAErB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAItD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAIpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAKvD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,GACxD,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,CASlD"}
|
package/dist/helpers.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Define a tool with proper typing and defaults
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* export const listEvents = defineTool({
|
|
7
|
+
* name: 'google_calendar_list_events',
|
|
8
|
+
* description: 'List upcoming calendar events',
|
|
9
|
+
* category: 'calendar',
|
|
10
|
+
* tags: ['google', 'calendar', 'events', 'read'],
|
|
11
|
+
* alwaysVisible: true,
|
|
12
|
+
* parameters: z.object({
|
|
13
|
+
* maxResults: z.number().default(10),
|
|
14
|
+
* }),
|
|
15
|
+
* handler: async (params, ctx) => {
|
|
16
|
+
* // Implementation
|
|
17
|
+
* },
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export function defineTool(def) {
|
|
22
|
+
return {
|
|
23
|
+
alwaysVisible: false,
|
|
24
|
+
...def,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Define a resource with proper typing
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* export const calendarInfo = defineResource({
|
|
33
|
+
* name: 'calendar_info',
|
|
34
|
+
* uri: 'mcp://my-server/calendar/info',
|
|
35
|
+
* metadata: {
|
|
36
|
+
* description: 'Current calendar information',
|
|
37
|
+
* mimeType: 'application/json',
|
|
38
|
+
* },
|
|
39
|
+
* category: 'calendar',
|
|
40
|
+
* tags: ['google', 'calendar', 'info'],
|
|
41
|
+
* handler: async (uri, ctx) => {
|
|
42
|
+
* // Implementation
|
|
43
|
+
* },
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export function defineResource(def) {
|
|
48
|
+
return def;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Define a prompt with proper typing
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* export const scheduleAssistant = definePrompt({
|
|
56
|
+
* name: 'schedule_assistant',
|
|
57
|
+
* description: 'Help schedule a meeting',
|
|
58
|
+
* category: 'calendar',
|
|
59
|
+
* tags: ['google', 'calendar', 'scheduling'],
|
|
60
|
+
* arguments: z.object({
|
|
61
|
+
* topic: z.string().describe('Meeting topic'),
|
|
62
|
+
* }),
|
|
63
|
+
* handler: async (args, ctx) => {
|
|
64
|
+
* // Implementation
|
|
65
|
+
* },
|
|
66
|
+
* });
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export function definePrompt(def) {
|
|
70
|
+
return def;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Create a success result
|
|
74
|
+
*/
|
|
75
|
+
export function successResult(text) {
|
|
76
|
+
return {
|
|
77
|
+
content: [{ type: 'text', text }],
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Create a JSON success result
|
|
82
|
+
*/
|
|
83
|
+
export function jsonResult(data) {
|
|
84
|
+
return {
|
|
85
|
+
content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Create an error result
|
|
90
|
+
*/
|
|
91
|
+
export function errorResult(message) {
|
|
92
|
+
return {
|
|
93
|
+
content: [{ type: 'text', text: `Error: ${message}` }],
|
|
94
|
+
isError: true,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Wrap a handler with error handling
|
|
99
|
+
*/
|
|
100
|
+
export function withErrorHandling(handler) {
|
|
101
|
+
return async (params, ctx) => {
|
|
102
|
+
try {
|
|
103
|
+
return await handler(params, ctx);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
107
|
+
return errorResult(message);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,UAAU,CACxB,GAAsB;IAEtB,OAAO;QACL,aAAa,EAAE,KAAK;QACpB,GAAG,GAAG;KACP,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAAC,GAAuB;IACpD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAwB;IAExB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAClC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;QACtD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAyD;IAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YACzE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jezweb/mcp-integrations
|
|
3
|
+
*
|
|
4
|
+
* Reusable MCP tools, resources, and prompts for backend service integrations.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { calendarTools } from '@jezweb/mcp-integrations/google/calendar';
|
|
9
|
+
* import { gmailTools } from '@jezweb/mcp-integrations/google/gmail';
|
|
10
|
+
*
|
|
11
|
+
* // Register tools
|
|
12
|
+
* calendarTools.all.forEach(tool => {
|
|
13
|
+
* this.server.tool(tool.name, tool.description, tool.parameters,
|
|
14
|
+
* (params) => tool.handler(params, ctx)
|
|
15
|
+
* );
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export type { ToolContext, ToolResult, ToolDefinition, ResourceDefinition, PromptDefinition, IntegrationMeta, } from './types';
|
|
20
|
+
export { defineTool, defineResource, definePrompt, successResult, jsonResult, errorResult, withErrorHandling, } from './helpers';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,YAAY,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,iBAAiB,GAClB,MAAM,WAAW,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jezweb/mcp-integrations
|
|
3
|
+
*
|
|
4
|
+
* Reusable MCP tools, resources, and prompts for backend service integrations.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { calendarTools } from '@jezweb/mcp-integrations/google/calendar';
|
|
9
|
+
* import { gmailTools } from '@jezweb/mcp-integrations/google/gmail';
|
|
10
|
+
*
|
|
11
|
+
* // Register tools
|
|
12
|
+
* calendarTools.all.forEach(tool => {
|
|
13
|
+
* this.server.tool(tool.name, tool.description, tool.parameters,
|
|
14
|
+
* (params) => tool.handler(params, ctx)
|
|
15
|
+
* );
|
|
16
|
+
* });
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
// Helper functions
|
|
20
|
+
export { defineTool, defineResource, definePrompt, successResult, jsonResult, errorResult, withErrorHandling, } from './helpers';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH,mBAAmB;AACnB,OAAO,EACL,UAAU,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,iBAAiB,GAClB,MAAM,WAAW,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core types for MCP integrations
|
|
3
|
+
*/
|
|
4
|
+
import type { z } from 'zod';
|
|
5
|
+
/**
|
|
6
|
+
* Context provided to tool handlers
|
|
7
|
+
*/
|
|
8
|
+
export interface ToolContext {
|
|
9
|
+
/**
|
|
10
|
+
* Make an authorized API request with automatic token refresh
|
|
11
|
+
*/
|
|
12
|
+
authorizedFetch: (url: string, init?: RequestInit) => Promise<Response>;
|
|
13
|
+
/**
|
|
14
|
+
* Current user's ID (from OAuth)
|
|
15
|
+
*/
|
|
16
|
+
userId?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Current user's email (from OAuth)
|
|
19
|
+
*/
|
|
20
|
+
userEmail?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Result returned from tool handlers
|
|
24
|
+
*/
|
|
25
|
+
export interface ToolResult {
|
|
26
|
+
content: Array<{
|
|
27
|
+
type: 'text';
|
|
28
|
+
text: string;
|
|
29
|
+
}>;
|
|
30
|
+
isError?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Tool definition with Tool Search metadata
|
|
34
|
+
*/
|
|
35
|
+
export interface ToolDefinition<T extends z.ZodType = z.ZodType> {
|
|
36
|
+
/**
|
|
37
|
+
* Unique tool name (snake_case recommended)
|
|
38
|
+
*/
|
|
39
|
+
name: string;
|
|
40
|
+
/**
|
|
41
|
+
* Description shown to Claude - be descriptive!
|
|
42
|
+
*/
|
|
43
|
+
description: string;
|
|
44
|
+
/**
|
|
45
|
+
* Zod schema for parameters
|
|
46
|
+
*/
|
|
47
|
+
parameters: T;
|
|
48
|
+
/**
|
|
49
|
+
* Handler function
|
|
50
|
+
*/
|
|
51
|
+
handler: (params: z.infer<T>, ctx: ToolContext) => Promise<ToolResult>;
|
|
52
|
+
/**
|
|
53
|
+
* Category for Tool Search (e.g., 'calendar', 'email', 'files')
|
|
54
|
+
*/
|
|
55
|
+
category: string;
|
|
56
|
+
/**
|
|
57
|
+
* Tags for Tool Search (e.g., ['google', 'calendar', 'events', 'read'])
|
|
58
|
+
*/
|
|
59
|
+
tags: string[];
|
|
60
|
+
/**
|
|
61
|
+
* If true, tool is always sent to Claude.
|
|
62
|
+
* If false, tool only appears after search_tools finds it.
|
|
63
|
+
* Default: false
|
|
64
|
+
*/
|
|
65
|
+
alwaysVisible?: boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Resource definition
|
|
69
|
+
*/
|
|
70
|
+
export interface ResourceDefinition {
|
|
71
|
+
/**
|
|
72
|
+
* Unique resource name
|
|
73
|
+
*/
|
|
74
|
+
name: string;
|
|
75
|
+
/**
|
|
76
|
+
* URI for the resource (e.g., 'mcp://server/resource-path')
|
|
77
|
+
*/
|
|
78
|
+
uri: string;
|
|
79
|
+
/**
|
|
80
|
+
* Resource metadata
|
|
81
|
+
*/
|
|
82
|
+
metadata: {
|
|
83
|
+
description: string;
|
|
84
|
+
mimeType: string;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Handler function
|
|
88
|
+
*/
|
|
89
|
+
handler: (uri: URL, ctx: ToolContext) => Promise<{
|
|
90
|
+
contents: Array<{
|
|
91
|
+
uri: string;
|
|
92
|
+
mimeType: string;
|
|
93
|
+
text: string;
|
|
94
|
+
}>;
|
|
95
|
+
}>;
|
|
96
|
+
/**
|
|
97
|
+
* Category for organization
|
|
98
|
+
*/
|
|
99
|
+
category: string;
|
|
100
|
+
/**
|
|
101
|
+
* Tags for searchability
|
|
102
|
+
*/
|
|
103
|
+
tags: string[];
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Prompt definition
|
|
107
|
+
*/
|
|
108
|
+
export interface PromptDefinition<T extends z.ZodType = z.ZodType> {
|
|
109
|
+
/**
|
|
110
|
+
* Unique prompt name
|
|
111
|
+
*/
|
|
112
|
+
name: string;
|
|
113
|
+
/**
|
|
114
|
+
* Description shown in prompt list
|
|
115
|
+
*/
|
|
116
|
+
description: string;
|
|
117
|
+
/**
|
|
118
|
+
* Zod schema for arguments
|
|
119
|
+
*/
|
|
120
|
+
arguments: T;
|
|
121
|
+
/**
|
|
122
|
+
* Handler function
|
|
123
|
+
*/
|
|
124
|
+
handler: (args: z.infer<T>, ctx: ToolContext) => Promise<{
|
|
125
|
+
messages: Array<{
|
|
126
|
+
role: 'user' | 'assistant';
|
|
127
|
+
content: {
|
|
128
|
+
type: 'text';
|
|
129
|
+
text: string;
|
|
130
|
+
};
|
|
131
|
+
}>;
|
|
132
|
+
}>;
|
|
133
|
+
/**
|
|
134
|
+
* Category for organization
|
|
135
|
+
*/
|
|
136
|
+
category: string;
|
|
137
|
+
/**
|
|
138
|
+
* Tags for searchability
|
|
139
|
+
*/
|
|
140
|
+
tags: string[];
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Integration metadata
|
|
144
|
+
*/
|
|
145
|
+
export interface IntegrationMeta {
|
|
146
|
+
/**
|
|
147
|
+
* Integration name (e.g., 'google-calendar')
|
|
148
|
+
*/
|
|
149
|
+
name: string;
|
|
150
|
+
/**
|
|
151
|
+
* Display name (e.g., 'Google Calendar')
|
|
152
|
+
*/
|
|
153
|
+
displayName: string;
|
|
154
|
+
/**
|
|
155
|
+
* Category (e.g., 'calendar', 'email')
|
|
156
|
+
*/
|
|
157
|
+
category: string;
|
|
158
|
+
/**
|
|
159
|
+
* OAuth provider (e.g., 'google', 'xero')
|
|
160
|
+
*/
|
|
161
|
+
provider: string;
|
|
162
|
+
/**
|
|
163
|
+
* Required OAuth scopes
|
|
164
|
+
*/
|
|
165
|
+
scopes: string[];
|
|
166
|
+
/**
|
|
167
|
+
* Total tool count
|
|
168
|
+
*/
|
|
169
|
+
toolCount: number;
|
|
170
|
+
/**
|
|
171
|
+
* Total resource count
|
|
172
|
+
*/
|
|
173
|
+
resourceCount: number;
|
|
174
|
+
/**
|
|
175
|
+
* Total prompt count
|
|
176
|
+
*/
|
|
177
|
+
promptCount: number;
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jezweb/mcp-integrations",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "Reusable MCP tools, resources, and prompts for backend service integrations",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./google": {
|
|
14
|
+
"types": "./dist/google/index.d.ts",
|
|
15
|
+
"import": "./dist/google/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./google/calendar": {
|
|
18
|
+
"types": "./dist/google/calendar/index.d.ts",
|
|
19
|
+
"import": "./dist/google/calendar/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./google/gmail": {
|
|
22
|
+
"types": "./dist/google/gmail/index.d.ts",
|
|
23
|
+
"import": "./dist/google/gmail/index.js"
|
|
24
|
+
},
|
|
25
|
+
"./google/sheets": {
|
|
26
|
+
"types": "./dist/google/sheets/index.d.ts",
|
|
27
|
+
"import": "./dist/google/sheets/index.js"
|
|
28
|
+
},
|
|
29
|
+
"./google/drive": {
|
|
30
|
+
"types": "./dist/google/drive/index.d.ts",
|
|
31
|
+
"import": "./dist/google/drive/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./xero": {
|
|
34
|
+
"types": "./dist/xero/index.d.ts",
|
|
35
|
+
"import": "./dist/xero/index.js"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"dist",
|
|
40
|
+
"README.md"
|
|
41
|
+
],
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsc",
|
|
44
|
+
"dev": "tsc --watch",
|
|
45
|
+
"prepublishOnly": "npm run build"
|
|
46
|
+
},
|
|
47
|
+
"keywords": [
|
|
48
|
+
"mcp",
|
|
49
|
+
"model-context-protocol",
|
|
50
|
+
"tools",
|
|
51
|
+
"google",
|
|
52
|
+
"calendar",
|
|
53
|
+
"gmail",
|
|
54
|
+
"xero",
|
|
55
|
+
"integrations"
|
|
56
|
+
],
|
|
57
|
+
"author": "Jezweb <jeremy@jezweb.net>",
|
|
58
|
+
"license": "MIT",
|
|
59
|
+
"repository": {
|
|
60
|
+
"type": "git",
|
|
61
|
+
"url": "git+https://github.com/jezweb/mcp-integrations.git"
|
|
62
|
+
},
|
|
63
|
+
"peerDependencies": {
|
|
64
|
+
"zod": "^3.0.0"
|
|
65
|
+
},
|
|
66
|
+
"devDependencies": {
|
|
67
|
+
"typescript": "^5.7.3",
|
|
68
|
+
"zod": "^3.24.1"
|
|
69
|
+
}
|
|
70
|
+
}
|