@retrodeck/mcp 1.0.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/http-server.d.ts +3 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +71 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24693 -0
- package/dist/index.js.map +1 -0
- package/dist/node.d.ts +76 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +470 -0
- package/dist/node.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +134 -0
- package/dist/server.js.map +1 -0
- package/dist/sync-service.d.ts +29 -0
- package/dist/sync-service.d.ts.map +1 -0
- package/dist/sync-service.js +123 -0
- package/dist/sync-service.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAoE1G"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// packages/rdk-mcp/src/http-server.ts
|
|
2
|
+
// Serves .well-known/mcp.json for agent/registry discovery.
|
|
3
|
+
// Also serves chunk content at /chunks/:id for network retrieval.
|
|
4
|
+
import express from 'express';
|
|
5
|
+
export function startHttpServer(config, store) {
|
|
6
|
+
const app = express();
|
|
7
|
+
app.get('/health', (_req, res) => {
|
|
8
|
+
res.json({ status: 'ok', nodeId: config.nodeId, version: '1.0.0' });
|
|
9
|
+
});
|
|
10
|
+
app.get('/.well-known/mcp.json', (_req, res) => {
|
|
11
|
+
// mcp_endpoint is filled in after we know the actual bound port
|
|
12
|
+
res.json({
|
|
13
|
+
name: config.nodeId === 'uninitialized' ? 'RDK Node' : `RDK Node (${config.domain})`,
|
|
14
|
+
description: `RDK knowledge node. Domain: ${config.domain}. Query with rdk_query tool.`,
|
|
15
|
+
categories: ['knowledge-retrieval', 'rag', config.domain],
|
|
16
|
+
x402_supported: true,
|
|
17
|
+
version: '1.0.0',
|
|
18
|
+
rdk_network: true,
|
|
19
|
+
rdk_node_id: config.nodeId,
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
app.get('/chunks/:chunkId', (req, res) => {
|
|
23
|
+
try {
|
|
24
|
+
const chunk = store.getChunk(req.params.chunkId);
|
|
25
|
+
if (!chunk || !chunk.isPublic) {
|
|
26
|
+
return res.status(404).json({ error: 'Chunk not found or not public' });
|
|
27
|
+
}
|
|
28
|
+
res.json({
|
|
29
|
+
id: chunk.id,
|
|
30
|
+
title: chunk.title,
|
|
31
|
+
content: chunk.content,
|
|
32
|
+
summary: chunk.summary,
|
|
33
|
+
domain: chunk.domain,
|
|
34
|
+
categories: chunk.categories,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
res.status(500).json({ error: e.message });
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const startPort = config.mcpPort ?? 4242;
|
|
42
|
+
const maxPort = startPort + 10;
|
|
43
|
+
return new Promise((resolve, reject) => {
|
|
44
|
+
function tryListen(port) {
|
|
45
|
+
if (port > maxPort) {
|
|
46
|
+
const msg = `no free port found in ${startPort}–${maxPort}`;
|
|
47
|
+
console.error(`RDK HTTP server: ${msg}, discovery endpoint unavailable`);
|
|
48
|
+
resolve(-1); // non-fatal — MCP stdio continues without discovery
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const server = app.listen(port);
|
|
52
|
+
server.on('listening', () => {
|
|
53
|
+
console.error(`RDK HTTP server listening on port ${port}`);
|
|
54
|
+
console.error(` .well-known: http://localhost:${port}/.well-known/mcp.json`);
|
|
55
|
+
resolve(port);
|
|
56
|
+
});
|
|
57
|
+
server.on('error', (err) => {
|
|
58
|
+
if (err.code === 'EADDRINUSE') {
|
|
59
|
+
console.error(`RDK HTTP server: port ${port} in use, trying ${port + 1}...`);
|
|
60
|
+
tryListen(port + 1);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
console.error(`RDK HTTP server error: ${err.message}`);
|
|
64
|
+
reject(err);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
tryListen(startPort);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=http-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { startMcpServer } from './server.js';
|
|
2
|
+
export { startHttpServer } from './http-server.js';
|
|
3
|
+
export { RDKNode } from './node.js';
|
|
4
|
+
export { SyncService } from './sync-service.js';
|
|
5
|
+
export type { SyncConfig } from './sync-service.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|