GitLab Kanban MCP Server

  • src
#!/usr/bin/env node import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js"; import { GITLAB_URL } from "./config/gitlab.js"; import { toolSchemas } from "./tools/schemas.js"; import { handleToolCall } from "./tools/handlers.js"; class GitLabKanbanServer { private server: Server; constructor() { this.server = new Server( { name: "gitlab-kanban-mcp-server", version: "0.1.0", }, { capabilities: { tools: {}, }, } ); this.setupToolHandlers(); this.server.onerror = (error) => console.error('[MCP Error]', error); } private setupToolHandlers() { // ツール一覧のハンドラー this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: toolSchemas })); // ツール実行のハンドラー this.server.setRequestHandler(CallToolRequestSchema, async (request) => { return await handleToolCall(request.params.name, request.params.arguments); }); } async run() { const transport = new StdioServerTransport(); await this.server.connect(transport); console.error(`GitLab Kanban MCP server running on stdio (GitLab URL: ${GITLAB_URL})`); } } const server = new GitLabKanbanServer(); server.run().catch((error) => { console.error("Server error:", error); process.exit(1); });