@beeper/desktop-mcp 0.1.2
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/LICENSE +7 -0
- package/README.md +252 -0
- package/code-tool-paths.cjs +6 -0
- package/code-tool-paths.cjs.map +1 -0
- package/code-tool-paths.d.cts +2 -0
- package/code-tool-paths.d.cts.map +1 -0
- package/code-tool-types.d.mts +14 -0
- package/code-tool-types.d.mts.map +1 -0
- package/code-tool-types.d.ts +14 -0
- package/code-tool-types.d.ts.map +1 -0
- package/code-tool-types.js +4 -0
- package/code-tool-types.js.map +1 -0
- package/code-tool-types.mjs +3 -0
- package/code-tool-types.mjs.map +1 -0
- package/code-tool-worker.d.mts +5 -0
- package/code-tool-worker.d.mts.map +1 -0
- package/code-tool-worker.d.ts +5 -0
- package/code-tool-worker.d.ts.map +1 -0
- package/code-tool-worker.js +45 -0
- package/code-tool-worker.js.map +1 -0
- package/code-tool-worker.mjs +40 -0
- package/code-tool-worker.mjs.map +1 -0
- package/code-tool.d.mts +12 -0
- package/code-tool.d.mts.map +1 -0
- package/code-tool.d.ts +12 -0
- package/code-tool.d.ts.map +1 -0
- package/code-tool.js +123 -0
- package/code-tool.js.map +1 -0
- package/code-tool.mjs +120 -0
- package/code-tool.mjs.map +1 -0
- package/compat.d.mts +58 -0
- package/compat.d.mts.map +1 -0
- package/compat.d.ts +58 -0
- package/compat.d.ts.map +1 -0
- package/compat.js +387 -0
- package/compat.js.map +1 -0
- package/compat.mjs +378 -0
- package/compat.mjs.map +1 -0
- package/dynamic-tools.d.mts +12 -0
- package/dynamic-tools.d.mts.map +1 -0
- package/dynamic-tools.d.ts +12 -0
- package/dynamic-tools.d.ts.map +1 -0
- package/dynamic-tools.js +135 -0
- package/dynamic-tools.js.map +1 -0
- package/dynamic-tools.mjs +132 -0
- package/dynamic-tools.mjs.map +1 -0
- package/filtering.d.mts +2 -0
- package/filtering.d.mts.map +1 -0
- package/filtering.d.ts +2 -0
- package/filtering.d.ts.map +1 -0
- package/filtering.js +20 -0
- package/filtering.js.map +1 -0
- package/filtering.mjs +13 -0
- package/filtering.mjs.map +1 -0
- package/headers.d.mts +4 -0
- package/headers.d.mts.map +1 -0
- package/headers.d.ts +4 -0
- package/headers.d.ts.map +1 -0
- package/headers.js +22 -0
- package/headers.js.map +1 -0
- package/headers.mjs +18 -0
- package/headers.mjs.map +1 -0
- package/http.d.mts +5 -0
- package/http.d.mts.map +1 -0
- package/http.d.ts +5 -0
- package/http.d.ts.map +1 -0
- package/http.js +127 -0
- package/http.js.map +1 -0
- package/http.mjs +119 -0
- package/http.mjs.map +1 -0
- package/index.d.mts +3 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +3 -0
- package/index.d.ts.map +1 -0
- package/index.js +91 -0
- package/index.js.map +1 -0
- package/index.mjs +89 -0
- package/index.mjs.map +1 -0
- package/options.d.mts +19 -0
- package/options.d.mts.map +1 -0
- package/options.d.ts +19 -0
- package/options.d.ts.map +1 -0
- package/options.js +417 -0
- package/options.js.map +1 -0
- package/options.mjs +410 -0
- package/options.mjs.map +1 -0
- package/package.json +206 -0
- package/server.d.mts +35 -0
- package/server.d.mts.map +1 -0
- package/server.d.ts +35 -0
- package/server.d.ts.map +1 -0
- package/server.js +151 -0
- package/server.js.map +1 -0
- package/server.mjs +137 -0
- package/server.mjs.map +1 -0
- package/src/code-tool-paths.cts +3 -0
- package/src/code-tool-types.ts +14 -0
- package/src/code-tool-worker.ts +46 -0
- package/src/code-tool.ts +144 -0
- package/src/compat.ts +483 -0
- package/src/dynamic-tools.ts +159 -0
- package/src/filtering.ts +14 -0
- package/src/headers.ts +23 -0
- package/src/http.ts +137 -0
- package/src/index.ts +108 -0
- package/src/options.ts +456 -0
- package/src/server.ts +184 -0
- package/src/stdio.ts +13 -0
- package/src/tools/accounts/get-accounts.ts +34 -0
- package/src/tools/app/open-app.ts +47 -0
- package/src/tools/chats/archive-chat.ts +42 -0
- package/src/tools/chats/get-chat.ts +46 -0
- package/src/tools/chats/search-chats.ts +101 -0
- package/src/tools/index.ts +89 -0
- package/src/tools/messages/get-attachment.ts +42 -0
- package/src/tools/messages/search-messages.ts +133 -0
- package/src/tools/messages/send-message.ts +46 -0
- package/src/tools/reminders/clear-chat-reminder.ts +38 -0
- package/src/tools/reminders/set-chat-reminder.ts +53 -0
- package/src/tools/types.ts +103 -0
- package/src/tools.ts +1 -0
- package/src/tsconfig.json +11 -0
- package/stdio.d.mts +3 -0
- package/stdio.d.mts.map +1 -0
- package/stdio.d.ts +3 -0
- package/stdio.d.ts.map +1 -0
- package/stdio.js +14 -0
- package/stdio.js.map +1 -0
- package/stdio.mjs +10 -0
- package/stdio.mjs.map +1 -0
- package/tools/accounts/get-accounts.d.mts +45 -0
- package/tools/accounts/get-accounts.d.mts.map +1 -0
- package/tools/accounts/get-accounts.d.ts +45 -0
- package/tools/accounts/get-accounts.d.ts.map +1 -0
- package/tools/accounts/get-accounts.js +31 -0
- package/tools/accounts/get-accounts.js.map +1 -0
- package/tools/accounts/get-accounts.mjs +27 -0
- package/tools/accounts/get-accounts.mjs.map +1 -0
- package/tools/app/open-app.d.mts +45 -0
- package/tools/app/open-app.d.mts.map +1 -0
- package/tools/app/open-app.d.ts +45 -0
- package/tools/app/open-app.d.ts.map +1 -0
- package/tools/app/open-app.js +43 -0
- package/tools/app/open-app.js.map +1 -0
- package/tools/app/open-app.mjs +39 -0
- package/tools/app/open-app.mjs.map +1 -0
- package/tools/chats/archive-chat.d.mts +45 -0
- package/tools/chats/archive-chat.d.mts.map +1 -0
- package/tools/chats/archive-chat.d.ts +45 -0
- package/tools/chats/archive-chat.d.ts.map +1 -0
- package/tools/chats/archive-chat.js +39 -0
- package/tools/chats/archive-chat.js.map +1 -0
- package/tools/chats/archive-chat.mjs +35 -0
- package/tools/chats/archive-chat.mjs.map +1 -0
- package/tools/chats/get-chat.d.mts +45 -0
- package/tools/chats/get-chat.d.mts.map +1 -0
- package/tools/chats/get-chat.d.ts +45 -0
- package/tools/chats/get-chat.d.ts.map +1 -0
- package/tools/chats/get-chat.js +41 -0
- package/tools/chats/get-chat.js.map +1 -0
- package/tools/chats/get-chat.mjs +37 -0
- package/tools/chats/get-chat.mjs.map +1 -0
- package/tools/chats/search-chats.d.mts +45 -0
- package/tools/chats/search-chats.d.mts.map +1 -0
- package/tools/chats/search-chats.d.ts +45 -0
- package/tools/chats/search-chats.d.ts.map +1 -0
- package/tools/chats/search-chats.js +90 -0
- package/tools/chats/search-chats.js.map +1 -0
- package/tools/chats/search-chats.mjs +86 -0
- package/tools/chats/search-chats.mjs.map +1 -0
- package/tools/index.d.mts +10 -0
- package/tools/index.d.mts.map +1 -0
- package/tools/index.d.ts +10 -0
- package/tools/index.d.ts.map +1 -0
- package/tools/index.js +73 -0
- package/tools/index.js.map +1 -0
- package/tools/index.mjs +66 -0
- package/tools/index.mjs.map +1 -0
- package/tools/messages/get-attachment.d.mts +45 -0
- package/tools/messages/get-attachment.d.mts.map +1 -0
- package/tools/messages/get-attachment.d.ts +45 -0
- package/tools/messages/get-attachment.d.ts.map +1 -0
- package/tools/messages/get-attachment.js +39 -0
- package/tools/messages/get-attachment.js.map +1 -0
- package/tools/messages/get-attachment.mjs +35 -0
- package/tools/messages/get-attachment.mjs.map +1 -0
- package/tools/messages/search-messages.d.mts +45 -0
- package/tools/messages/search-messages.d.mts.map +1 -0
- package/tools/messages/search-messages.d.ts +45 -0
- package/tools/messages/search-messages.d.ts.map +1 -0
- package/tools/messages/search-messages.js +121 -0
- package/tools/messages/search-messages.js.map +1 -0
- package/tools/messages/search-messages.mjs +117 -0
- package/tools/messages/search-messages.mjs.map +1 -0
- package/tools/messages/send-message.d.mts +45 -0
- package/tools/messages/send-message.d.mts.map +1 -0
- package/tools/messages/send-message.d.ts +45 -0
- package/tools/messages/send-message.d.ts.map +1 -0
- package/tools/messages/send-message.js +43 -0
- package/tools/messages/send-message.js.map +1 -0
- package/tools/messages/send-message.mjs +39 -0
- package/tools/messages/send-message.mjs.map +1 -0
- package/tools/reminders/clear-chat-reminder.d.mts +45 -0
- package/tools/reminders/clear-chat-reminder.d.mts.map +1 -0
- package/tools/reminders/clear-chat-reminder.d.ts +45 -0
- package/tools/reminders/clear-chat-reminder.d.ts.map +1 -0
- package/tools/reminders/clear-chat-reminder.js +35 -0
- package/tools/reminders/clear-chat-reminder.js.map +1 -0
- package/tools/reminders/clear-chat-reminder.mjs +31 -0
- package/tools/reminders/clear-chat-reminder.mjs.map +1 -0
- package/tools/reminders/set-chat-reminder.d.mts +45 -0
- package/tools/reminders/set-chat-reminder.d.mts.map +1 -0
- package/tools/reminders/set-chat-reminder.d.ts +45 -0
- package/tools/reminders/set-chat-reminder.d.ts.map +1 -0
- package/tools/reminders/set-chat-reminder.js +50 -0
- package/tools/reminders/set-chat-reminder.js.map +1 -0
- package/tools/reminders/set-chat-reminder.mjs +46 -0
- package/tools/reminders/set-chat-reminder.mjs.map +1 -0
- package/tools/types.d.mts +51 -0
- package/tools/types.d.mts.map +1 -0
- package/tools/types.d.ts +51 -0
- package/tools/types.d.ts.map +1 -0
- package/tools/types.js +46 -0
- package/tools/types.js.map +1 -0
- package/tools/types.mjs +42 -0
- package/tools/types.mjs.map +1 -0
- package/tools.d.mts +2 -0
- package/tools.d.mts.map +1 -0
- package/tools.d.ts +2 -0
- package/tools.d.ts.map +1 -0
- package/tools.js +18 -0
- package/tools.js.map +1 -0
- package/tools.mjs +2 -0
- package/tools.mjs.map +1 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from '@beeper/desktop-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import BeeperDesktop from '@beeper/desktop-api';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'messages',
|
|
10
|
+
operation: 'read',
|
|
11
|
+
tags: ['messages'],
|
|
12
|
+
httpMethod: 'get',
|
|
13
|
+
httpPath: '/v0/search-messages',
|
|
14
|
+
operationId: 'search_messages',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'search_messages',
|
|
19
|
+
description:
|
|
20
|
+
'Search messages across chats using Beeper\'s message index.\n- When to use: find messages by text and/or filters (chatIDs, accountIDs, chatType, media type filters, sender, date ranges).\n- CRITICAL: Query is LITERAL WORD MATCHING, NOT semantic search! Only finds messages containing these EXACT words.\n • ✅ RIGHT: query="dinner" or query="sick" or query="error" (single words users type)\n • ❌ WRONG: query="dinner plans tonight" or query="health issues" (phrases/concepts)\n • The query matches ALL words provided (in any order). Example: query="flight booking" finds messages with both "flight" AND "booking".\n- Media filters: Use onlyWithMedia for any media, or specific filters like onlyWithVideo, onlyWithImage, onlyWithLink, onlyWithFile for specific types.\n- Pagination: use \'oldestCursor\' + direction=\'before\' for older; \'newestCursor\' + direction=\'after\' for newer.\n- Performance: provide chatIDs/accountIDs when known. Omitted \'query\' returns results based on filters only. Partial matches enabled; \'excludeLowPriority\' defaults to true.\n- Workflow tip: To search messages in specific conversations: 1) Use find-chats to get chatIDs, 2) Use search-messages with those chatIDs.\n- IMPORTANT: Chat names vary widely. ASK the user for clarification:\n • "Which chat do you mean by family?" (could be "The Smiths", "Mom Dad Kids", etc.)\n • "What\'s the name of your work chat?" (could be "Team", company name, project name)\n • "Who are the participants?" (use participantQuery in find-chats)\nReturns: matching messages and referenced chats.',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
accountIDs: {
|
|
25
|
+
type: 'array',
|
|
26
|
+
description: 'Limit search to specific Beeper account IDs (bridge instances).',
|
|
27
|
+
items: {
|
|
28
|
+
type: 'string',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
chatIDs: {
|
|
32
|
+
type: 'array',
|
|
33
|
+
description: 'Limit search to specific Beeper chat IDs.',
|
|
34
|
+
items: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
chatType: {
|
|
39
|
+
type: 'string',
|
|
40
|
+
description: "Filter by chat type: 'group' for group chats, 'single' for 1:1 chats.",
|
|
41
|
+
enum: ['group', 'single'],
|
|
42
|
+
},
|
|
43
|
+
cursor: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
description: "Opaque pagination cursor; do not inspect. Use together with 'direction'.",
|
|
46
|
+
},
|
|
47
|
+
dateAfter: {
|
|
48
|
+
type: 'string',
|
|
49
|
+
description:
|
|
50
|
+
"Only include messages with timestamp strictly after this ISO 8601 datetime (e.g., '2024-07-01T00:00:00Z' or '2024-07-01T00:00:00+02:00').",
|
|
51
|
+
format: 'date-time',
|
|
52
|
+
},
|
|
53
|
+
dateBefore: {
|
|
54
|
+
type: 'string',
|
|
55
|
+
description:
|
|
56
|
+
"Only include messages with timestamp strictly before this ISO 8601 datetime (e.g., '2024-07-31T23:59:59Z' or '2024-07-31T23:59:59+02:00').",
|
|
57
|
+
format: 'date-time',
|
|
58
|
+
},
|
|
59
|
+
direction: {
|
|
60
|
+
type: 'string',
|
|
61
|
+
description:
|
|
62
|
+
"Pagination direction used with 'cursor': 'before' fetches older results, 'after' fetches newer results. Defaults to 'before' when only 'cursor' is provided.",
|
|
63
|
+
enum: ['after', 'before'],
|
|
64
|
+
},
|
|
65
|
+
excludeLowPriority: {
|
|
66
|
+
type: 'boolean',
|
|
67
|
+
description:
|
|
68
|
+
'Exclude messages marked Low Priority by the user. Default: true. Set to false to include all.',
|
|
69
|
+
},
|
|
70
|
+
includeMuted: {
|
|
71
|
+
type: 'boolean',
|
|
72
|
+
description:
|
|
73
|
+
'Include messages in chats marked as Muted by the user, which are usually less important. Default: true. Set to false if the user wants a more refined search.',
|
|
74
|
+
},
|
|
75
|
+
limit: {
|
|
76
|
+
type: 'integer',
|
|
77
|
+
description: 'Maximum number of messages to return (1–500). Defaults to 50.',
|
|
78
|
+
},
|
|
79
|
+
onlyWithFile: {
|
|
80
|
+
type: 'boolean',
|
|
81
|
+
description: 'Only return messages that contain file attachments.',
|
|
82
|
+
},
|
|
83
|
+
onlyWithImage: {
|
|
84
|
+
type: 'boolean',
|
|
85
|
+
description: 'Only return messages that contain image attachments.',
|
|
86
|
+
},
|
|
87
|
+
onlyWithLink: {
|
|
88
|
+
type: 'boolean',
|
|
89
|
+
description: 'Only return messages that contain link attachments.',
|
|
90
|
+
},
|
|
91
|
+
onlyWithMedia: {
|
|
92
|
+
type: 'boolean',
|
|
93
|
+
description: 'Only return messages that contain any type of media attachment.',
|
|
94
|
+
},
|
|
95
|
+
onlyWithVideo: {
|
|
96
|
+
type: 'boolean',
|
|
97
|
+
description: 'Only return messages that contain video attachments.',
|
|
98
|
+
},
|
|
99
|
+
query: {
|
|
100
|
+
type: 'string',
|
|
101
|
+
description:
|
|
102
|
+
'Literal word search (NOT semantic). Finds messages containing these EXACT words in any order. Use single words users actually type, not concepts or phrases. Example: use "dinner" not "dinner plans", use "sick" not "health issues". If omitted, returns results filtered only by other parameters.',
|
|
103
|
+
},
|
|
104
|
+
sender: {
|
|
105
|
+
anyOf: [
|
|
106
|
+
{
|
|
107
|
+
type: 'string',
|
|
108
|
+
description:
|
|
109
|
+
"Filter by sender: 'me' (messages sent by the authenticated user), 'others' (messages sent by others), or a specific user ID string (user.id).",
|
|
110
|
+
enum: ['me', 'others'],
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'string',
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
description:
|
|
117
|
+
"Filter by sender: 'me' (messages sent by the authenticated user), 'others' (messages sent by others), or a specific user ID string (user.id).",
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
required: [],
|
|
121
|
+
},
|
|
122
|
+
annotations: {
|
|
123
|
+
readOnlyHint: true,
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
export const handler = async (client: BeeperDesktop, args: Record<string, unknown> | undefined) => {
|
|
128
|
+
const body = args as any;
|
|
129
|
+
const response = await client.messages.search(body).asResponse();
|
|
130
|
+
return asTextContentResult(await response.json());
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from '@beeper/desktop-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import BeeperDesktop from '@beeper/desktop-api';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'messages',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: ['messages'],
|
|
12
|
+
httpMethod: 'post',
|
|
13
|
+
httpPath: '/v0/send-message',
|
|
14
|
+
operationId: 'send_message',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'send_message',
|
|
19
|
+
description: 'Send a text message to a chat. Can reply to an existing message.',
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: 'object',
|
|
22
|
+
properties: {
|
|
23
|
+
chatID: {
|
|
24
|
+
type: 'string',
|
|
25
|
+
description: 'The identifier of the chat where the message will send',
|
|
26
|
+
},
|
|
27
|
+
replyToMessageID: {
|
|
28
|
+
type: 'string',
|
|
29
|
+
description: 'Provide a message ID to send this as a reply to an existing message',
|
|
30
|
+
},
|
|
31
|
+
text: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
description: 'Text content of the message you want to send. You may use markdown.',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
required: ['chatID'],
|
|
37
|
+
},
|
|
38
|
+
annotations: {},
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const handler = async (client: BeeperDesktop, args: Record<string, unknown> | undefined) => {
|
|
42
|
+
const body = args as any;
|
|
43
|
+
return asTextContentResult(await client.messages.send(body));
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from '@beeper/desktop-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import BeeperDesktop from '@beeper/desktop-api';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'reminders',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: ['reminders'],
|
|
12
|
+
httpMethod: 'post',
|
|
13
|
+
httpPath: '/v0/clear-chat-reminder',
|
|
14
|
+
operationId: 'clear_chat_reminder',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'clear_chat_reminder',
|
|
19
|
+
description: 'Clear a chat reminder.',
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: 'object',
|
|
22
|
+
properties: {
|
|
23
|
+
chatID: {
|
|
24
|
+
type: 'string',
|
|
25
|
+
description: 'The identifier of the chat to clear reminder from',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
required: ['chatID'],
|
|
29
|
+
},
|
|
30
|
+
annotations: {},
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const handler = async (client: BeeperDesktop, args: Record<string, unknown> | undefined) => {
|
|
34
|
+
const body = args as any;
|
|
35
|
+
return asTextContentResult(await client.reminders.clear(body));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { Metadata, asTextContentResult } from '@beeper/desktop-mcp/tools/types';
|
|
4
|
+
|
|
5
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import BeeperDesktop from '@beeper/desktop-api';
|
|
7
|
+
|
|
8
|
+
export const metadata: Metadata = {
|
|
9
|
+
resource: 'reminders',
|
|
10
|
+
operation: 'write',
|
|
11
|
+
tags: ['reminders'],
|
|
12
|
+
httpMethod: 'post',
|
|
13
|
+
httpPath: '/v0/set-chat-reminder',
|
|
14
|
+
operationId: 'set_chat_reminder',
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const tool: Tool = {
|
|
18
|
+
name: 'set_chat_reminder',
|
|
19
|
+
description: 'Set a reminder for a chat at a specific time.',
|
|
20
|
+
inputSchema: {
|
|
21
|
+
type: 'object',
|
|
22
|
+
properties: {
|
|
23
|
+
chatID: {
|
|
24
|
+
type: 'string',
|
|
25
|
+
description: 'The identifier of the chat to set reminder for',
|
|
26
|
+
},
|
|
27
|
+
reminder: {
|
|
28
|
+
type: 'object',
|
|
29
|
+
description: 'Reminder configuration',
|
|
30
|
+
properties: {
|
|
31
|
+
remindAtMs: {
|
|
32
|
+
type: 'number',
|
|
33
|
+
description: 'Unix timestamp in milliseconds when reminder should trigger',
|
|
34
|
+
},
|
|
35
|
+
dismissOnIncomingMessage: {
|
|
36
|
+
type: 'boolean',
|
|
37
|
+
description: 'Cancel reminder if someone messages in the chat',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
required: ['remindAtMs'],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: ['chatID', 'reminder'],
|
|
44
|
+
},
|
|
45
|
+
annotations: {},
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const handler = async (client: BeeperDesktop, args: Record<string, unknown> | undefined) => {
|
|
49
|
+
const body = args as any;
|
|
50
|
+
return asTextContentResult(await client.reminders.set(body));
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export default { metadata, tool, handler };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import BeeperDesktop from '@beeper/desktop-api';
|
|
4
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
|
|
6
|
+
type TextContentBlock = {
|
|
7
|
+
type: 'text';
|
|
8
|
+
text: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
type ImageContentBlock = {
|
|
12
|
+
type: 'image';
|
|
13
|
+
data: string;
|
|
14
|
+
mimeType: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
type AudioContentBlock = {
|
|
18
|
+
type: 'audio';
|
|
19
|
+
data: string;
|
|
20
|
+
mimeType: string;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type ResourceContentBlock = {
|
|
24
|
+
type: 'resource';
|
|
25
|
+
resource:
|
|
26
|
+
| {
|
|
27
|
+
uri: string;
|
|
28
|
+
mimeType: string;
|
|
29
|
+
text: string;
|
|
30
|
+
}
|
|
31
|
+
| {
|
|
32
|
+
uri: string;
|
|
33
|
+
mimeType: string;
|
|
34
|
+
blob: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export type ContentBlock = TextContentBlock | ImageContentBlock | AudioContentBlock | ResourceContentBlock;
|
|
39
|
+
|
|
40
|
+
export type ToolCallResult = {
|
|
41
|
+
content: ContentBlock[];
|
|
42
|
+
isError?: boolean;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export type HandlerFunction = (
|
|
46
|
+
client: BeeperDesktop,
|
|
47
|
+
args: Record<string, unknown> | undefined,
|
|
48
|
+
) => Promise<ToolCallResult>;
|
|
49
|
+
|
|
50
|
+
export function asTextContentResult(result: unknown): ToolCallResult {
|
|
51
|
+
return {
|
|
52
|
+
content: [
|
|
53
|
+
{
|
|
54
|
+
type: 'text',
|
|
55
|
+
text: JSON.stringify(result, null, 2),
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export async function asBinaryContentResult(response: Response): Promise<ToolCallResult> {
|
|
62
|
+
const blob = await response.blob();
|
|
63
|
+
const mimeType = blob.type;
|
|
64
|
+
const data = Buffer.from(await blob.arrayBuffer()).toString('base64');
|
|
65
|
+
if (mimeType.startsWith('image/')) {
|
|
66
|
+
return {
|
|
67
|
+
content: [{ type: 'image', mimeType, data }],
|
|
68
|
+
};
|
|
69
|
+
} else if (mimeType.startsWith('audio/')) {
|
|
70
|
+
return {
|
|
71
|
+
content: [{ type: 'audio', mimeType, data }],
|
|
72
|
+
};
|
|
73
|
+
} else {
|
|
74
|
+
return {
|
|
75
|
+
content: [
|
|
76
|
+
{
|
|
77
|
+
type: 'resource',
|
|
78
|
+
resource: {
|
|
79
|
+
// We must give a URI, even though this isn't actually an MCP resource.
|
|
80
|
+
uri: 'resource://tool-response',
|
|
81
|
+
mimeType,
|
|
82
|
+
blob: data,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export type Metadata = {
|
|
91
|
+
resource: string;
|
|
92
|
+
operation: 'read' | 'write';
|
|
93
|
+
tags: string[];
|
|
94
|
+
httpMethod?: string;
|
|
95
|
+
httpPath?: string;
|
|
96
|
+
operationId?: string;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export type Endpoint = {
|
|
100
|
+
metadata: Metadata;
|
|
101
|
+
tool: Tool;
|
|
102
|
+
handler: HandlerFunction;
|
|
103
|
+
};
|
package/src/tools.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './tools/index';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
// this config is included in the published src directory to prevent TS errors
|
|
3
|
+
// from appearing when users go to source, and VSCode opens the source .ts file
|
|
4
|
+
// via declaration maps
|
|
5
|
+
"include": ["index.ts"],
|
|
6
|
+
"compilerOptions": {
|
|
7
|
+
"target": "es2015",
|
|
8
|
+
"lib": ["DOM"],
|
|
9
|
+
"moduleResolution": "node"
|
|
10
|
+
}
|
|
11
|
+
}
|
package/stdio.d.mts
ADDED
package/stdio.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.d.mts","sourceRoot":"","sources":["src/stdio.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE;AAErB,eAAO,MAAM,iBAAiB,GAAU,SAAS,UAAU,kBAQ1D,CAAC"}
|
package/stdio.d.ts
ADDED
package/stdio.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["src/stdio.ts"],"names":[],"mappings":"OAEO,EAAE,UAAU,EAAE;AAErB,eAAO,MAAM,iBAAiB,GAAU,SAAS,UAAU,kBAQ1D,CAAC"}
|
package/stdio.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.launchStdioServer = void 0;
|
|
4
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
5
|
+
const server_1 = require("./server.js");
|
|
6
|
+
const launchStdioServer = async (options) => {
|
|
7
|
+
const server = (0, server_1.newMcpServer)();
|
|
8
|
+
(0, server_1.initMcpServer)({ server, mcpOptions: options });
|
|
9
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
10
|
+
await server.connect(transport);
|
|
11
|
+
console.error('MCP Server running on stdio');
|
|
12
|
+
};
|
|
13
|
+
exports.launchStdioServer = launchStdioServer;
|
|
14
|
+
//# sourceMappingURL=stdio.js.map
|
package/stdio.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["src/stdio.ts"],"names":[],"mappings":";;;AAAA,wEAAiF;AACjF,wCAAuD;AAGhD,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAmB,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,IAAA,qBAAY,GAAE,CAAC;IAE9B,IAAA,sBAAa,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC/C,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B"}
|
package/stdio.mjs
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
2
|
+
import { initMcpServer, newMcpServer } from "./server.mjs";
|
|
3
|
+
export const launchStdioServer = async (options) => {
|
|
4
|
+
const server = newMcpServer();
|
|
5
|
+
initMcpServer({ server, mcpOptions: options });
|
|
6
|
+
const transport = new StdioServerTransport();
|
|
7
|
+
await server.connect(transport);
|
|
8
|
+
console.error('MCP Server running on stdio');
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=stdio.mjs.map
|
package/stdio.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stdio.mjs","sourceRoot":"","sources":["src/stdio.ts"],"names":[],"mappings":"OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C;OACzE,EAAE,aAAa,EAAE,YAAY,EAAE;AAGtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAmB,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;AAC/C,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Metadata } from '@beeper/desktop-mcp/tools/types';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import BeeperDesktop from '@beeper/desktop-api';
|
|
4
|
+
export declare const metadata: Metadata;
|
|
5
|
+
export declare const tool: Tool;
|
|
6
|
+
export declare const handler: (client: BeeperDesktop, args: Record<string, unknown> | undefined) => Promise<import("@beeper/desktop-mcp/tools/types").ToolCallResult>;
|
|
7
|
+
declare const _default: {
|
|
8
|
+
metadata: Metadata;
|
|
9
|
+
tool: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
name: string;
|
|
12
|
+
inputSchema: {
|
|
13
|
+
[x: string]: unknown;
|
|
14
|
+
type: "object";
|
|
15
|
+
properties?: {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
} | undefined;
|
|
18
|
+
required?: string[] | undefined;
|
|
19
|
+
};
|
|
20
|
+
title?: string | undefined;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
outputSchema?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
type: "object";
|
|
25
|
+
properties?: {
|
|
26
|
+
[x: string]: unknown;
|
|
27
|
+
} | undefined;
|
|
28
|
+
required?: string[] | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
annotations?: {
|
|
31
|
+
[x: string]: unknown;
|
|
32
|
+
title?: string | undefined;
|
|
33
|
+
readOnlyHint?: boolean | undefined;
|
|
34
|
+
destructiveHint?: boolean | undefined;
|
|
35
|
+
idempotentHint?: boolean | undefined;
|
|
36
|
+
openWorldHint?: boolean | undefined;
|
|
37
|
+
} | undefined;
|
|
38
|
+
_meta?: {
|
|
39
|
+
[x: string]: unknown;
|
|
40
|
+
} | undefined;
|
|
41
|
+
};
|
|
42
|
+
handler: (client: BeeperDesktop, args: Record<string, unknown> | undefined) => Promise<import("@beeper/desktop-mcp/tools/types").ToolCallResult>;
|
|
43
|
+
};
|
|
44
|
+
export default _default;
|
|
45
|
+
//# sourceMappingURL=get-accounts.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-accounts.d.mts","sourceRoot":"","sources":["../../src/tools/accounts/get-accounts.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB,MAAM,iCAAiC;OAExE,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,aAAa,MAAM,qBAAqB;AAE/C,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAWlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,sEAE7F,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAFoC,aAAa,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAI9F,wBAA2C"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Metadata } from '@beeper/desktop-mcp/tools/types';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import BeeperDesktop from '@beeper/desktop-api';
|
|
4
|
+
export declare const metadata: Metadata;
|
|
5
|
+
export declare const tool: Tool;
|
|
6
|
+
export declare const handler: (client: BeeperDesktop, args: Record<string, unknown> | undefined) => Promise<import("@beeper/desktop-mcp/tools/types").ToolCallResult>;
|
|
7
|
+
declare const _default: {
|
|
8
|
+
metadata: Metadata;
|
|
9
|
+
tool: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
name: string;
|
|
12
|
+
inputSchema: {
|
|
13
|
+
[x: string]: unknown;
|
|
14
|
+
type: "object";
|
|
15
|
+
properties?: {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
} | undefined;
|
|
18
|
+
required?: string[] | undefined;
|
|
19
|
+
};
|
|
20
|
+
title?: string | undefined;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
outputSchema?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
type: "object";
|
|
25
|
+
properties?: {
|
|
26
|
+
[x: string]: unknown;
|
|
27
|
+
} | undefined;
|
|
28
|
+
required?: string[] | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
annotations?: {
|
|
31
|
+
[x: string]: unknown;
|
|
32
|
+
title?: string | undefined;
|
|
33
|
+
readOnlyHint?: boolean | undefined;
|
|
34
|
+
destructiveHint?: boolean | undefined;
|
|
35
|
+
idempotentHint?: boolean | undefined;
|
|
36
|
+
openWorldHint?: boolean | undefined;
|
|
37
|
+
} | undefined;
|
|
38
|
+
_meta?: {
|
|
39
|
+
[x: string]: unknown;
|
|
40
|
+
} | undefined;
|
|
41
|
+
};
|
|
42
|
+
handler: (client: BeeperDesktop, args: Record<string, unknown> | undefined) => Promise<import("@beeper/desktop-mcp/tools/types").ToolCallResult>;
|
|
43
|
+
};
|
|
44
|
+
export default _default;
|
|
45
|
+
//# sourceMappingURL=get-accounts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-accounts.d.ts","sourceRoot":"","sources":["../../src/tools/accounts/get-accounts.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB,MAAM,iCAAiC;OAExE,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,aAAa,MAAM,qBAAqB;AAE/C,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAWlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,sEAE7F,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAFoC,aAAa,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAI9F,wBAA2C"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.handler = exports.tool = exports.metadata = void 0;
|
|
5
|
+
const types_1 = require("@beeper/desktop-mcp/tools/types");
|
|
6
|
+
exports.metadata = {
|
|
7
|
+
resource: 'accounts',
|
|
8
|
+
operation: 'read',
|
|
9
|
+
tags: ['accounts'],
|
|
10
|
+
httpMethod: 'get',
|
|
11
|
+
httpPath: '/v0/get-accounts',
|
|
12
|
+
operationId: 'get_accounts',
|
|
13
|
+
};
|
|
14
|
+
exports.tool = {
|
|
15
|
+
name: 'get_accounts',
|
|
16
|
+
description: 'List connected accounts on this device. Use to pick account context.',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
type: 'object',
|
|
19
|
+
properties: {},
|
|
20
|
+
required: [],
|
|
21
|
+
},
|
|
22
|
+
annotations: {
|
|
23
|
+
readOnlyHint: true,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
const handler = async (client, args) => {
|
|
27
|
+
return (0, types_1.asTextContentResult)(await client.accounts.list());
|
|
28
|
+
};
|
|
29
|
+
exports.handler = handler;
|
|
30
|
+
exports.default = { metadata: exports.metadata, tool: exports.tool, handler: exports.handler };
|
|
31
|
+
//# sourceMappingURL=get-accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-accounts.js","sourceRoot":"","sources":["../../src/tools/accounts/get-accounts.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,2DAAgF;AAKnE,QAAA,QAAQ,GAAa;IAChC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,cAAc;CAC5B,CAAC;AAEW,QAAA,IAAI,GAAS;IACxB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,sEAAsE;IACnF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,MAAqB,EAAE,IAAyC,EAAE,EAAE;IAChG,OAAO,IAAA,2BAAmB,EAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEF,kBAAe,EAAE,QAAQ,EAAR,gBAAQ,EAAE,IAAI,EAAJ,YAAI,EAAE,OAAO,EAAP,eAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
import { asTextContentResult } from '@beeper/desktop-mcp/tools/types';
|
|
3
|
+
export const metadata = {
|
|
4
|
+
resource: 'accounts',
|
|
5
|
+
operation: 'read',
|
|
6
|
+
tags: ['accounts'],
|
|
7
|
+
httpMethod: 'get',
|
|
8
|
+
httpPath: '/v0/get-accounts',
|
|
9
|
+
operationId: 'get_accounts',
|
|
10
|
+
};
|
|
11
|
+
export const tool = {
|
|
12
|
+
name: 'get_accounts',
|
|
13
|
+
description: 'List connected accounts on this device. Use to pick account context.',
|
|
14
|
+
inputSchema: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {},
|
|
17
|
+
required: [],
|
|
18
|
+
},
|
|
19
|
+
annotations: {
|
|
20
|
+
readOnlyHint: true,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
export const handler = async (client, args) => {
|
|
24
|
+
return asTextContentResult(await client.accounts.list());
|
|
25
|
+
};
|
|
26
|
+
export default { metadata, tool, handler };
|
|
27
|
+
//# sourceMappingURL=get-accounts.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-accounts.mjs","sourceRoot":"","sources":["../../src/tools/accounts/get-accounts.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAY,mBAAmB,EAAE,MAAM,iCAAiC;AAK/E,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,kBAAkB;IAC5B,WAAW,EAAE,cAAc;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,sEAAsE;IACnF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;IACD,WAAW,EAAE;QACX,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,MAAqB,EAAE,IAAyC,EAAE,EAAE;IAChG,OAAO,mBAAmB,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Metadata } from '@beeper/desktop-mcp/tools/types';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import BeeperDesktop from '@beeper/desktop-api';
|
|
4
|
+
export declare const metadata: Metadata;
|
|
5
|
+
export declare const tool: Tool;
|
|
6
|
+
export declare const handler: (client: BeeperDesktop, args: Record<string, unknown> | undefined) => Promise<import("@beeper/desktop-mcp/tools/types").ToolCallResult>;
|
|
7
|
+
declare const _default: {
|
|
8
|
+
metadata: Metadata;
|
|
9
|
+
tool: {
|
|
10
|
+
[x: string]: unknown;
|
|
11
|
+
name: string;
|
|
12
|
+
inputSchema: {
|
|
13
|
+
[x: string]: unknown;
|
|
14
|
+
type: "object";
|
|
15
|
+
properties?: {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
} | undefined;
|
|
18
|
+
required?: string[] | undefined;
|
|
19
|
+
};
|
|
20
|
+
title?: string | undefined;
|
|
21
|
+
description?: string | undefined;
|
|
22
|
+
outputSchema?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
type: "object";
|
|
25
|
+
properties?: {
|
|
26
|
+
[x: string]: unknown;
|
|
27
|
+
} | undefined;
|
|
28
|
+
required?: string[] | undefined;
|
|
29
|
+
} | undefined;
|
|
30
|
+
annotations?: {
|
|
31
|
+
[x: string]: unknown;
|
|
32
|
+
title?: string | undefined;
|
|
33
|
+
readOnlyHint?: boolean | undefined;
|
|
34
|
+
destructiveHint?: boolean | undefined;
|
|
35
|
+
idempotentHint?: boolean | undefined;
|
|
36
|
+
openWorldHint?: boolean | undefined;
|
|
37
|
+
} | undefined;
|
|
38
|
+
_meta?: {
|
|
39
|
+
[x: string]: unknown;
|
|
40
|
+
} | undefined;
|
|
41
|
+
};
|
|
42
|
+
handler: (client: BeeperDesktop, args: Record<string, unknown> | undefined) => Promise<import("@beeper/desktop-mcp/tools/types").ToolCallResult>;
|
|
43
|
+
};
|
|
44
|
+
export default _default;
|
|
45
|
+
//# sourceMappingURL=open-app.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-app.d.mts","sourceRoot":"","sources":["../../src/tools/app/open-app.ts"],"names":[],"mappings":"OAEO,EAAE,QAAQ,EAAuB,MAAM,iCAAiC;OAExE,EAAE,IAAI,EAAE,MAAM,oCAAoC;OAClD,aAAa,MAAM,qBAAqB;AAE/C,eAAO,MAAM,QAAQ,EAAE,QAOtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,IAuBlB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAU,QAAQ,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,sEAG7F,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAHoC,aAAa,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;;AAK9F,wBAA2C"}
|