diff --git a/index.ts b/index.ts index 143b1d8..b81770e 100644 --- a/index.ts +++ b/index.ts @@ -1,5 +1,4 @@ #!/usr/bin/env node -import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { CallToolRequestSchema, @@ -10,6 +9,7 @@ import { OpenAPI } from './src/api/client/index.js'; import * as Tools from './src/tools/index.js'; import type { ToolKeys } from './src/schemas.js'; import * as Handlers from './src/handlers/index.js'; +import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; // Check for API key const CODACY_ACCOUNT_TOKEN = process.env.CODACY_ACCOUNT_TOKEN; @@ -20,7 +20,7 @@ OpenAPI.HEADERS = { 'X-Codacy-Origin': 'mcp-server', }; -const server = new Server( +const mcpServer = new McpServer( { name: 'codacy-mcp-server', version: '0.1.0', @@ -29,33 +29,6 @@ const server = new Server( capabilities: { tools: {}, resources: {}, - triggers: { - patterns: [ - 'codacy', - 'code quality', - 'code analysis', - 'security vulnerabilities', - 'repository issues', - 'pull request analysis', - 'code coverage', - 'issues', - 'security', - 'srm', - 'analysis', - 'tool', - 'pattern', - 'pull request', - 'repository', - 'file', - 'coverage', - 'git', - 'diff', - 'branch', - 'commit', - 'severity', - 'organization', - ], - }, }, } ); @@ -170,14 +143,14 @@ const toolDefinitions: { [key in ToolKeys]: ToolDefinition } = { }; // Register tools -server.setRequestHandler(ListToolsRequestSchema, async () => ({ +mcpServer.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: Object.values(toolDefinitions) .filter(({ noAuth }) => CODACY_ACCOUNT_TOKEN || noAuth) .map(({ tool }) => tool), })); // Register request handlers -server.setRequestHandler(CallToolRequestSchema, async request => { +mcpServer.server.setRequestHandler(CallToolRequestSchema, async request => { try { if (!request.params.arguments) { throw new Error('Arguments are required'); @@ -206,7 +179,7 @@ server.setRequestHandler(CallToolRequestSchema, async request => { async function runServer() { const transport = new StdioServerTransport(); - await server.connect(transport); + await mcpServer.connect(transport); console.error('Codacy MCP Server running on stdio'); } diff --git a/package.json b/package.json index 72c38cd..cf60056 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "inspect": "npm run build && npx @modelcontextprotocol/inspector -e CODACY_ACCOUNT_TOKEN=$CODACY_ACCOUNT_TOKEN node dist/index.js" }, "dependencies": { - "@modelcontextprotocol/sdk": "1.0.1", + "@modelcontextprotocol/sdk": "1.25.2", "@types/node": "^22", "@types/node-fetch": "^2.6.12", "@types/sarif": "2.1.7",