Newer
Older
TelosDB / src / mcp-server.js
@楽曲作りまくりおじさん 楽曲作りまくりおじさん 8 days ago 1 KB Add MCP server with llama.cpp integration and docs
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
import express from "express";
import { initDb } from "./db.js";
import { registerMcpHandlers } from "./mcp-handlers.js";

const app = express();
let transport = null;

initDb();

const server = new Server(
  {
    name: "sqlite-vec-server",
    version: "0.1.0",
  },
  {
    capabilities: {
      tools: {},
    },
  }
);

registerMcpHandlers(server);

export function startMcpServer(port = 3000) {
  app.use(express.json());
  app.get("/sse", async (req, res) => {
    transport = new SSEServerTransport("/messages", res);
    await server.connect(transport);
  });

  app.post("/messages", async (req, res) => {
    if (transport) {
      await transport.handlePostMessage(req, res);
    } else {
      res.status(400).send("No transport connection");
    }
  });

  const httpServer = app.listen(port, () => {
    console.log(`MCP SSE Server listening on http://localhost:${port}/sse`);
  });

  return httpServer;
}