@relaycast/mcp 0.5.1 → 0.5.3

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 (58) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/piggyback.d.ts +12 -1
  6. package/dist/piggyback.d.ts.map +1 -1
  7. package/dist/piggyback.js +39 -16
  8. package/dist/piggyback.js.map +1 -1
  9. package/dist/prompts.d.ts +1 -1
  10. package/dist/prompts.d.ts.map +1 -1
  11. package/dist/prompts.js +9 -9
  12. package/dist/resources/definitions.d.ts +6 -1
  13. package/dist/resources/definitions.d.ts.map +1 -1
  14. package/dist/resources/definitions.js +38 -12
  15. package/dist/resources/definitions.js.map +1 -1
  16. package/dist/server.d.ts +5 -0
  17. package/dist/server.d.ts.map +1 -1
  18. package/dist/server.js +177 -38
  19. package/dist/server.js.map +1 -1
  20. package/dist/stdio.js +12 -7
  21. package/dist/stdio.js.map +1 -1
  22. package/dist/tool-aliases.d.ts +67 -0
  23. package/dist/tool-aliases.d.ts.map +1 -0
  24. package/dist/tool-aliases.js +71 -0
  25. package/dist/tool-aliases.js.map +1 -0
  26. package/dist/tools/channels.d.ts +5 -2
  27. package/dist/tools/channels.d.ts.map +1 -1
  28. package/dist/tools/channels.js +32 -21
  29. package/dist/tools/channels.js.map +1 -1
  30. package/dist/tools/features.d.ts +4 -1
  31. package/dist/tools/features.d.ts.map +1 -1
  32. package/dist/tools/features.js +28 -20
  33. package/dist/tools/features.js.map +1 -1
  34. package/dist/tools/messaging.d.ts +7 -1
  35. package/dist/tools/messaging.d.ts.map +1 -1
  36. package/dist/tools/messaging.js +34 -21
  37. package/dist/tools/messaging.js.map +1 -1
  38. package/dist/tools/programmability.d.ts +7 -1
  39. package/dist/tools/programmability.d.ts.map +1 -1
  40. package/dist/tools/programmability.js +22 -18
  41. package/dist/tools/programmability.js.map +1 -1
  42. package/dist/tools/registration.d.ts +4 -1
  43. package/dist/tools/registration.d.ts.map +1 -1
  44. package/dist/tools/registration.js +317 -21
  45. package/dist/tools/registration.js.map +1 -1
  46. package/dist/transports.d.ts +1 -1
  47. package/dist/transports.d.ts.map +1 -1
  48. package/dist/transports.js +128 -48
  49. package/dist/transports.js.map +1 -1
  50. package/dist/types.d.ts +23 -0
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/types.js +4 -0
  53. package/dist/types.js.map +1 -1
  54. package/dist/workspaces.d.ts +69 -0
  55. package/dist/workspaces.d.ts.map +1 -0
  56. package/dist/workspaces.js +134 -0
  57. package/dist/workspaces.js.map +1 -0
  58. package/package.json +3 -3
@@ -1,54 +1,59 @@
1
1
  import { z } from 'zod';
2
+ import { identityOverrideInputShape, workspaceRoutingInputShape, workspaceRefFromArgs, } from '../workspaces.js';
2
3
  /** Passthrough object schema for dynamic API responses. */
3
4
  const jsonResult = z.object({}).passthrough();
4
5
  export function registerChannelTools(server, getAgentClient) {
5
- server.registerTool('create_channel', {
6
+ server.registerTool('channel.create', {
6
7
  title: 'Create Channel',
7
8
  description: 'Create a new communication channel in the workspace. Channels are the primary way for agents to broadcast and receive messages in a shared context. Channel names must be lowercase with no spaces, similar to Slack channel naming conventions. Optionally set an initial topic to describe the channel\'s purpose.',
8
9
  inputSchema: {
9
10
  name: z.string().describe('Unique channel name using lowercase letters, numbers, and hyphens (e.g. "build-alerts", "team-chat")'),
10
11
  topic: z.string().optional().describe('Short description of the channel\'s purpose, visible to all members when they view channel details'),
12
+ ...identityOverrideInputShape,
11
13
  },
12
14
  outputSchema: jsonResult,
13
15
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
14
- }, async ({ name, topic }) => {
15
- const client = getAgentClient();
16
+ }, async ({ name, topic, as: asIdentity }) => {
17
+ const client = getAgentClient(undefined, asIdentity);
16
18
  const channel = await client.channels.create({ name, topic });
17
19
  return {
18
20
  content: [{ type: 'text', text: JSON.stringify(channel, null, 2) }],
19
21
  structuredContent: channel,
20
22
  };
21
23
  });
22
- server.registerTool('list_channels', {
24
+ server.registerTool('channel.list', {
23
25
  title: 'List Channels',
24
26
  description: 'List all channels available in the workspace. Returns each channel\'s name, topic, member count, and creation date. By default only active channels are shown; set include_archived to true to also see archived channels.',
25
27
  inputSchema: {
26
28
  include_archived: z.boolean().optional().describe('When true, include archived channels in the response alongside active ones'),
29
+ ...workspaceRoutingInputShape,
30
+ ...identityOverrideInputShape,
27
31
  },
28
32
  outputSchema: {
29
33
  channels: z.array(z.object({}).passthrough()).describe('Array of channel objects with name, topic, and member details'),
30
34
  },
31
35
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
32
- }, async ({ include_archived }) => {
33
- const client = getAgentClient();
36
+ }, async ({ include_archived, workspace_id, workspace_alias, as: asIdentity }) => {
37
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }), asIdentity);
34
38
  const channels = await client.channels.list(include_archived ? { includeArchived: include_archived } : undefined);
35
39
  return {
36
40
  content: [{ type: 'text', text: JSON.stringify(channels, null, 2) }],
37
41
  structuredContent: { channels: channels },
38
42
  };
39
43
  });
40
- server.registerTool('join_channel', {
44
+ server.registerTool('channel.join', {
41
45
  title: 'Join Channel',
42
46
  description: 'Join an existing channel to start receiving its messages. The agent will appear in the channel\'s member list and can post messages after joining. This operation is idempotent — joining a channel you are already a member of has no effect.',
43
47
  inputSchema: {
44
48
  channel: z.string().describe('Name of the channel to join (e.g. "general", "build-alerts")'),
49
+ ...identityOverrideInputShape,
45
50
  },
46
51
  outputSchema: {
47
52
  message: z.string().describe('Confirmation message indicating the channel was joined'),
48
53
  },
49
54
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
50
- }, async ({ channel }) => {
51
- const client = getAgentClient();
55
+ }, async ({ channel, as: asIdentity }) => {
56
+ const client = getAgentClient(undefined, asIdentity);
52
57
  await client.channels.join(channel);
53
58
  const message = `Joined channel #${channel}`;
54
59
  return {
@@ -56,18 +61,19 @@ export function registerChannelTools(server, getAgentClient) {
56
61
  structuredContent: { message },
57
62
  };
58
63
  });
59
- server.registerTool('leave_channel', {
64
+ server.registerTool('channel.leave', {
60
65
  title: 'Leave Channel',
61
66
  description: 'Leave a channel to stop receiving its messages. The agent is removed from the channel\'s member list but the channel and its history are preserved. You can rejoin at any time. This operation is idempotent — leaving a channel you are not a member of has no effect.',
62
67
  inputSchema: {
63
68
  channel: z.string().describe('Name of the channel to leave (e.g. "general", "build-alerts")'),
69
+ ...identityOverrideInputShape,
64
70
  },
65
71
  outputSchema: {
66
72
  message: z.string().describe('Confirmation message indicating the channel was left'),
67
73
  },
68
74
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
69
- }, async ({ channel }) => {
70
- const client = getAgentClient();
75
+ }, async ({ channel, as: asIdentity }) => {
76
+ const client = getAgentClient(undefined, asIdentity);
71
77
  await client.channels.leave(channel);
72
78
  const message = `Left channel #${channel}`;
73
79
  return {
@@ -75,19 +81,20 @@ export function registerChannelTools(server, getAgentClient) {
75
81
  structuredContent: { message },
76
82
  };
77
83
  });
78
- server.registerTool('invite_to_channel', {
84
+ server.registerTool('channel.invite', {
79
85
  title: 'Invite to Channel',
80
86
  description: 'Invite another agent to join a channel. The invited agent is automatically added as a member and will begin receiving messages from the channel. This is useful for onboarding new agents into specific conversations or workflows.',
81
87
  inputSchema: {
82
88
  channel: z.string().describe('Name of the channel to invite the agent to (e.g. "general", "build-alerts")'),
83
89
  agent: z.string().describe('Name of the registered agent to invite into the channel'),
90
+ ...identityOverrideInputShape,
84
91
  },
85
92
  outputSchema: {
86
93
  message: z.string().describe('Confirmation message indicating the agent was invited'),
87
94
  },
88
95
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
89
- }, async ({ channel, agent }) => {
90
- const client = getAgentClient();
96
+ }, async ({ channel, agent, as: asIdentity }) => {
97
+ const client = getAgentClient(undefined, asIdentity);
91
98
  await client.channels.invite(channel, agent);
92
99
  const message = `Invited ${agent} to #${channel}`;
93
100
  return {
@@ -95,35 +102,39 @@ export function registerChannelTools(server, getAgentClient) {
95
102
  structuredContent: { message },
96
103
  };
97
104
  });
98
- server.registerTool('set_channel_topic', {
105
+ server.registerTool('channel.set_topic', {
99
106
  title: 'Set Channel Topic',
100
107
  description: 'Update the topic description for a channel. The topic is a short text visible to all members that describes the channel\'s current purpose or focus. Changing the topic does not send a notification to channel members.',
101
108
  inputSchema: {
102
109
  channel: z.string().describe('Name of the channel whose topic should be updated'),
103
110
  topic: z.string().describe('New topic text describing the channel\'s purpose or current focus'),
111
+ ...workspaceRoutingInputShape,
112
+ ...identityOverrideInputShape,
104
113
  },
105
114
  outputSchema: jsonResult,
106
115
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
107
- }, async ({ channel, topic }) => {
108
- const client = getAgentClient();
116
+ }, async ({ channel, topic, workspace_id, workspace_alias, as: asIdentity }) => {
117
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }), asIdentity);
109
118
  const updated = await client.channels.setTopic(channel, topic);
110
119
  return {
111
120
  content: [{ type: 'text', text: JSON.stringify(updated, null, 2) }],
112
121
  structuredContent: updated,
113
122
  };
114
123
  });
115
- server.registerTool('archive_channel', {
124
+ server.registerTool('channel.archive', {
116
125
  title: 'Archive Channel',
117
126
  description: 'Archive a channel to remove it from the active channel list. Archived channels preserve their full message history but no new messages can be posted. This is a soft delete — the channel can be restored later if needed. Use this to clean up channels that are no longer in use.',
118
127
  inputSchema: {
119
128
  channel: z.string().describe('Name of the channel to archive (e.g. "old-project", "temp-discussion")'),
129
+ ...workspaceRoutingInputShape,
130
+ ...identityOverrideInputShape,
120
131
  },
121
132
  outputSchema: {
122
133
  message: z.string().describe('Confirmation message indicating the channel was archived'),
123
134
  },
124
135
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true },
125
- }, async ({ channel }) => {
126
- const client = getAgentClient();
136
+ }, async ({ channel, workspace_id, workspace_alias, as: asIdentity }) => {
137
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }), asIdentity);
127
138
  await client.channels.archive(channel);
128
139
  const message = `Archived channel #${channel}`;
129
140
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/tools/channels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/tools/channels.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,2DAA2D;AAC3D,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAE9C,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,cAA6G;IAE7G,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,sTAAsT;QACnU,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sGAAsG,CAAC;YACjI,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oGAAoG,CAAC;YAC3I,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACxC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACnE,iBAAiB,EAAE,OAA6C;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,4NAA4N;QACzO,WAAW,EAAE;YACX,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;YAC/H,GAAG,0BAA0B;YAC7B,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE;YACZ,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,+DAA+D,CAAC;SACxH;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EACD,KAAK,EAAE,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC5E,MAAM,MAAM,GAAG,cAAc,CAC3B,oBAAoB,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,EACvD,UAAU,CACX,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CACzC,gBAAgB,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,SAAS,CACrE,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACpE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,QAAgD,EAAE;SAClF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,gPAAgP;QAC7P,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;YAC5F,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SACvF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,mBAAmB,OAAO,EAAE,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC1C,iBAAiB,EAAE,EAAE,OAAO,EAAE;SAC/B,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,yQAAyQ;QACtR,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;YAC7F,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;SACrF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,iBAAiB,OAAO,EAAE,CAAC;QAC3C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC1C,iBAAiB,EAAE,EAAE,OAAO,EAAE;SAC/B,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,qOAAqO;QAClP,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;YAC3G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YACrF,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;SACtF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,WAAW,KAAK,QAAQ,OAAO,EAAE,CAAC;QAClD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC1C,iBAAiB,EAAE,EAAE,OAAO,EAAE;SAC/B,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,0NAA0N;QACvO,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;YAC/F,GAAG,0BAA0B;YAC7B,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC1E,MAAM,MAAM,GAAG,cAAc,CAC3B,oBAAoB,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,EACvD,UAAU,CACX,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACnE,iBAAiB,EAAE,OAA6C;SACjE,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,qRAAqR;QAClS,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;YACtG,GAAG,0BAA0B;YAC7B,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;SACzF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACnE,MAAM,MAAM,GAAG,cAAc,CAC3B,oBAAoB,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,EACvD,UAAU,CACX,CAAC;QACF,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,qBAAqB,OAAO,EAAE,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC1C,iBAAiB,EAAE,EAAE,OAAO,EAAE;SAC/B,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { AgentClient } from '@relaycast/sdk';
3
- export declare function registerFeatureTools(server: McpServer, getAgentClient: () => AgentClient): void;
3
+ export declare function registerFeatureTools(server: McpServer, getAgentClient: (wsRouting?: {
4
+ workspace_id?: string;
5
+ workspace_alias?: string;
6
+ }, as?: string) => AgentClient): void;
4
7
  //# sourceMappingURL=features.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/tools/features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMlD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,MAAM,WAAW,GAChC,IAAI,CA6IN"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/tools/features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAWlD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,WAAW,GAC5G,IAAI,CAuJN"}
@@ -1,21 +1,23 @@
1
1
  import { z } from 'zod';
2
2
  import { resolveEmoji } from '@relaycast/types';
3
+ import { identityOverrideInputShape, workspaceRoutingInputShape, workspaceRefFromArgs, } from '../workspaces.js';
3
4
  /** Passthrough object schema for dynamic API responses. */
4
5
  const jsonResult = z.object({}).passthrough();
5
6
  export function registerFeatureTools(server, getAgentClient) {
6
- server.registerTool('add_reaction', {
7
+ server.registerTool('message.reaction.add', {
7
8
  title: 'Add Reaction',
8
9
  description: 'Add an emoji reaction to a message. Reactions are a lightweight way for agents to acknowledge, vote on, or express sentiment about messages without posting a reply. Each agent can add multiple different emoji reactions to the same message. Adding a reaction that already exists from the same agent has no effect.',
9
10
  inputSchema: {
10
11
  message_id: z.string().describe('ID of the message to react to'),
11
12
  emoji: z.string().describe('Emoji character or shortcode to react with (e.g. "thumbsup", "rocket", "check")'),
13
+ ...identityOverrideInputShape,
12
14
  },
13
15
  outputSchema: {
14
16
  message: z.string().describe('Confirmation message indicating the reaction was added'),
15
17
  },
16
18
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
17
- }, async ({ message_id, emoji }) => {
18
- const client = getAgentClient();
19
+ }, async ({ message_id, emoji, as: asIdentity }) => {
20
+ const client = getAgentClient(undefined, asIdentity);
19
21
  const resolved = resolveEmoji(emoji);
20
22
  await client.react(message_id, resolved);
21
23
  const message = `Reacted with ${resolved}`;
@@ -24,19 +26,20 @@ export function registerFeatureTools(server, getAgentClient) {
24
26
  structuredContent: { message },
25
27
  };
26
28
  });
27
- server.registerTool('remove_reaction', {
29
+ server.registerTool('message.reaction.remove', {
28
30
  title: 'Remove Reaction',
29
31
  description: 'Remove a previously added emoji reaction from a message. Only reactions added by the current agent can be removed. This is useful for correcting accidental reactions or changing your response to a message.',
30
32
  inputSchema: {
31
33
  message_id: z.string().describe('ID of the message to remove the reaction from'),
32
34
  emoji: z.string().describe('Emoji character or shortcode to remove (must match a reaction previously added by this agent)'),
35
+ ...identityOverrideInputShape,
33
36
  },
34
37
  outputSchema: {
35
38
  message: z.string().describe('Confirmation message indicating the reaction was removed'),
36
39
  },
37
40
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
38
- }, async ({ message_id, emoji }) => {
39
- const client = getAgentClient();
41
+ }, async ({ message_id, emoji, as: asIdentity }) => {
42
+ const client = getAgentClient(undefined, asIdentity);
40
43
  const resolved = resolveEmoji(emoji);
41
44
  await client.unreact(message_id, resolved);
42
45
  const message = `Removed reaction ${resolved}`;
@@ -45,7 +48,7 @@ export function registerFeatureTools(server, getAgentClient) {
45
48
  structuredContent: { message },
46
49
  };
47
50
  });
48
- server.registerTool('search_messages', {
51
+ server.registerTool('message.search', {
49
52
  title: 'Search Messages',
50
53
  description: 'Search for messages across all channels in the workspace using a text query. Results can be filtered by channel name or sender agent to narrow down matches. Returns matching messages with their channel, author, text content, and timestamp.',
51
54
  inputSchema: {
@@ -53,47 +56,51 @@ export function registerFeatureTools(server, getAgentClient) {
53
56
  channel: z.string().optional().describe('Restrict search results to messages in this channel only'),
54
57
  from: z.string().optional().describe('Restrict search results to messages sent by this agent name'),
55
58
  limit: z.number().optional().describe('Maximum number of search results to return'),
59
+ ...workspaceRoutingInputShape,
60
+ ...identityOverrideInputShape,
56
61
  },
57
62
  outputSchema: {
58
63
  results: z.array(z.object({}).passthrough()).describe('Array of matching message objects'),
59
64
  },
60
65
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
61
- }, async ({ query, channel, from, limit }) => {
62
- const client = getAgentClient();
66
+ }, async ({ query, channel, from, limit, workspace_id, workspace_alias, as: asIdentity }) => {
67
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }), asIdentity);
63
68
  const results = await client.search(query, { channel, from, limit });
64
69
  return {
65
70
  content: [{ type: 'text', text: JSON.stringify(results, null, 2) }],
66
71
  structuredContent: { results: results },
67
72
  };
68
73
  });
69
- server.registerTool('check_inbox', {
74
+ server.registerTool('message.inbox.check', {
70
75
  title: 'Check Inbox',
71
76
  description: 'Check the current agent\'s inbox for unread messages, @mentions, and direct messages. The inbox aggregates all notifications across channels and DMs into a single view. Use this to stay up-to-date on conversations that require your attention.',
72
77
  inputSchema: {
73
78
  limit: z.number().optional().describe('Maximum number of inbox items to return'),
79
+ ...identityOverrideInputShape,
74
80
  },
75
81
  outputSchema: jsonResult,
76
82
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
77
- }, async () => {
78
- const client = getAgentClient();
79
- const inbox = await client.inbox();
83
+ }, async ({ limit, as: asIdentity }) => {
84
+ const client = getAgentClient(undefined, asIdentity);
85
+ const inbox = await client.inbox(limit != null ? { limit } : undefined);
80
86
  return {
81
87
  content: [{ type: 'text', text: JSON.stringify(inbox, null, 2) }],
82
88
  structuredContent: inbox,
83
89
  };
84
90
  });
85
- server.registerTool('mark_read', {
91
+ server.registerTool('message.inbox.mark_read', {
86
92
  title: 'Mark as Read',
87
93
  description: 'Mark a specific message as read by the current agent. This updates the agent\'s read receipt for the message, which other agents can query using get_readers. Marking a message as read also clears it from the agent\'s inbox notifications.',
88
94
  inputSchema: {
89
95
  message_id: z.string().describe('ID of the message to mark as read by the current agent'),
96
+ ...identityOverrideInputShape,
90
97
  },
91
98
  outputSchema: {
92
99
  message: z.string().describe('Confirmation message indicating the message was marked as read'),
93
100
  },
94
101
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
95
- }, async ({ message_id }) => {
96
- const client = getAgentClient();
102
+ }, async ({ message_id, as: asIdentity }) => {
103
+ const client = getAgentClient(undefined, asIdentity);
97
104
  await client.markRead(message_id);
98
105
  const message = `Marked message ${message_id} as read`;
99
106
  return {
@@ -101,7 +108,7 @@ export function registerFeatureTools(server, getAgentClient) {
101
108
  structuredContent: { message },
102
109
  };
103
110
  });
104
- server.registerTool('get_readers', {
111
+ server.registerTool('message.inbox.get_readers', {
105
112
  title: 'Get Readers',
106
113
  description: 'Get the list of agents who have read a specific message. Returns each reader\'s agent name and the timestamp when they marked the message as read. This is useful for confirming that important messages have been seen by their intended audience.',
107
114
  inputSchema: {
@@ -119,18 +126,19 @@ export function registerFeatureTools(server, getAgentClient) {
119
126
  structuredContent: { readers: readers },
120
127
  };
121
128
  });
122
- server.registerTool('upload_file', {
129
+ server.registerTool('message.file.upload', {
123
130
  title: 'Upload File',
124
131
  description: 'Upload a file to the workspace and receive an attachment ID that can be used when posting messages. Files are stored securely and can be shared across channels and DMs. Provide the filename, MIME type, and size in bytes to initiate the upload. The returned attachment ID should be passed to post_message or send_dm to attach the file.',
125
132
  inputSchema: {
126
133
  filename: z.string().describe('Name of the file including extension (e.g. "report.pdf", "screenshot.png")'),
127
134
  content_type: z.string().describe('MIME type of the file content (e.g. "text/plain", "image/png", "application/pdf")'),
128
135
  size_bytes: z.number().describe('Size of the file in bytes, used for upload validation and storage allocation'),
136
+ ...identityOverrideInputShape,
129
137
  },
130
138
  outputSchema: jsonResult,
131
139
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
132
- }, async ({ filename, content_type, size_bytes }) => {
133
- const client = getAgentClient();
140
+ }, async ({ filename, content_type, size_bytes, as: asIdentity }) => {
141
+ const client = getAgentClient(undefined, asIdentity);
134
142
  const upload = await client.files.upload({ filename, contentType: content_type, sizeBytes: size_bytes });
135
143
  return {
136
144
  content: [{ type: 'text', text: JSON.stringify(upload, null, 2) }],
@@ -1 +1 @@
1
- {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/tools/features.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/tools/features.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,2DAA2D;AAC3D,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AAE9C,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,cAA6G;IAE7G,MAAM,CAAC,YAAY,CAAC,sBAAsB,EAAE;QAC1C,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,0TAA0T;QACvU,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;YAC7G,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;SACvF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,gBAAgB,QAAQ,EAAE,CAAC;QAC3C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACnD,iBAAiB,EAAE,EAAE,OAAO,EAAE;SAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,yBAAyB,EAAE;QAC7C,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,+MAA+M;QAC5N,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;YAChF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+FAA+F,CAAC;YAC3H,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;SACzF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,oBAAoB,QAAQ,EAAE,CAAC;QAC/C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACnD,iBAAiB,EAAE,EAAE,OAAO,EAAE;SAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE;QACpC,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,iPAAiP;QAC9P,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YAChF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;YACnG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;YACnG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACnF,GAAG,0BAA0B;YAC7B,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SAC3F;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC1F,MAAM,MAAM,GAAG,cAAc,CAC3B,oBAAoB,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,EACvD,UAAU,CACX,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC5E,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAA+C,EAAE;SAChF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,qBAAqB,EAAE;QACzC,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,oPAAoP;QACjQ,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YAChF,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1E,iBAAiB,EAAE,KAA2C;SAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,yBAAyB,EAAE;QAC7C,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,+OAA+O;QAC5P,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;YACzF,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;SAC/F;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACxG,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,kBAAkB,UAAU,UAAU,CAAC;QACvD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACnD,iBAAiB,EAAE,EAAE,OAAO,EAAE;SAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,2BAA2B,EAAE;QAC/C,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,qPAAqP;QAClQ,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;SAChF;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;SACpH;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACvG,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC5E,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAA+C,EAAE;SAChF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,qBAAqB,EAAE;QACzC,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,gVAAgV;QAC7V,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;YAC3G,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;YACtH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;YAC/G,GAAG,0BAA0B;SAC9B;QACD,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACzG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAClE,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QACzG,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAC3E,iBAAiB,EAAE,MAA4C;SAChE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,10 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { AgentClient } from '@relaycast/sdk';
3
- export declare function registerMessagingTools(server: McpServer, getAgentClient: () => AgentClient): void;
3
+ /** Workspace routing arg type extracted from tool input. */
4
+ type WsRouting = {
5
+ workspace_id?: string;
6
+ workspace_alias?: string;
7
+ };
8
+ export declare function registerMessagingTools(server: McpServer, getAgentClient: (wsRouting?: WsRouting, as?: string) => AgentClient): void;
9
+ export {};
4
10
  //# sourceMappingURL=messaging.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/tools/messaging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKlD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,MAAM,WAAW,GAChC,IAAI,CAuIN"}
1
+ {"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/tools/messaging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAOlD,4DAA4D;AAC5D,KAAK,SAAS,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAKrE,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,cAAc,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,WAAW,GAClE,IAAI,CAmJN"}
@@ -1,26 +1,29 @@
1
1
  import { z } from 'zod';
2
+ import { identityOverrideInputShape, workspaceRoutingInputShape, workspaceRefFromArgs, } from '../workspaces.js';
2
3
  /** Passthrough object schema for dynamic API responses. */
3
4
  const jsonResult = z.object({}).passthrough();
4
5
  export function registerMessagingTools(server, getAgentClient) {
5
- server.registerTool('post_message', {
6
+ server.registerTool('message.post', {
6
7
  title: 'Post Message',
7
8
  description: 'Post a new message to a channel. The message is sent as the currently registered agent and appears in real-time for all channel members. Optionally attach files by providing their upload IDs. The agent must be a member of the channel to post.',
8
9
  inputSchema: {
9
10
  channel: z.string().describe('Name of the channel to post the message to (e.g. "general", "build-alerts")'),
10
11
  text: z.string().describe('The message body text, which may include @mentions of other agents'),
11
12
  attachments: z.array(z.string()).optional().describe('Array of file attachment IDs obtained from the upload_file tool'),
13
+ ...workspaceRoutingInputShape,
14
+ ...identityOverrideInputShape,
12
15
  },
13
16
  outputSchema: jsonResult,
14
17
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
15
- }, async ({ channel, text, attachments }) => {
16
- const client = getAgentClient();
18
+ }, async ({ channel, text, attachments, workspace_id, workspace_alias, as: asIdentity }) => {
19
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }), asIdentity);
17
20
  const msg = await client.send(channel, text, attachments ? { attachments } : undefined);
18
21
  return {
19
22
  content: [{ type: 'text', text: JSON.stringify(msg, null, 2) }],
20
23
  structuredContent: msg,
21
24
  };
22
25
  });
23
- server.registerTool('get_messages', {
26
+ server.registerTool('message.list', {
24
27
  title: 'Get Messages',
25
28
  description: 'Retrieve message history from a channel with optional cursor-based pagination. Returns messages in reverse chronological order, including each message\'s ID, author, text, timestamp, and reaction counts. Use the before/after cursors to page through older or newer messages.',
26
29
  inputSchema: {
@@ -28,100 +31,110 @@ export function registerMessagingTools(server, getAgentClient) {
28
31
  limit: z.number().optional().describe('Maximum number of messages to return per page (default varies by server configuration)'),
29
32
  before: z.string().optional().describe('Message ID cursor — return only messages older than this ID, used for backward pagination'),
30
33
  after: z.string().optional().describe('Message ID cursor — return only messages newer than this ID, used for forward pagination'),
34
+ ...workspaceRoutingInputShape,
31
35
  },
32
36
  outputSchema: {
33
37
  messages: z.array(z.object({}).passthrough()).describe('Array of message objects with id, author, text, and timestamp'),
34
38
  },
35
39
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
36
- }, async ({ channel, limit, before, after }) => {
37
- const client = getAgentClient();
40
+ }, async ({ channel, limit, before, after, workspace_id, workspace_alias }) => {
41
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }));
38
42
  const msgs = await client.messages(channel, { limit, before, after });
39
43
  return {
40
44
  content: [{ type: 'text', text: JSON.stringify(msgs, null, 2) }],
41
45
  structuredContent: { messages: msgs },
42
46
  };
43
47
  });
44
- server.registerTool('reply_to_thread', {
48
+ server.registerTool('message.reply', {
45
49
  title: 'Reply to Thread',
46
50
  description: 'Post a reply to an existing message thread. Threads allow focused side-conversations without cluttering the main channel timeline. The reply is associated with the parent message and visible to anyone viewing the thread. If this is the first reply, it starts a new thread on the parent message.',
47
51
  inputSchema: {
48
52
  message_id: z.string().describe('ID of the parent message to reply to, which becomes the thread root'),
49
53
  text: z.string().describe('The reply body text, which may include @mentions of other agents'),
54
+ ...workspaceRoutingInputShape,
55
+ ...identityOverrideInputShape,
50
56
  },
51
57
  outputSchema: jsonResult,
52
58
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
53
- }, async ({ message_id, text }) => {
54
- const client = getAgentClient();
59
+ }, async ({ message_id, text, workspace_id, workspace_alias, as: asIdentity }) => {
60
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }), asIdentity);
55
61
  const reply = await client.reply(message_id, text);
56
62
  return {
57
63
  content: [{ type: 'text', text: JSON.stringify(reply, null, 2) }],
58
64
  structuredContent: reply,
59
65
  };
60
66
  });
61
- server.registerTool('get_thread', {
67
+ server.registerTool('message.get_thread', {
62
68
  title: 'Get Thread',
63
69
  description: 'Retrieve a complete thread including the parent message and all its replies. Threads provide focused conversations attached to a specific message. Returns the parent message followed by replies in chronological order, with each message\'s ID, author, text, and timestamp.',
64
70
  inputSchema: {
65
71
  message_id: z.string().describe('ID of the parent message whose thread should be retrieved'),
66
72
  limit: z.number().optional().describe('Maximum number of replies to return (the parent message is always included)'),
73
+ ...workspaceRoutingInputShape,
67
74
  },
68
75
  outputSchema: jsonResult,
69
76
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
70
- }, async ({ message_id, limit }) => {
71
- const client = getAgentClient();
77
+ }, async ({ message_id, limit, workspace_id, workspace_alias }) => {
78
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }));
72
79
  const thread = await client.thread(message_id, limit ? { limit } : undefined);
73
80
  return {
74
81
  content: [{ type: 'text', text: JSON.stringify(thread, null, 2) }],
75
82
  structuredContent: thread,
76
83
  };
77
84
  });
78
- server.registerTool('send_dm', {
85
+ server.registerTool('message.dm.send', {
79
86
  title: 'Send Direct Message',
80
87
  description: 'Send a private direct message to another agent in the workspace. DMs are visible only to the sender and recipient, unlike channel messages which are visible to all members. The recipient agent must be registered in the same workspace.',
81
88
  inputSchema: {
82
89
  to: z.string().describe('Name of the registered agent to send the direct message to'),
83
90
  text: z.string().describe('The direct message body text'),
91
+ ...workspaceRoutingInputShape,
92
+ ...identityOverrideInputShape,
84
93
  },
85
94
  outputSchema: jsonResult,
86
95
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
87
- }, async ({ to, text }) => {
88
- const client = getAgentClient();
96
+ }, async ({ to, text, workspace_id, workspace_alias, as: asIdentity }) => {
97
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }), asIdentity);
89
98
  const result = await client.dm(to, text);
90
99
  return {
91
100
  content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
92
101
  structuredContent: result,
93
102
  };
94
103
  });
95
- server.registerTool('get_dms', {
104
+ server.registerTool('message.dm.list', {
96
105
  title: 'List DM Conversations',
97
106
  description: 'List all direct message conversations for the current agent. Returns a summary of each conversation including the other participant\'s name, the last message preview, and unread count. Use this to discover ongoing private conversations.',
98
107
  inputSchema: {
99
108
  limit: z.number().optional().describe('Maximum number of conversations to return'),
109
+ ...workspaceRoutingInputShape,
110
+ ...identityOverrideInputShape,
100
111
  },
101
112
  outputSchema: {
102
113
  conversations: z.array(z.object({}).passthrough()).describe('Array of DM conversation summaries'),
103
114
  },
104
115
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
105
- }, async () => {
106
- const client = getAgentClient();
116
+ }, async ({ workspace_id, workspace_alias, as: asIdentity }) => {
117
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }), asIdentity);
107
118
  const convos = await client.dms.conversations();
108
119
  return {
109
120
  content: [{ type: 'text', text: JSON.stringify(convos, null, 2) }],
110
121
  structuredContent: { conversations: convos },
111
122
  };
112
123
  });
113
- server.registerTool('send_group_dm', {
124
+ server.registerTool('message.dm.send_group', {
114
125
  title: 'Send Group DM',
115
126
  description: 'Create a new group direct message conversation with multiple agents. Group DMs allow private multi-party conversations outside of public channels. Provide a list of participant agent names and the first message to start the conversation. Optionally give the group a descriptive name.',
116
127
  inputSchema: {
117
128
  participants: z.array(z.string()).describe('Array of agent names to include in the group conversation'),
118
129
  name: z.string().optional().describe('Optional display name for the group conversation (e.g. "Backend Team", "Project Alpha")'),
119
130
  text: z.string().describe('The first message to send to the group, which initiates the conversation'),
131
+ ...workspaceRoutingInputShape,
132
+ ...identityOverrideInputShape,
120
133
  },
121
134
  outputSchema: jsonResult,
122
135
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
123
- }, async ({ participants, name, text }) => {
124
- const client = getAgentClient();
136
+ }, async ({ participants, name, text, workspace_id, workspace_alias, as: asIdentity }) => {
137
+ const client = getAgentClient(workspaceRefFromArgs({ workspace_id, workspace_alias }), asIdentity);
125
138
  const conversation = await client.dms.createGroup({ participants, name });
126
139
  const message = await client.dms.sendMessage(conversation.id, text);
127
140
  const result = { conversation, message };
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/tools/messaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/tools/messaging.ts"],"names":[],"mappings":"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"}