Skip to content

Commit e12ab16

Browse files
feat(api): manual updates
1 parent 914badc commit e12ab16

File tree

9 files changed

+25
-88
lines changed

9 files changed

+25
-88
lines changed

.stats.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 15
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/beeper%2Fbeeper-desktop-api-953cbc1ea1fe675bf2d32b18030a3ac509c521946921cb338c0d1c2cfef89424.yml
33
openapi_spec_hash: b4d08ca2dc21bc00245c9c9408be89ef
4-
config_hash: d48fc12c89d2d812adf19d0508306f4a
4+
config_hash: b43f460701263c30aba16a32385b20ed
Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

3-
import { maybeFilter } from '@beeper/desktop-mcp/filtering';
43
import { Metadata, asTextContentResult } from '@beeper/desktop-mcp/tools/types';
54

65
import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,18 +16,10 @@ export const metadata: Metadata = {
1716

1817
export const tool: Tool = {
1918
name: 'get_accounts',
20-
description:
21-
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nList connected accounts on this device.\n\n# Response Schema\n```json\n{\n type: 'array',\n description: 'Connected accounts the user can act through. Includes accountID, network, and user identity.',\n items: {\n $ref: '#/$defs/account'\n },\n $defs: {\n account: {\n type: 'object',\n description: 'A chat account added to Beeper',\n properties: {\n accountID: {\n type: 'string',\n description: 'Chat account added to Beeper. Use this to route account-scoped actions.'\n },\n network: {\n type: 'string',\n description: 'Display-only human-readable network name (e.g., \\'WhatsApp\\', \\'Messenger\\').'\n },\n user: {\n $ref: '#/$defs/user'\n }\n },\n required: [ 'accountID',\n 'network',\n 'user'\n ]\n },\n user: {\n type: 'object',\n description: 'User the account belongs to.',\n properties: {\n id: {\n type: 'string',\n description: 'Stable Beeper user ID. Use as the primary key when referencing a person.'\n },\n cannotMessage: {\n type: 'boolean',\n description: 'True if Beeper cannot initiate messages to this user (e.g., blocked, network restriction, or no DM path). The user may still message you.'\n },\n email: {\n type: 'string',\n description: 'Email address if known. Not guaranteed verified.'\n },\n fullName: {\n type: 'string',\n description: 'Display name as shown in clients (e.g., \\'Alice Example\\'). May include emojis.'\n },\n imgURL: {\n type: 'string',\n description: 'Avatar image URL if available. May be temporary or local-only to this device; download promptly if durable access is needed.'\n },\n isSelf: {\n type: 'boolean',\n description: 'True if this user represents the authenticated account\\'s own identity.'\n },\n phoneNumber: {\n type: 'string',\n description: 'User\\'s phone number in E.164 format (e.g., \\'+14155552671\\'). Omit if unknown.'\n },\n username: {\n type: 'string',\n description: 'Human-readable handle if available (e.g., \\'@alice\\'). May be network-specific and not globally unique.'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
19+
description: 'List connected accounts on this device.',
2220
inputSchema: {
2321
type: 'object',
24-
properties: {
25-
jq_filter: {
26-
type: 'string',
27-
title: 'jq Filter',
28-
description:
29-
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
30-
},
31-
},
22+
properties: {},
3223
required: [],
3324
},
3425
annotations: {
@@ -37,8 +28,7 @@ export const tool: Tool = {
3728
};
3829

3930
export const handler = async (client: BeeperDesktop, args: Record<string, unknown> | undefined) => {
40-
const { jq_filter } = args as any;
41-
return asTextContentResult(await maybeFilter(jq_filter, await client.accounts.list()));
31+
return asTextContentResult(await client.accounts.list());
4232
};
4333

4434
export default { metadata, tool, handler };

packages/mcp-server/src/tools/chats/archive-chat.ts

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

3-
import { maybeFilter } from '@beeper/desktop-mcp/filtering';
43
import { Metadata, asTextContentResult } from '@beeper/desktop-mcp/tools/types';
54

65
import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,8 +16,7 @@ export const metadata: Metadata = {
1716

1817
export const tool: Tool = {
1918
name: 'archive_chat',
20-
description:
21-
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nArchive or unarchive a chat.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/base_response',\n $defs: {\n base_response: {\n type: 'object',\n properties: {\n success: {\n type: 'boolean'\n },\n error: {\n type: 'string'\n }\n },\n required: [ 'success'\n ]\n }\n }\n}\n```",
19+
description: 'Archive or unarchive a chat.',
2220
inputSchema: {
2321
type: 'object',
2422
properties: {
@@ -31,21 +29,15 @@ export const tool: Tool = {
3129
type: 'boolean',
3230
description: 'True to archive, false to unarchive',
3331
},
34-
jq_filter: {
35-
type: 'string',
36-
title: 'jq Filter',
37-
description:
38-
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
39-
},
4032
},
4133
required: ['chatID'],
4234
},
4335
annotations: {},
4436
};
4537

4638
export const handler = async (client: BeeperDesktop, args: Record<string, unknown> | undefined) => {
47-
const { chatID, jq_filter, ...body } = args as any;
48-
return asTextContentResult(await maybeFilter(jq_filter, await client.chats.archive(chatID, body)));
39+
const { chatID, ...body } = args as any;
40+
return asTextContentResult(await client.chats.archive(chatID, body));
4941
};
5042

5143
export default { metadata, tool, handler };

packages/mcp-server/src/tools/chats/get-chat.ts

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

3-
import { maybeFilter } from '@beeper/desktop-mcp/filtering';
43
import { Metadata, asTextContentResult } from '@beeper/desktop-mcp/tools/types';
54

65
import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,8 +16,7 @@ export const metadata: Metadata = {
1716

1817
export const tool: Tool = {
1918
name: 'get_chat',
20-
description:
21-
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nGet chat details: metadata, participants (limited), last activity.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/chat',\n $defs: {\n chat: {\n type: 'object',\n properties: {\n id: {\n type: 'string',\n description: 'Unique identifier of the chat (room/thread ID, same as id) across Beeper.'\n },\n accountID: {\n type: 'string',\n description: 'Beeper account ID this chat belongs to.'\n },\n network: {\n type: 'string',\n description: 'Display-only human-readable network name (e.g., \\'WhatsApp\\', \\'Messenger\\').'\n },\n participants: {\n type: 'object',\n description: 'Chat participants information.',\n properties: {\n hasMore: {\n type: 'boolean',\n description: 'True if there are more participants than included in items.'\n },\n items: {\n type: 'array',\n description: 'Participants returned for this chat (limited by the request; may be a subset).',\n items: {\n $ref: '#/$defs/user'\n }\n },\n total: {\n type: 'integer',\n description: 'Total number of participants in the chat.'\n }\n },\n required: [ 'hasMore',\n 'items',\n 'total'\n ]\n },\n title: {\n type: 'string',\n description: 'Display title of the chat as computed by the client/server.'\n },\n type: {\n type: 'string',\n description: 'Chat type: \\'single\\' for direct messages, \\'group\\' for group chats.',\n enum: [ 'single',\n 'group'\n ]\n },\n unreadCount: {\n type: 'integer',\n description: 'Number of unread messages.'\n },\n isArchived: {\n type: 'boolean',\n description: 'True if chat is archived.'\n },\n isMuted: {\n type: 'boolean',\n description: 'True if chat notifications are muted.'\n },\n isPinned: {\n type: 'boolean',\n description: 'True if chat is pinned.'\n },\n lastActivity: {\n type: 'string',\n description: 'Timestamp of last activity. Chats with more recent activity are often more important.',\n format: 'date-time'\n },\n lastReadMessageSortKey: {\n anyOf: [ {\n type: 'integer'\n },\n {\n type: 'string'\n }\n ],\n description: 'Last read message sortKey (hsOrder). Used to compute \\'isUnread\\'.'\n },\n localChatID: {\n type: 'string',\n description: 'Local chat ID specific to this Beeper Desktop installation.'\n }\n },\n required: [ 'id',\n 'accountID',\n 'network',\n 'participants',\n 'title',\n 'type',\n 'unreadCount'\n ]\n },\n user: {\n type: 'object',\n description: 'User the account belongs to.',\n properties: {\n id: {\n type: 'string',\n description: 'Stable Beeper user ID. Use as the primary key when referencing a person.'\n },\n cannotMessage: {\n type: 'boolean',\n description: 'True if Beeper cannot initiate messages to this user (e.g., blocked, network restriction, or no DM path). The user may still message you.'\n },\n email: {\n type: 'string',\n description: 'Email address if known. Not guaranteed verified.'\n },\n fullName: {\n type: 'string',\n description: 'Display name as shown in clients (e.g., \\'Alice Example\\'). May include emojis.'\n },\n imgURL: {\n type: 'string',\n description: 'Avatar image URL if available. May be temporary or local-only to this device; download promptly if durable access is needed.'\n },\n isSelf: {\n type: 'boolean',\n description: 'True if this user represents the authenticated account\\'s own identity.'\n },\n phoneNumber: {\n type: 'string',\n description: 'User\\'s phone number in E.164 format (e.g., \\'+14155552671\\'). Omit if unknown.'\n },\n username: {\n type: 'string',\n description: 'Human-readable handle if available (e.g., \\'@alice\\'). May be network-specific and not globally unique.'\n }\n },\n required: [ 'id'\n ]\n }\n }\n}\n```",
19+
description: 'Get chat details: metadata, participants (limited), last activity.',
2220
inputSchema: {
2321
type: 'object',
2422
properties: {
@@ -32,12 +30,6 @@ export const tool: Tool = {
3230
description:
3331
'Maximum number of participants to return. Use -1 for all; otherwise 0–500. Defaults to 20.',
3432
},
35-
jq_filter: {
36-
type: 'string',
37-
title: 'jq Filter',
38-
description:
39-
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
40-
},
4133
},
4234
required: ['chatID'],
4335
},
@@ -47,8 +39,8 @@ export const tool: Tool = {
4739
};
4840

4941
export const handler = async (client: BeeperDesktop, args: Record<string, unknown> | undefined) => {
50-
const { chatID, jq_filter, ...body } = args as any;
51-
return asTextContentResult(await maybeFilter(jq_filter, await client.chats.retrieve(chatID, body)));
42+
const { chatID, ...body } = args as any;
43+
return asTextContentResult(await client.chats.retrieve(chatID, body));
5244
};
5345

5446
export default { metadata, tool, handler };

packages/mcp-server/src/tools/chats/reminders/clear-chat-reminder.ts

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

3-
import { maybeFilter } from '@beeper/desktop-mcp/filtering';
43
import { Metadata, asTextContentResult } from '@beeper/desktop-mcp/tools/types';
54

65
import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,8 +16,7 @@ export const metadata: Metadata = {
1716

1817
export const tool: Tool = {
1918
name: 'clear_chat_reminder',
20-
description:
21-
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nClear a chat reminder.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/base_response',\n $defs: {\n base_response: {\n type: 'object',\n properties: {\n success: {\n type: 'boolean'\n },\n error: {\n type: 'string'\n }\n },\n required: [ 'success'\n ]\n }\n }\n}\n```",
19+
description: 'Clear a chat reminder.',
2220
inputSchema: {
2321
type: 'object',
2422
properties: {
@@ -27,12 +25,6 @@ export const tool: Tool = {
2725
description:
2826
'The identifier of the chat to clear reminder from (accepts both chatID and local chat ID)',
2927
},
30-
jq_filter: {
31-
type: 'string',
32-
title: 'jq Filter',
33-
description:
34-
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
35-
},
3628
},
3729
required: ['chatID'],
3830
},
@@ -42,8 +34,8 @@ export const tool: Tool = {
4234
};
4335

4436
export const handler = async (client: BeeperDesktop, args: Record<string, unknown> | undefined) => {
45-
const { chatID, jq_filter, ...body } = args as any;
46-
return asTextContentResult(await maybeFilter(jq_filter, await client.chats.reminders.delete(chatID)));
37+
const { chatID, ...body } = args as any;
38+
return asTextContentResult(await client.chats.reminders.delete(chatID));
4739
};
4840

4941
export default { metadata, tool, handler };

packages/mcp-server/src/tools/chats/reminders/set-chat-reminder.ts

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

3-
import { maybeFilter } from '@beeper/desktop-mcp/filtering';
43
import { Metadata, asTextContentResult } from '@beeper/desktop-mcp/tools/types';
54

65
import { Tool } from '@modelcontextprotocol/sdk/types.js';
@@ -17,8 +16,7 @@ export const metadata: Metadata = {
1716

1817
export const tool: Tool = {
1918
name: 'set_chat_reminder',
20-
description:
21-
"When using this tool, always use the `jq_filter` parameter to reduce the response size and improve performance.\n\nOnly omit if you're sure you don't need the data.\n\nSet a reminder for a chat at a specific time.\n\n# Response Schema\n```json\n{\n $ref: '#/$defs/base_response',\n $defs: {\n base_response: {\n type: 'object',\n properties: {\n success: {\n type: 'boolean'\n },\n error: {\n type: 'string'\n }\n },\n required: [ 'success'\n ]\n }\n }\n}\n```",
19+
description: 'Set a reminder for a chat at a specific time.',
2220
inputSchema: {
2321
type: 'object',
2422
properties: {
@@ -41,21 +39,15 @@ export const tool: Tool = {
4139
},
4240
required: ['remindAtMs'],
4341
},
44-
jq_filter: {
45-
type: 'string',
46-
title: 'jq Filter',
47-
description:
48-
'A jq filter to apply to the response to include certain fields. Consult the output schema in the tool description to see the fields that are available.\n\nFor example: to include only the `name` field in every object of a results array, you can provide ".results[].name".\n\nFor more information, see the [jq documentation](https://jqlang.org/manual/).',
49-
},
5042
},
5143
required: ['chatID', 'reminder'],
5244
},
5345
annotations: {},
5446
};
5547

5648
export const handler = async (client: BeeperDesktop, args: Record<string, unknown> | undefined) => {
57-
const { chatID, jq_filter, ...body } = args as any;
58-
return asTextContentResult(await maybeFilter(jq_filter, await client.chats.reminders.create(chatID, body)));
49+
const { chatID, ...body } = args as any;
50+
return asTextContentResult(await client.chats.reminders.create(chatID, body));
5951
};
6052

6153
export default { metadata, tool, handler };

0 commit comments

Comments
 (0)