feat: Add REST API endpoints to Trinity Core (v2.2.0)

- GET /servers — list available servers (for Arbiter)
- POST /exec — execute command on server (for Arbiter)
- REST endpoints run alongside MCP protocol
- MCP for Claude.ai connector, REST for Arbiter internal calls
- Fixes Infrastructure module 404 errors
- Version bump 2.1.0 → 2.2.0

Chronicler #78 | firefrost-services
This commit is contained in:
Claude (Chronicler #78)
2026-04-11 10:27:08 +00:00
parent a83766efb4
commit 55385634f2
2 changed files with 33 additions and 3 deletions

View File

@@ -131,10 +131,40 @@ function setupToolHandlers(mcpServer) {
const activeSessions = new Map();
// ─── REST API (for Arbiter / internal services) ───
app.get('/servers', auth, (req, res) => {
log(`REST /servers`);
res.json({ servers: Object.keys(SERVERS) });
});
app.post('/exec', auth, async (req, res) => {
const { server, command } = req.body;
if (!server || !command) {
return res.status(400).json({ error: 'Missing server or command' });
}
if (!SERVERS[server]) {
return res.status(400).json({ error: `Unknown server: ${server}` });
}
const target = SERVERS[server];
const result = target.local
? await executeLocal(command)
: await executeSSH(server, command);
log(`REST /exec [${server}] -> ${result.success ? 'OK' : 'FAIL'}`);
res.json({
success: result.success,
output: result.stdout || '',
stderr: result.stderr || '',
error: result.error
});
});
// ─── MCP Protocol (for Claude.ai connector) ───
app.get('/mcp', auth, async (req, res) => {
log(`SSE connection from ${req.ip}`);
const mcpServer = new Server({ name: "trinity-core", version: "2.1.0" }, { capabilities: { tools: {} } });
const mcpServer = new Server({ name: "trinity-core", version: "2.2.0" }, { capabilities: { tools: {} } });
setupToolHandlers(mcpServer);
mcpServer.onmessage = (msg) => log(`SERVER MSG: ${JSON.stringify(msg)}`);
@@ -171,4 +201,4 @@ app.post('/mcp/messages', auth, async (req, res) => {
}
});
app.listen(PORT, () => log(`Trinity Core MCP v2.1.0 started on port ${PORT}`));
app.listen(PORT, () => log(`Trinity Core MCP v2.2.0 started on port ${PORT}`));

View File

@@ -1,6 +1,6 @@
{
"name": "trinity-core",
"version": "2.1.0",
"version": "2.2.0",
"type": "module",
"main": "index.js",
"dependencies": {