agentchannel 0.1.4 → 0.1.5
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 +36 -0
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/dist/server.js
CHANGED
|
@@ -3,6 +3,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
4
|
import { AgentChatClient } from "./mqtt-client.js";
|
|
5
5
|
import { registerAllTools } from "./tools/index.js";
|
|
6
|
+
const MESSAGES_URI = "agentchannel://messages/latest";
|
|
6
7
|
export async function startServer(config) {
|
|
7
8
|
const mcpServer = new McpServer({
|
|
8
9
|
name: "agentchannel",
|
|
@@ -17,6 +18,41 @@ export async function startServer(config) {
|
|
|
17
18
|
}
|
|
18
19
|
await chatClient.connect();
|
|
19
20
|
registerAllTools(mcpServer, () => chatClient);
|
|
21
|
+
// Register a resource for latest messages
|
|
22
|
+
mcpServer.registerResource("latest-messages", MESSAGES_URI, { description: "Latest messages from all joined channels" }, async () => {
|
|
23
|
+
const messages = chatClient.store.getMessages(20);
|
|
24
|
+
const formatted = messages.length === 0
|
|
25
|
+
? "No messages yet."
|
|
26
|
+
: messages.map((m) => {
|
|
27
|
+
const time = new Date(m.timestamp).toLocaleTimeString();
|
|
28
|
+
return `[${time}] #${m.channel} | @${m.sender}: ${m.content}`;
|
|
29
|
+
}).join("\n");
|
|
30
|
+
return {
|
|
31
|
+
contents: [{ uri: MESSAGES_URI, text: formatted, mimeType: "text/plain" }],
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
// When new message arrives, notify client to re-read resource
|
|
35
|
+
chatClient.setOnMessage((msg) => {
|
|
36
|
+
if (msg.sender === chatClient.memberName)
|
|
37
|
+
return;
|
|
38
|
+
try {
|
|
39
|
+
mcpServer.server.sendResourceUpdated({ uri: MESSAGES_URI });
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Client may not support resource subscriptions, ignore
|
|
43
|
+
}
|
|
44
|
+
// Also send a logging notification for clients that support it
|
|
45
|
+
try {
|
|
46
|
+
mcpServer.sendLoggingMessage({
|
|
47
|
+
level: "info",
|
|
48
|
+
logger: "agentchannel",
|
|
49
|
+
data: `New message in #${msg.channel} from @${msg.sender}: ${msg.content}`,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
// Ignore if logging not supported
|
|
54
|
+
}
|
|
55
|
+
});
|
|
20
56
|
const transport = new StdioServerTransport();
|
|
21
57
|
await mcpServer.connect(transport);
|
|
22
58
|
process.on("SIGINT", async () => {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAwC;IACxE,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;QAC9B,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,IAAI,UAA2B,CAAC;IAChC,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;QACzB,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;IAE3B,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEnC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|