agentchannel 0.2.3 → 0.3.1

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/server.js CHANGED
@@ -1,18 +1,24 @@
1
1
  #!/usr/bin/env node
2
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import { ListToolsRequestSchema, CallToolRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
4
5
  import { readFileSync } from "node:fs";
5
6
  import { fileURLToPath } from "node:url";
6
7
  import { dirname, join } from "node:path";
7
8
  import { AgentChatClient } from "./mqtt-client.js";
8
- import { registerAllTools } from "./tools/index.js";
9
9
  const __dirname = dirname(fileURLToPath(import.meta.url));
10
10
  const pkg = JSON.parse(readFileSync(join(__dirname, "..", "package.json"), "utf8"));
11
11
  const MESSAGES_URI = "agentchannel://messages/latest";
12
12
  export async function startServer(config) {
13
- const mcpServer = new McpServer({
14
- name: "agentchannel",
15
- version: pkg.version,
13
+ const server = new Server({ name: "agentchannel", version: pkg.version }, {
14
+ capabilities: {
15
+ experimental: { "claude/channel": {} },
16
+ tools: {},
17
+ resources: {},
18
+ },
19
+ instructions: 'You are connected to AgentChannel, an encrypted cross-network messaging system. ' +
20
+ 'Messages from other users/agents arrive as <channel source="agentchannel" ...> tags. ' +
21
+ 'Use the send_message tool to reply. Always specify the channel name when sending.',
16
22
  });
17
23
  let chatClient;
18
24
  if ("channels" in config) {
@@ -22,9 +28,148 @@ export async function startServer(config) {
22
28
  chatClient = AgentChatClient.fromSingle(config);
23
29
  }
24
30
  await chatClient.connect();
25
- registerAllTools(mcpServer, () => chatClient);
26
- // Register a resource for latest messages
27
- mcpServer.registerResource("latest-messages", MESSAGES_URI, { description: "Latest messages from all joined channels" }, async () => {
31
+ // ── Tools ──────────────────────────────────────────
32
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
33
+ tools: [
34
+ {
35
+ name: "send_message",
36
+ description: "Send an encrypted message to a channel",
37
+ inputSchema: {
38
+ type: "object",
39
+ properties: {
40
+ message: { type: "string", description: "Message content" },
41
+ channel: { type: "string", description: "Target channel name (required)" },
42
+ },
43
+ required: ["message", "channel"],
44
+ },
45
+ },
46
+ {
47
+ name: "read_messages",
48
+ description: "Read recent messages from channels",
49
+ inputSchema: {
50
+ type: "object",
51
+ properties: {
52
+ limit: { type: "number", description: "Number of messages (default 20)" },
53
+ channel: { type: "string", description: "Filter by channel (optional)" },
54
+ },
55
+ },
56
+ },
57
+ {
58
+ name: "unread_count",
59
+ description: "Check how many new messages since last read",
60
+ inputSchema: {
61
+ type: "object",
62
+ properties: {
63
+ channel: { type: "string", description: "Filter by channel (optional)" },
64
+ },
65
+ },
66
+ },
67
+ {
68
+ name: "list_members",
69
+ description: "List online members",
70
+ inputSchema: { type: "object", properties: {} },
71
+ },
72
+ {
73
+ name: "list_channels",
74
+ description: "List all channels you are in",
75
+ inputSchema: { type: "object", properties: {} },
76
+ },
77
+ {
78
+ name: "join_channel",
79
+ description: "Join a new channel dynamically",
80
+ inputSchema: {
81
+ type: "object",
82
+ properties: {
83
+ channel: { type: "string", description: "Channel name" },
84
+ key: { type: "string", description: "Channel key" },
85
+ },
86
+ required: ["channel", "key"],
87
+ },
88
+ },
89
+ {
90
+ name: "leave_channel",
91
+ description: "Leave a channel",
92
+ inputSchema: {
93
+ type: "object",
94
+ properties: {
95
+ channel: { type: "string", description: "Channel name" },
96
+ },
97
+ required: ["channel"],
98
+ },
99
+ },
100
+ {
101
+ name: "set_name",
102
+ description: "Change your display name",
103
+ inputSchema: {
104
+ type: "object",
105
+ properties: {
106
+ name: { type: "string", description: "New display name" },
107
+ },
108
+ required: ["name"],
109
+ },
110
+ },
111
+ ],
112
+ }));
113
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
114
+ const { name, arguments: args } = request.params;
115
+ switch (name) {
116
+ case "send_message": {
117
+ const msg = await chatClient.send(args.message, args.channel);
118
+ return { content: [{ type: "text", text: `Sent to #${msg.channel} by @${msg.sender}` }] };
119
+ }
120
+ case "read_messages": {
121
+ const limit = Math.min(args?.limit || 20, 100);
122
+ let messages = chatClient.store.getMessages(limit);
123
+ if (args?.channel)
124
+ messages = messages.filter((m) => m.channel === args.channel);
125
+ chatClient.store.markAsRead();
126
+ if (messages.length === 0)
127
+ return { content: [{ type: "text", text: "No messages yet." }] };
128
+ const formatted = messages.map((m) => {
129
+ const time = new Date(m.timestamp).toLocaleTimeString();
130
+ return `[${time}] #${m.channel} | @${m.sender}: ${m.content}`;
131
+ }).join("\n");
132
+ return { content: [{ type: "text", text: formatted }] };
133
+ }
134
+ case "unread_count": {
135
+ const count = chatClient.store.getUnreadCount(args?.channel);
136
+ const text = count === 0 ? "No new messages." : `${count} new message${count > 1 ? "s" : ""}${args?.channel ? ` in #${args.channel}` : ""}.`;
137
+ return { content: [{ type: "text", text }] };
138
+ }
139
+ case "list_members": {
140
+ const members = chatClient.store.getMembers();
141
+ if (members.length === 0)
142
+ return { content: [{ type: "text", text: "No members online." }] };
143
+ const formatted = members.map((m) => `- @${m.name} (joined ${new Date(m.joinedAt).toLocaleTimeString()})`).join("\n");
144
+ return { content: [{ type: "text", text: `Online:\n${formatted}` }] };
145
+ }
146
+ case "list_channels": {
147
+ const channels = chatClient.getChannels();
148
+ if (channels.length === 0)
149
+ return { content: [{ type: "text", text: "Not in any channels." }] };
150
+ return { content: [{ type: "text", text: `Channels: ${channels.map((c) => `#${c}`).join(", ")}` }] };
151
+ }
152
+ case "join_channel": {
153
+ await chatClient.joinChannel({ channel: args.channel, key: args.key });
154
+ return { content: [{ type: "text", text: `Joined #${args.channel}` }] };
155
+ }
156
+ case "leave_channel": {
157
+ chatClient.leaveChannel(args.channel);
158
+ return { content: [{ type: "text", text: `Left #${args.channel}` }] };
159
+ }
160
+ case "set_name": {
161
+ chatClient.setName(args.name);
162
+ return { content: [{ type: "text", text: `Name changed to @${args.name}` }] };
163
+ }
164
+ default:
165
+ throw new Error(`Unknown tool: ${name}`);
166
+ }
167
+ });
168
+ // ── Resources ──────────────────────────────────────
169
+ server.setRequestHandler(ListResourcesRequestSchema, async () => ({
170
+ resources: [{ uri: MESSAGES_URI, name: "Latest Messages", description: "Recent messages from all channels", mimeType: "text/plain" }],
171
+ }));
172
+ server.setRequestHandler(ReadResourceRequestSchema, async () => {
28
173
  const messages = chatClient.store.getMessages(20);
29
174
  const formatted = messages.length === 0
30
175
  ? "No messages yet."
@@ -32,34 +177,30 @@ export async function startServer(config) {
32
177
  const time = new Date(m.timestamp).toLocaleTimeString();
33
178
  return `[${time}] #${m.channel} | @${m.sender}: ${m.content}`;
34
179
  }).join("\n");
35
- return {
36
- contents: [{ uri: MESSAGES_URI, text: formatted, mimeType: "text/plain" }],
37
- };
180
+ return { contents: [{ uri: MESSAGES_URI, text: formatted, mimeType: "text/plain" }] };
38
181
  });
39
- // When new message arrives, notify client to re-read resource
182
+ // ── Channel push ───────────────────────────────────
40
183
  chatClient.setOnMessage((msg) => {
41
184
  if (msg.sender === chatClient.memberName)
42
185
  return;
43
- try {
44
- mcpServer.server.sendResourceUpdated({ uri: MESSAGES_URI });
45
- }
46
- catch {
47
- // Client may not support resource subscriptions, ignore
48
- }
49
- // Also send a logging notification for clients that support it
50
- try {
51
- mcpServer.sendLoggingMessage({
52
- level: "info",
53
- logger: "agentchannel",
54
- data: `New message in #${msg.channel} from @${msg.sender}: ${msg.content}`,
55
- });
56
- }
57
- catch {
58
- // Ignore if logging not supported
59
- }
186
+ const time = new Date(msg.timestamp).toLocaleTimeString();
187
+ const content = `[${time}] #${msg.channel} | @${msg.sender}: ${msg.content}`;
188
+ // Push via claude/channel — directly into agent context
189
+ server.notification({
190
+ method: "notifications/claude/channel",
191
+ params: {
192
+ content,
193
+ meta: {
194
+ channel: msg.channel,
195
+ sender: msg.sender,
196
+ timestamp: msg.timestamp.toString(),
197
+ },
198
+ },
199
+ });
60
200
  });
201
+ // ── Connect ────────────────────────────────────────
61
202
  const transport = new StdioServerTransport();
62
- await mcpServer.connect(transport);
203
+ await server.connect(transport);
63
204
  process.on("SIGINT", async () => {
64
205
  await chatClient.disconnect();
65
206
  process.exit(0);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentchannel",
3
- "version": "0.2.3",
3
+ "version": "0.3.1",
4
4
  "description": "Encrypted cross-network messaging for AI coding agents via MCP",
5
5
  "type": "module",
6
6
  "main": "dist/server.js",