@attrove/mcp 0.1.6 → 0.1.8

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 (47) hide show
  1. package/README.md +101 -3
  2. package/cjs/index.js +6 -1
  3. package/cjs/server.js +115 -56
  4. package/cjs/tools/events.js +134 -0
  5. package/cjs/tools/index.js +9 -1
  6. package/cjs/tools/integrations.js +11 -4
  7. package/cjs/tools/meetings.js +149 -0
  8. package/cjs/tools/query.js +12 -5
  9. package/cjs/tools/search.js +21 -7
  10. package/cjs/transport/http.js +192 -0
  11. package/esm/index.d.ts +3 -1
  12. package/esm/index.d.ts.map +1 -1
  13. package/esm/index.js +3 -1
  14. package/esm/index.js.map +1 -1
  15. package/esm/server.d.ts +7 -5
  16. package/esm/server.d.ts.map +1 -1
  17. package/esm/server.js +116 -57
  18. package/esm/server.js.map +1 -1
  19. package/esm/tools/events.d.ts +24 -0
  20. package/esm/tools/events.d.ts.map +1 -0
  21. package/esm/tools/events.js +131 -0
  22. package/esm/tools/events.js.map +1 -0
  23. package/esm/tools/index.d.ts +6 -69
  24. package/esm/tools/index.d.ts.map +1 -1
  25. package/esm/tools/index.js +5 -2
  26. package/esm/tools/index.js.map +1 -1
  27. package/esm/tools/integrations.d.ts +3 -10
  28. package/esm/tools/integrations.d.ts.map +1 -1
  29. package/esm/tools/integrations.js +11 -4
  30. package/esm/tools/integrations.js.map +1 -1
  31. package/esm/tools/meetings.d.ts +26 -0
  32. package/esm/tools/meetings.d.ts.map +1 -0
  33. package/esm/tools/meetings.js +146 -0
  34. package/esm/tools/meetings.js.map +1 -0
  35. package/esm/tools/query.d.ts +3 -27
  36. package/esm/tools/query.d.ts.map +1 -1
  37. package/esm/tools/query.js +12 -5
  38. package/esm/tools/query.js.map +1 -1
  39. package/esm/tools/search.d.ts +3 -35
  40. package/esm/tools/search.d.ts.map +1 -1
  41. package/esm/tools/search.js +21 -7
  42. package/esm/tools/search.js.map +1 -1
  43. package/esm/transport/http.d.ts +63 -0
  44. package/esm/transport/http.d.ts.map +1 -0
  45. package/esm/transport/http.js +189 -0
  46. package/esm/transport/http.js.map +1 -0
  47. package/package.json +2 -2
package/esm/server.js CHANGED
@@ -8,7 +8,7 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
8
8
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
9
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
10
10
  import { Attrove, isAttroveError, ValidationError, ErrorCodes, } from "@attrove/sdk";
11
- import { allToolDefinitions, executeQueryTool, executeSearchTool, executeIntegrationsTool, } from "./tools/index.js";
11
+ import { allToolDefinitions, executeQueryTool, executeSearchTool, executeIntegrationsTool, executeEventsTool, executeMeetingsTool, } from "./tools/index.js";
12
12
  import { getVersion } from "./version.js";
13
13
  /**
14
14
  * Validate that a value is an array of strings.
@@ -41,12 +41,13 @@ function validateQueryInput(args) {
41
41
  if (typeof input.query !== "string" || input.query.trim() === "") {
42
42
  throw new ValidationError('Missing required parameter "query". Please provide a question to ask.', ErrorCodes.VALIDATION_REQUIRED_FIELD, { field: "query" });
43
43
  }
44
+ if (input.include_sources !== undefined && typeof input.include_sources !== "boolean") {
45
+ throw new ValidationError(`include_sources must be a boolean, received ${typeof input.include_sources}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "include_sources", received: typeof input.include_sources });
46
+ }
44
47
  return {
45
48
  query: input.query,
46
49
  integration_ids: validateStringArray(input.integration_ids, "integration_ids"),
47
- include_sources: typeof input.include_sources === "boolean"
48
- ? input.include_sources
49
- : undefined,
50
+ include_sources: input.include_sources,
50
51
  };
51
52
  }
52
53
  /**
@@ -62,14 +63,79 @@ function validateSearchInput(args) {
62
63
  if (typeof input.query !== "string" || input.query.trim() === "") {
63
64
  throw new ValidationError('Missing required parameter "query". Please provide a search query.', ErrorCodes.VALIDATION_REQUIRED_FIELD, { field: "query" });
64
65
  }
66
+ if (input.after_date !== undefined && typeof input.after_date !== "string") {
67
+ throw new ValidationError(`after_date must be a string (ISO 8601), received ${typeof input.after_date}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "after_date", received: typeof input.after_date });
68
+ }
69
+ if (input.before_date !== undefined && typeof input.before_date !== "string") {
70
+ throw new ValidationError(`before_date must be a string (ISO 8601), received ${typeof input.before_date}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "before_date", received: typeof input.before_date });
71
+ }
72
+ if (input.include_body_text !== undefined && typeof input.include_body_text !== "boolean") {
73
+ throw new ValidationError(`include_body_text must be a boolean, received ${typeof input.include_body_text}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "include_body_text", received: typeof input.include_body_text });
74
+ }
65
75
  return {
66
76
  query: input.query,
67
- after_date: typeof input.after_date === "string" ? input.after_date : undefined,
68
- before_date: typeof input.before_date === "string" ? input.before_date : undefined,
77
+ after_date: input.after_date,
78
+ before_date: input.before_date,
69
79
  sender_domains: validateStringArray(input.sender_domains, "sender_domains"),
70
- include_body_text: typeof input.include_body_text === "boolean"
71
- ? input.include_body_text
72
- : undefined,
80
+ include_body_text: input.include_body_text,
81
+ };
82
+ }
83
+ /**
84
+ * Validate input for the events tool.
85
+ * All parameters are optional, so validation is light type checking.
86
+ */
87
+ function validateEventsInput(args) {
88
+ if (args !== undefined && args !== null && typeof args !== "object") {
89
+ throw new ValidationError("Invalid arguments. Expected an object or empty.", ErrorCodes.VALIDATION_INVALID_FORMAT, { expected: "object", received: typeof args });
90
+ }
91
+ const input = (args ?? {});
92
+ if (input.start_date !== undefined && typeof input.start_date !== "string") {
93
+ throw new ValidationError(`start_date must be a string (ISO 8601), received ${typeof input.start_date}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "start_date", received: typeof input.start_date });
94
+ }
95
+ if (input.end_date !== undefined && typeof input.end_date !== "string") {
96
+ throw new ValidationError(`end_date must be a string (ISO 8601), received ${typeof input.end_date}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "end_date", received: typeof input.end_date });
97
+ }
98
+ if (input.limit !== undefined && typeof input.limit !== "number") {
99
+ throw new ValidationError(`limit must be a number, received ${typeof input.limit}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "limit", received: typeof input.limit });
100
+ }
101
+ return {
102
+ start_date: input.start_date,
103
+ end_date: input.end_date,
104
+ limit: input.limit,
105
+ };
106
+ }
107
+ /**
108
+ * Validate input for the meetings tool.
109
+ * All parameters are optional, so validation is light type checking.
110
+ */
111
+ function validateMeetingsInput(args) {
112
+ if (args !== undefined && args !== null && typeof args !== "object") {
113
+ throw new ValidationError("Invalid arguments. Expected an object or empty.", ErrorCodes.VALIDATION_INVALID_FORMAT, { expected: "object", received: typeof args });
114
+ }
115
+ const input = (args ?? {});
116
+ const validProviders = ["google_meet", "zoom", "teams"];
117
+ let provider;
118
+ if (input.provider !== undefined && input.provider !== null) {
119
+ if (typeof input.provider !== "string" ||
120
+ !validProviders.includes(input.provider)) {
121
+ throw new ValidationError(`Invalid provider "${String(input.provider)}". Must be one of: ${validProviders.join(", ")}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "provider", received: input.provider, valid: validProviders });
122
+ }
123
+ provider = input.provider;
124
+ }
125
+ if (input.start_date !== undefined && typeof input.start_date !== "string") {
126
+ throw new ValidationError(`start_date must be a string (ISO 8601), received ${typeof input.start_date}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "start_date", received: typeof input.start_date });
127
+ }
128
+ if (input.end_date !== undefined && typeof input.end_date !== "string") {
129
+ throw new ValidationError(`end_date must be a string (ISO 8601), received ${typeof input.end_date}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "end_date", received: typeof input.end_date });
130
+ }
131
+ if (input.limit !== undefined && typeof input.limit !== "number") {
132
+ throw new ValidationError(`limit must be a number, received ${typeof input.limit}`, ErrorCodes.VALIDATION_INVALID_FORMAT, { field: "limit", received: typeof input.limit });
133
+ }
134
+ return {
135
+ start_date: input.start_date,
136
+ end_date: input.end_date,
137
+ provider,
138
+ limit: input.limit,
73
139
  };
74
140
  }
75
141
  /**
@@ -118,7 +184,7 @@ function formatErrorResponse(error) {
118
184
  };
119
185
  }
120
186
  /**
121
- * Create and configure the Attrove MCP server.
187
+ * Wire up tool definitions and dispatch logic for the Attrove MCP server.
122
188
  */
123
189
  export function createServer(config) {
124
190
  const server = new Server({
@@ -129,92 +195,82 @@ export function createServer(config) {
129
195
  tools: {},
130
196
  },
131
197
  });
132
- // Create Attrove client
133
- // Type assertion is safe because startServer validates the apiKey prefix
134
198
  const client = new Attrove({
135
199
  apiKey: config.apiKey,
136
200
  userId: config.userId,
137
201
  baseUrl: config.baseUrl,
138
202
  });
139
- // Register tool list handler
140
203
  server.setRequestHandler(ListToolsRequestSchema, async () => {
141
204
  return {
142
205
  tools: allToolDefinitions.map((tool) => ({
143
206
  name: tool.name,
144
207
  description: tool.description,
145
208
  inputSchema: tool.inputSchema,
209
+ annotations: tool.annotations,
146
210
  })),
147
211
  };
148
212
  });
149
- // Register tool call handler
150
213
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
151
214
  const { name, arguments: args } = request.params;
152
- // Validate input outside try-catch so validation errors propagate clearly
153
- // and programming bugs in validation don't get caught as API errors
154
- let validatedInput;
155
- switch (name) {
156
- case "attrove_query":
157
- validatedInput = validateQueryInput(args);
158
- break;
159
- case "attrove_search":
160
- validatedInput = validateSearchInput(args);
161
- break;
162
- case "attrove_integrations":
163
- // No input validation needed
164
- break;
165
- default:
166
- return {
167
- content: [
168
- {
169
- type: "text",
170
- text: `Unknown tool: ${name}. Available tools: attrove_query, attrove_search, attrove_integrations`,
171
- },
172
- ],
173
- isError: true,
174
- };
175
- }
176
- // Execute tool with narrowed try-catch for API/network errors only
177
215
  try {
178
216
  let result;
179
217
  switch (name) {
180
218
  case "attrove_query":
181
- result = await executeQueryTool(client, validatedInput);
219
+ result = await executeQueryTool(client, validateQueryInput(args));
182
220
  break;
183
221
  case "attrove_search":
184
- result = await executeSearchTool(client, validatedInput);
222
+ result = await executeSearchTool(client, validateSearchInput(args));
185
223
  break;
186
224
  case "attrove_integrations":
187
225
  result = await executeIntegrationsTool(client);
188
226
  break;
227
+ case "attrove_events":
228
+ result = await executeEventsTool(client, validateEventsInput(args));
229
+ break;
230
+ case "attrove_meetings":
231
+ result = await executeMeetingsTool(client, validateMeetingsInput(args));
232
+ break;
189
233
  default:
190
- // Already handled above, but TypeScript needs this
191
- throw new Error(`Unexpected tool: ${name}`);
234
+ return {
235
+ content: [
236
+ {
237
+ type: "text",
238
+ text: `Unknown tool: ${name}. Available tools: attrove_query, attrove_search, attrove_integrations, attrove_events, attrove_meetings`,
239
+ },
240
+ ],
241
+ isError: true,
242
+ };
192
243
  }
193
244
  return {
194
- content: [
195
- {
196
- type: "text",
197
- text: result,
198
- },
199
- ],
245
+ content: [{ type: "text", text: result }],
200
246
  };
201
247
  }
202
248
  catch (error) {
203
- // Expected API/network errors - format directly for user
204
- if (isAttroveError(error) || error instanceof ValidationError) {
249
+ // Validation errors = bad input → propagate as JSON-RPC errors (invalid params)
250
+ if (error instanceof ValidationError) {
251
+ throw error;
252
+ }
253
+ if (isAttroveError(error)) {
254
+ if (error.status && error.status >= 500) {
255
+ // prettier-ignore
256
+ console.error("[AttroveMCP]", JSON.stringify({ level: "error", msg: "MCP tool received server error from API", errorId: "MCP_TOOL_API_SERVER_ERROR", tool: name, errorCode: error.code, status: error.status }));
257
+ }
258
+ else if (error.status && error.status >= 400) {
259
+ // prettier-ignore
260
+ console.error("[AttroveMCP]", JSON.stringify({ level: "debug", msg: "MCP tool received client error from API", errorId: "MCP_TOOL_API_CLIENT_ERROR", tool: name, errorCode: error.code, status: error.status }));
261
+ }
205
262
  return formatErrorResponse(error);
206
263
  }
207
- // Unexpected errors (programming bugs, system errors) - always log, then format for user.
208
- // We catch all errors to keep the MCP server running, but logging ensures visibility.
264
+ // Unexpected errors log and return to keep the MCP server running
209
265
  // prettier-ignore
210
- console.error('[AttroveMCP] Unexpected error in tool handler:', error);
266
+ console.error("[AttroveMCP]", JSON.stringify({ level: "error", msg: "MCP unexpected error in tool handler", errorId: "MCP_TOOL_UNEXPECTED_ERROR", tool: name, error: error instanceof Error ? error.message : String(error), stack: error instanceof Error ? error.stack : undefined }));
211
267
  return formatErrorResponse(error);
212
268
  }
213
269
  });
214
270
  return server;
215
271
  }
216
272
  /**
217
- * Start the MCP server with stdio transport.
273
+ * Connect the MCP server to stdin/stdout and begin serving requests.
218
274
  */
219
275
  export async function startServer(config) {
220
276
  const server = createServer(config);
@@ -224,7 +280,7 @@ export async function startServer(config) {
224
280
  /**
225
281
  * Get configuration from environment variables.
226
282
  *
227
- * @throws {Error} If required environment variables are missing
283
+ * @throws {Error} If required environment variables are missing or invalid
228
284
  */
229
285
  export function getConfigFromEnv() {
230
286
  const apiKey = process.env.ATTROVE_API_KEY;
@@ -234,12 +290,15 @@ export function getConfigFromEnv() {
234
290
  throw new Error("ATTROVE_API_KEY environment variable is required. " +
235
291
  "Set it to your Attrove API key (sk_...).");
236
292
  }
293
+ if (!apiKey.startsWith("sk_")) {
294
+ throw new Error("ATTROVE_API_KEY must start with 'sk_'. Check that you're using a valid API key.");
295
+ }
237
296
  if (!userId) {
238
297
  throw new Error("ATTROVE_USER_ID environment variable is required. " +
239
298
  "Set it to the user ID (UUID) for the user whose context you want to access.");
240
299
  }
241
300
  return {
242
- apiKey,
301
+ apiKey: apiKey,
243
302
  userId,
244
303
  baseUrl,
245
304
  };
package/esm/server.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../packages/mcp/src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../packages/mcp/src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Events Tool
3
+ *
4
+ * MCP tool for listing calendar events from connected integrations.
5
+ */
6
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
7
+ import { Attrove } from "@attrove/sdk";
8
+ /**
9
+ * MCP schema for discovering and filtering calendar events.
10
+ */
11
+ export declare const eventsToolDefinition: Tool;
12
+ /**
13
+ * Validated input accepted by {@link executeEventsTool}.
14
+ */
15
+ export interface EventsToolInput {
16
+ start_date?: string;
17
+ end_date?: string;
18
+ limit?: number;
19
+ }
20
+ /**
21
+ * Fetch calendar events via the SDK and format them as a human-readable summary.
22
+ */
23
+ export declare function executeEventsTool(client: Attrove, input: EventsToolInput): Promise<string>;
24
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../packages/mcp/src/tools/events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAoC,MAAM,cAAc,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,IAoClC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsCD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,MAAM,CAAC,CAgEjB"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Events Tool
3
+ *
4
+ * MCP tool for listing calendar events from connected integrations.
5
+ */
6
+ /**
7
+ * MCP schema for discovering and filtering calendar events.
8
+ */
9
+ export const eventsToolDefinition = {
10
+ name: "attrove_events",
11
+ description: `List calendar events from the user's own connected calendar accounts.
12
+
13
+ This read-only tool returns events from the authenticated user's authorized calendar integrations (e.g., Google Calendar). Only calendars the user has explicitly connected are accessed. Use this when the user asks about:
14
+ - "What's on my calendar today/this week?"
15
+ - "Do I have any meetings tomorrow?"
16
+ - "When is my next meeting with Sarah?"
17
+ - "What's my schedule for Friday?"`,
18
+ inputSchema: {
19
+ type: "object",
20
+ properties: {
21
+ start_date: {
22
+ type: "string",
23
+ description: "Start of date range (ISO 8601). If omitted, the server determines the default.",
24
+ },
25
+ end_date: {
26
+ type: "string",
27
+ description: "End of date range (ISO 8601). If omitted, the server determines the default.",
28
+ },
29
+ limit: {
30
+ type: "number",
31
+ description: "Max events to return (default 25, max 100)",
32
+ },
33
+ },
34
+ required: [],
35
+ },
36
+ annotations: {
37
+ title: "Calendar Events",
38
+ readOnlyHint: true,
39
+ destructiveHint: false,
40
+ idempotentHint: true,
41
+ openWorldHint: true,
42
+ },
43
+ };
44
+ /**
45
+ * Format a calendar event's time range for display (e.g. "Jan 15, 2:00 PM – 3:00 PM").
46
+ * Returns a fallback string when the event contains unparseable dates.
47
+ */
48
+ function formatEventTime(event) {
49
+ if (event.all_day) {
50
+ const start = new Date(event.start_time);
51
+ if (Number.isNaN(start.getTime())) {
52
+ return "All day";
53
+ }
54
+ return `All day (${start.toLocaleDateString()})`;
55
+ }
56
+ const start = new Date(event.start_time);
57
+ const end = new Date(event.end_time);
58
+ if (Number.isNaN(start.getTime()) || Number.isNaN(end.getTime())) {
59
+ return event.start_time ?? "Unknown time";
60
+ }
61
+ const dateStr = start.toLocaleDateString(undefined, {
62
+ month: "short",
63
+ day: "numeric",
64
+ });
65
+ const startTime = start.toLocaleTimeString(undefined, {
66
+ hour: "numeric",
67
+ minute: "2-digit",
68
+ });
69
+ const endTime = end.toLocaleTimeString(undefined, {
70
+ hour: "numeric",
71
+ minute: "2-digit",
72
+ });
73
+ return `${dateStr}, ${startTime} – ${endTime}`;
74
+ }
75
+ /**
76
+ * Fetch calendar events via the SDK and format them as a human-readable summary.
77
+ */
78
+ export async function executeEventsTool(client, input) {
79
+ const options = {
80
+ expand: ["attendees", "location", "description"],
81
+ };
82
+ if (input.start_date) {
83
+ options.startDate = input.start_date;
84
+ }
85
+ if (input.end_date) {
86
+ options.endDate = input.end_date;
87
+ }
88
+ options.limit = Math.max(1, Math.min(input.limit ?? 25, 100));
89
+ const response = await client.events.list(options);
90
+ if (!response.data) {
91
+ // prettier-ignore
92
+ console.error("[AttroveMCP]", JSON.stringify({ level: "warn", msg: "Events API returned success but data was nullish", errorId: "MCP_EVENTS_MALFORMED_RESPONSE" }));
93
+ return "The events API returned an unexpected response format. Please try again.";
94
+ }
95
+ if (response.data.length === 0) {
96
+ return "No calendar events found for the specified date range.";
97
+ }
98
+ const events = response.data;
99
+ let result = `Found ${events.length} calendar event(s):\n`;
100
+ for (const event of events) {
101
+ result += `\n### ${event.title}\n`;
102
+ result += `- **When:** ${formatEventTime(event)}\n`;
103
+ if (event.location) {
104
+ result += `- **Where:** ${event.location}\n`;
105
+ }
106
+ if (event.event_link) {
107
+ result += `- **Meeting link:** ${event.event_link}\n`;
108
+ }
109
+ else if (event.html_link) {
110
+ result += `- **Calendar link:** ${event.html_link}\n`;
111
+ }
112
+ if (event.attendees?.length) {
113
+ const attendeeList = event.attendees
114
+ .map((a) => {
115
+ const name = a.name || a.email;
116
+ const status = a.status ? ` (${a.status})` : "";
117
+ return `${name}${status}`;
118
+ })
119
+ .join(", ");
120
+ result += `- **Attendees:** ${attendeeList}\n`;
121
+ }
122
+ if (event.status && event.status !== "confirmed") {
123
+ result += `- **Status:** ${event.status}\n`;
124
+ }
125
+ }
126
+ if (response.pagination?.has_more) {
127
+ result += `\n_Showing ${events.length} of ${response.pagination.total_count ?? "more"} events. Adjust start_date, end_date, or limit to refine results._\n`;
128
+ }
129
+ return result;
130
+ }
131
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../../packages/mcp/src/tools/events.ts"],"names":[],"mappings":"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"}
@@ -3,79 +3,16 @@
3
3
  *
4
4
  * Tool definitions and executors for the Attrove MCP server.
5
5
  */
6
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
6
7
  import { queryToolDefinition, executeQueryTool, QueryToolInput } from "./query.js";
7
8
  import { searchToolDefinition, executeSearchTool, SearchToolInput } from "./search.js";
8
9
  import { integrationsToolDefinition, executeIntegrationsTool } from "./integrations.js";
9
- export { queryToolDefinition, executeQueryTool, searchToolDefinition, executeSearchTool, integrationsToolDefinition, executeIntegrationsTool, };
10
- export type { QueryToolInput, SearchToolInput };
10
+ import { eventsToolDefinition, executeEventsTool, EventsToolInput } from "./events.js";
11
+ import { meetingsToolDefinition, executeMeetingsTool, MeetingsToolInput } from "./meetings.js";
12
+ export { queryToolDefinition, executeQueryTool, searchToolDefinition, executeSearchTool, integrationsToolDefinition, executeIntegrationsTool, eventsToolDefinition, executeEventsTool, meetingsToolDefinition, executeMeetingsTool, };
13
+ export type { QueryToolInput, SearchToolInput, EventsToolInput, MeetingsToolInput, };
11
14
  /**
12
15
  * All tool definitions for registration with MCP.
13
16
  */
14
- export declare const allToolDefinitions: readonly [{
15
- name: string;
16
- description: string;
17
- inputSchema: {
18
- type: "object";
19
- properties: {
20
- query: {
21
- type: string;
22
- description: string;
23
- };
24
- integration_ids: {
25
- type: string;
26
- items: {
27
- type: string;
28
- };
29
- description: string;
30
- };
31
- include_sources: {
32
- type: string;
33
- description: string;
34
- default: boolean;
35
- };
36
- };
37
- required: string[];
38
- };
39
- }, {
40
- name: string;
41
- description: string;
42
- inputSchema: {
43
- type: "object";
44
- properties: {
45
- query: {
46
- type: string;
47
- description: string;
48
- };
49
- after_date: {
50
- type: string;
51
- description: string;
52
- };
53
- before_date: {
54
- type: string;
55
- description: string;
56
- };
57
- sender_domains: {
58
- type: string;
59
- items: {
60
- type: string;
61
- };
62
- description: string;
63
- };
64
- include_body_text: {
65
- type: string;
66
- description: string;
67
- default: boolean;
68
- };
69
- };
70
- required: string[];
71
- };
72
- }, {
73
- name: string;
74
- description: string;
75
- inputSchema: {
76
- type: "object";
77
- properties: {};
78
- required: never[];
79
- };
80
- }];
17
+ export declare const allToolDefinitions: readonly Tool[];
81
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/mcp/src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,GACxB,CAAC;AAGF,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/mcp/src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,GACpB,CAAC;AAEF,YAAY,EACV,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,IAAI,EAM7C,CAAC"}
@@ -6,8 +6,9 @@
6
6
  import { queryToolDefinition, executeQueryTool, } from "./query.js";
7
7
  import { searchToolDefinition, executeSearchTool, } from "./search.js";
8
8
  import { integrationsToolDefinition, executeIntegrationsTool, } from "./integrations.js";
9
- // Re-export tool definitions
10
- export { queryToolDefinition, executeQueryTool, searchToolDefinition, executeSearchTool, integrationsToolDefinition, executeIntegrationsTool, };
9
+ import { eventsToolDefinition, executeEventsTool, } from "./events.js";
10
+ import { meetingsToolDefinition, executeMeetingsTool, } from "./meetings.js";
11
+ export { queryToolDefinition, executeQueryTool, searchToolDefinition, executeSearchTool, integrationsToolDefinition, executeIntegrationsTool, eventsToolDefinition, executeEventsTool, meetingsToolDefinition, executeMeetingsTool, };
11
12
  /**
12
13
  * All tool definitions for registration with MCP.
13
14
  */
@@ -15,5 +16,7 @@ export const allToolDefinitions = [
15
16
  queryToolDefinition,
16
17
  searchToolDefinition,
17
18
  integrationsToolDefinition,
19
+ eventsToolDefinition,
20
+ meetingsToolDefinition,
18
21
  ];
19
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/mcp/src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,6BAA6B;AAC7B,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,GACxB,CAAC;AAKF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,mBAAmB;IACnB,oBAAoB;IACpB,0BAA0B;CAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/mcp/src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,GACpB,CAAC;AASF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,mBAAmB;IACnB,oBAAoB;IACpB,0BAA0B;IAC1B,oBAAoB;IACpB,sBAAsB;CACvB,CAAC"}
@@ -3,21 +3,14 @@
3
3
  *
4
4
  * MCP tool for listing and managing connected integrations.
5
5
  */
6
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
6
7
  import { Attrove } from "@attrove/sdk";
7
8
  /**
8
9
  * Tool definition for attrove_integrations.
9
10
  */
10
- export declare const integrationsToolDefinition: {
11
- name: string;
12
- description: string;
13
- inputSchema: {
14
- type: "object";
15
- properties: {};
16
- required: never[];
17
- };
18
- };
11
+ export declare const integrationsToolDefinition: Tool;
19
12
  /**
20
- * Execute the integrations tool.
13
+ * List all connected integrations and format them for MCP display.
21
14
  */
22
15
  export declare function executeIntegrationsTool(client: Attrove): Promise<string>;
23
16
  //# sourceMappingURL=integrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../../../../packages/mcp/src/tools/integrations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAe,MAAM,cAAc,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;CAkBtC,CAAC;AAEF;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../../../../../packages/mcp/src/tools/integrations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAe,MAAM,cAAc,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,IAyBxC,CAAC;AAEF;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,MAAM,CAAC,CAsBjB"}