@relaycast/mcp 0.1.4 → 0.2.0
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/dist/piggyback.d.ts.map +1 -1
- package/dist/piggyback.js +6 -1
- package/dist/piggyback.js.map +1 -1
- package/dist/prompts.d.ts +1 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +5 -4
- package/dist/prompts.js.map +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +23 -9
- package/dist/server.js.map +1 -1
- package/dist/stdio.js +0 -4
- package/dist/stdio.js.map +1 -1
- package/dist/tools/registration.d.ts +1 -1
- package/dist/tools/registration.d.ts.map +1 -1
- package/dist/tools/registration.js +78 -4
- package/dist/tools/registration.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/dist/piggyback.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piggyback.d.ts","sourceRoot":"","sources":["../src/piggyback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"piggyback.d.ts","sourceRoot":"","sources":["../src/piggyback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAiBnD,wBAAgB,eAAe,CAC7B,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,YAAY,EAC9B,cAAc,EAAE,MAAM,WAAW,EACjC,SAAS,CAAC,EAAE,YAAY,GACvB,IAAI,CAoFN"}
|
package/dist/piggyback.js
CHANGED
package/dist/piggyback.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piggyback.js","sourceRoot":"","sources":["../src/piggyback.ts"],"names":[],"mappings":"AAKA,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"piggyback.js","sourceRoot":"","sources":["../src/piggyback.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
declare const DEFAULT_SYSTEM_PROMPT = "You are an AI agent in a collaborative workspace powered by Agent Relay. You can communicate with other agents using the following tools:\n\n## Getting Started\n1. Call \"register\" with your agent name to join the workspace\
|
|
2
|
+
declare const DEFAULT_SYSTEM_PROMPT = "You are an AI agent in a collaborative workspace powered by Agent Relay. You can communicate with other agents using the following tools:\n\n## Getting Started\n1. If workspace key is not configured, call \"create_workspace\" or \"set_workspace_key\"\n2. Call \"register\" with your agent name to join the workspace\n3. Use \"list_channels\" to see available channels\n4. Use \"join_channel\" to join channels of interest\n5. Use \"check_inbox\" to see unread messages and mentions\n\n## Communication\n- Post messages to channels with \"post_message\"\n- Send direct messages with \"send_dm\"\n- Reply to threads with \"reply_to_thread\"\n- React to messages with \"add_reaction\"\n\n## Best Practices\n- Check your inbox regularly for new messages and mentions\n- Use channels for topic-based discussions\n- Use threads for detailed discussions to keep channels organized\n- React with emoji to acknowledge messages (e.g. thumbsup for agreement)\n- Keep messages concise and actionable";
|
|
3
3
|
export declare function registerSystemPrompt(server: McpServer): void;
|
|
4
4
|
export { DEFAULT_SYSTEM_PROMPT };
|
|
5
5
|
//# sourceMappingURL=prompts.d.ts.map
|
package/dist/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,QAAA,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,QAAA,MAAM,qBAAqB,g+BAoBY,CAAC;AAExC,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoB5D;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
package/dist/prompts.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
const DEFAULT_SYSTEM_PROMPT = `You are an AI agent in a collaborative workspace powered by Agent Relay. You can communicate with other agents using the following tools:
|
|
2
2
|
|
|
3
3
|
## Getting Started
|
|
4
|
-
1.
|
|
5
|
-
2.
|
|
6
|
-
3. Use "
|
|
7
|
-
4. Use "
|
|
4
|
+
1. If workspace key is not configured, call "create_workspace" or "set_workspace_key"
|
|
5
|
+
2. Call "register" with your agent name to join the workspace
|
|
6
|
+
3. Use "list_channels" to see available channels
|
|
7
|
+
4. Use "join_channel" to join channels of interest
|
|
8
|
+
5. Use "check_inbox" to see unread messages and mentions
|
|
8
9
|
|
|
9
10
|
## Communication
|
|
10
11
|
- Post messages to channels with "post_message"
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;uCAoBS,CAAC;AAExC,MAAM,UAAU,oBAAoB,CAAC,MAAiB;IACpD,MAAM,CAAC,cAAc,CACnB,eAAe,EACf;QACE,WAAW,EAAE,wDAAwD;KACtE,EACD,KAAK,IAAI,EAAE;QACT,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,qBAAqB;qBAC5B;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
|
2
2
|
import { type McpTelemetry } from './telemetry.js';
|
|
3
3
|
export declare const MCP_VERSION = "0.1.2";
|
|
4
4
|
export interface McpServerOptions {
|
|
5
|
-
apiKey
|
|
5
|
+
apiKey?: string;
|
|
6
6
|
baseUrl?: string;
|
|
7
7
|
telemetryTransport?: 'stdio' | 'http';
|
|
8
8
|
telemetry?: McpTelemetry;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAapE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEvE,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAapE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEvE,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACtC,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAuGzE"}
|
package/dist/server.js
CHANGED
|
@@ -14,8 +14,7 @@ import { WsBridge } from './resources/ws-bridge.js';
|
|
|
14
14
|
import { createMcpTelemetry } from './telemetry.js';
|
|
15
15
|
export const MCP_VERSION = '0.1.2';
|
|
16
16
|
export function createRelayMcpServer(options) {
|
|
17
|
-
const
|
|
18
|
-
const session = createInitialSession();
|
|
17
|
+
const session = createInitialSession(options.apiKey ?? null);
|
|
19
18
|
const telemetry = options.telemetry ?? createMcpTelemetry(MCP_VERSION);
|
|
20
19
|
const mcpServer = new McpServer({ name: 'agent-relay', version: MCP_VERSION }, {
|
|
21
20
|
capabilities: {
|
|
@@ -28,14 +27,29 @@ export function createRelayMcpServer(options) {
|
|
|
28
27
|
source_surface: 'mcp',
|
|
29
28
|
transport: options.telemetryTransport ?? 'unknown',
|
|
30
29
|
});
|
|
31
|
-
const getRelay = () => relay;
|
|
32
30
|
const getSession = () => session;
|
|
31
|
+
const getRelay = () => {
|
|
32
|
+
const workspaceKey = session.workspaceKey;
|
|
33
|
+
if (!workspaceKey) {
|
|
34
|
+
throw new Error('Workspace key not configured. Set RELAY_API_KEY at startup, or call "create_workspace" or "set_workspace_key" first.');
|
|
35
|
+
}
|
|
36
|
+
return new Relay({ apiKey: workspaceKey, baseUrl: options.baseUrl });
|
|
37
|
+
};
|
|
33
38
|
const setSession = (partial) => {
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
const nextAgentToken = partial.agentToken === undefined ? session.agentToken : partial.agentToken;
|
|
40
|
+
const nextAgentName = partial.agentName ?? session.agentName ?? null;
|
|
41
|
+
const shouldResetBridge = partial.agentToken !== undefined && partial.agentToken !== session.agentToken;
|
|
42
|
+
if (shouldResetBridge && session.wsBridge) {
|
|
43
|
+
session.wsBridge.stop();
|
|
44
|
+
session.subscriptions?.clear();
|
|
45
|
+
session.wsBridge = null;
|
|
46
|
+
session.subscriptions = null;
|
|
47
|
+
}
|
|
48
|
+
// When an agent token is set, initialize the WebSocket bridge.
|
|
49
|
+
if (nextAgentToken && !session.wsBridge) {
|
|
36
50
|
const subscriptions = new SubscriptionManager();
|
|
37
51
|
const wsClient = new WsClient({
|
|
38
|
-
token:
|
|
52
|
+
token: nextAgentToken,
|
|
39
53
|
baseUrl: options.baseUrl,
|
|
40
54
|
});
|
|
41
55
|
const wsBridge = new WsBridge(wsClient, subscriptions, (uri) => {
|
|
@@ -47,7 +61,7 @@ export function createRelayMcpServer(options) {
|
|
|
47
61
|
Object.assign(session, partial, { wsBridge, subscriptions });
|
|
48
62
|
telemetry.capture('relaycast_mcp_session_authenticated', {
|
|
49
63
|
source_surface: 'mcp',
|
|
50
|
-
agent_name:
|
|
64
|
+
agent_name: nextAgentName,
|
|
51
65
|
});
|
|
52
66
|
}
|
|
53
67
|
else {
|
|
@@ -58,14 +72,14 @@ export function createRelayMcpServer(options) {
|
|
|
58
72
|
if (!session.agentToken) {
|
|
59
73
|
throw new Error('Not registered. Call the "register" tool first.');
|
|
60
74
|
}
|
|
61
|
-
return
|
|
75
|
+
return new Relay({ apiKey: session.agentToken, baseUrl: options.baseUrl }).as(session.agentToken);
|
|
62
76
|
};
|
|
63
77
|
// Enable piggybacking of unread messages on all tool responses
|
|
64
78
|
enablePiggyback(mcpServer, getSession, getAgentClient, telemetry);
|
|
65
79
|
// Register resource definitions (inbox, agents, channels, etc.)
|
|
66
80
|
registerResourceDefinitions(mcpServer, getAgentClient, getRelay);
|
|
67
81
|
// Register all tools
|
|
68
|
-
registerRegistrationTools(mcpServer, getRelay, getSession, setSession);
|
|
82
|
+
registerRegistrationTools(mcpServer, getRelay, getSession, setSession, options.baseUrl);
|
|
69
83
|
registerChannelTools(mcpServer, getAgentClient);
|
|
70
84
|
registerMessagingTools(mcpServer, getAgentClient);
|
|
71
85
|
registerFeatureTools(mcpServer, getAgentClient);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAe,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAqB,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC;AAEvE,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AASnC,MAAM,UAAU,oBAAoB,CAAC,OAAyB;IAC5D,MAAM,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/stdio.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { startStdio } from './transports.js';
|
|
3
3
|
const apiKey = process.env.RELAY_API_KEY;
|
|
4
|
-
if (!apiKey) {
|
|
5
|
-
console.error('RELAY_API_KEY environment variable is required');
|
|
6
|
-
process.exit(1);
|
|
7
|
-
}
|
|
8
4
|
startStdio({
|
|
9
5
|
apiKey,
|
|
10
6
|
baseUrl: process.env.RELAY_BASE_URL,
|
package/dist/stdio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAEzC,UAAU,CAAC;IACT,MAAM;IACN,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;CACpC,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { Relay } from '@relaycast/sdk';
|
|
3
3
|
import type { SessionState } from '../types.js';
|
|
4
|
-
export declare function registerRegistrationTools(server: McpServer, getRelay: () => Relay, getSession: () => SessionState, setSession: (state: Partial<SessionState>) => void): void;
|
|
4
|
+
export declare function registerRegistrationTools(server: McpServer, getRelay: () => Relay, getSession: () => SessionState, setSession: (state: Partial<SessionState>) => void, baseUrl?: string): void;
|
|
5
5
|
//# sourceMappingURL=registration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../src/tools/registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../../src/tools/registration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA6ChD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,KAAK,EACrB,UAAU,EAAE,MAAM,YAAY,EAC9B,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,EAClD,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CA6GN"}
|
|
@@ -1,14 +1,87 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
const DEFAULT_BASE_URL = 'https://api.relaycast.dev';
|
|
3
|
+
function normalizeBaseUrl(baseUrl) {
|
|
4
|
+
return (baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, '');
|
|
5
|
+
}
|
|
6
|
+
async function createWorkspace(name, baseUrl) {
|
|
7
|
+
const response = await fetch(`${normalizeBaseUrl(baseUrl)}/v1/workspaces`, {
|
|
8
|
+
method: 'POST',
|
|
9
|
+
headers: { 'Content-Type': 'application/json' },
|
|
10
|
+
body: JSON.stringify({ name }),
|
|
11
|
+
});
|
|
12
|
+
const payload = (await response.json());
|
|
13
|
+
if (!payload || typeof payload !== 'object' || !('ok' in payload)) {
|
|
14
|
+
throw new Error('Invalid response while creating workspace');
|
|
15
|
+
}
|
|
16
|
+
if (!payload.ok) {
|
|
17
|
+
throw new Error(payload.error?.message ?? 'Failed to create workspace');
|
|
18
|
+
}
|
|
19
|
+
return payload.data;
|
|
20
|
+
}
|
|
21
|
+
function requireWorkspaceKey(session) {
|
|
22
|
+
if (session.workspaceKey)
|
|
23
|
+
return;
|
|
24
|
+
throw new Error('Workspace key not configured. Call "create_workspace" or "set_workspace_key" first.');
|
|
25
|
+
}
|
|
26
|
+
export function registerRegistrationTools(server, getRelay, getSession, setSession, baseUrl) {
|
|
27
|
+
// Tool 1: create_workspace
|
|
28
|
+
server.registerTool('create_workspace', {
|
|
29
|
+
description: 'Create a new workspace and store its workspace key in this MCP session for subsequent registration calls.',
|
|
30
|
+
inputSchema: {
|
|
31
|
+
name: z.string().describe('Workspace name'),
|
|
32
|
+
},
|
|
33
|
+
}, async ({ name }) => {
|
|
34
|
+
const workspace = await createWorkspace(name, baseUrl);
|
|
35
|
+
const workspaceKey = workspace.api_key ?? workspace.apiKey;
|
|
36
|
+
if (!workspaceKey || typeof workspaceKey !== 'string') {
|
|
37
|
+
throw new Error('Workspace created, but the response did not include api_key');
|
|
38
|
+
}
|
|
39
|
+
// Switching workspace context invalidates prior agent identity.
|
|
40
|
+
setSession({ workspaceKey, agentToken: null, agentName: null });
|
|
41
|
+
return {
|
|
42
|
+
content: [{ type: 'text', text: JSON.stringify(workspace, null, 2) }],
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
// Tool 2: set_workspace_key
|
|
46
|
+
server.registerTool('set_workspace_key', {
|
|
47
|
+
description: 'Set the workspace key (rk_live_...) for this MCP session. This enables register and workspace-level tools.',
|
|
48
|
+
inputSchema: {
|
|
49
|
+
api_key: z.string().describe('Workspace API key (rk_live_...)'),
|
|
50
|
+
},
|
|
51
|
+
}, async ({ api_key }) => {
|
|
52
|
+
if (!api_key.startsWith('rk_live_')) {
|
|
53
|
+
throw new Error('Workspace key must start with "rk_live_"');
|
|
54
|
+
}
|
|
55
|
+
const session = getSession();
|
|
56
|
+
const switchingWorkspace = session.workspaceKey !== api_key;
|
|
57
|
+
if (switchingWorkspace) {
|
|
58
|
+
// Switching workspace context invalidates prior agent identity.
|
|
59
|
+
setSession({ workspaceKey: api_key, agentToken: null, agentName: null });
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
setSession({ workspaceKey: api_key });
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
content: [
|
|
66
|
+
{
|
|
67
|
+
type: 'text',
|
|
68
|
+
text: switchingWorkspace
|
|
69
|
+
? 'Workspace key set. Previous agent session was cleared; call "register" again.'
|
|
70
|
+
: 'Workspace key set.',
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
// Tool 3: register
|
|
4
76
|
server.registerTool('register', {
|
|
5
|
-
description: 'Register this agent in the workspace and obtain an agent token for subsequent operations.',
|
|
77
|
+
description: 'Register this agent in the current workspace and obtain an agent token for subsequent operations.',
|
|
6
78
|
inputSchema: {
|
|
7
79
|
name: z.string().describe('Unique agent name'),
|
|
8
80
|
type: z.enum(['agent', 'human']).optional().describe('Agent type'),
|
|
9
81
|
persona: z.string().optional().describe('Agent persona description'),
|
|
10
82
|
},
|
|
11
83
|
}, async ({ name, type, persona }) => {
|
|
84
|
+
requireWorkspaceKey(getSession());
|
|
12
85
|
const relay = getRelay();
|
|
13
86
|
const result = await relay.agents.register({ name, type, persona });
|
|
14
87
|
// Store the agent token in session state
|
|
@@ -17,7 +90,7 @@ export function registerRegistrationTools(server, getRelay, getSession, setSessi
|
|
|
17
90
|
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
18
91
|
};
|
|
19
92
|
});
|
|
20
|
-
// Tool
|
|
93
|
+
// Tool 4: list_agents
|
|
21
94
|
server.registerTool('list_agents', {
|
|
22
95
|
description: 'List all agents registered in the workspace.',
|
|
23
96
|
inputSchema: {
|
|
@@ -27,6 +100,7 @@ export function registerRegistrationTools(server, getRelay, getSession, setSessi
|
|
|
27
100
|
.describe('Filter by agent status'),
|
|
28
101
|
},
|
|
29
102
|
}, async ({ status }) => {
|
|
103
|
+
requireWorkspaceKey(getSession());
|
|
30
104
|
const relay = getRelay();
|
|
31
105
|
const agents = await relay.agents.list(status ? { status } : undefined);
|
|
32
106
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../src/tools/registration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../src/tools/registration.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { WsBridge } from './resources/ws-bridge.js';
|
|
2
2
|
import type { SubscriptionManager } from './resources/subscriptions.js';
|
|
3
3
|
export interface SessionState {
|
|
4
|
+
workspaceKey: string | null;
|
|
4
5
|
agentToken: string | null;
|
|
5
6
|
agentName: string | null;
|
|
6
7
|
wsBridge: WsBridge | null;
|
|
7
8
|
subscriptions: SubscriptionManager | null;
|
|
8
9
|
}
|
|
9
|
-
export declare function createInitialSession(): SessionState;
|
|
10
|
+
export declare function createInitialSession(workspaceKey?: string | null): SessionState;
|
|
10
11
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAgB,oBAAoB,CAAC,YAAY,GAAE,MAAM,GAAG,IAAW,GAAG,YAAY,CAErF"}
|
package/dist/types.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function createInitialSession() {
|
|
2
|
-
return { agentToken: null, agentName: null, wsBridge: null, subscriptions: null };
|
|
1
|
+
export function createInitialSession(workspaceKey = null) {
|
|
2
|
+
return { workspaceKey, agentToken: null, agentName: null, wsBridge: null, subscriptions: null };
|
|
3
3
|
}
|
|
4
4
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,oBAAoB,CAAC,eAA8B,IAAI;IACrE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AAClG,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@relaycast/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"lint": "eslint src/"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@relaycast/sdk": "0.
|
|
17
|
-
"@relaycast/types": "0.
|
|
16
|
+
"@relaycast/sdk": "0.2.0",
|
|
17
|
+
"@relaycast/types": "0.2.0",
|
|
18
18
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
19
19
|
"express": "^5.2.1",
|
|
20
20
|
"zod": "^4.3.6"
|