import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js"; // ===== 分析工具 ===== import { codeReviewTool, executeCodeReview } from "./tools/codeReview.js"; import { codeWriteTool, executeCodeWrite } from "./tools/codeWrite.js"; import { codeDebugTool, executeCodeDebug } from "./tools/codeDebug.js"; import { docWriteTool, executeDocWrite } from "./tools/docWrite.js"; // ===== 本地执行工具(自动化闭环核心) ===== import { execCommandTool, executeExecCommand } from "./tools/execCommand.js"; import { lintCheckTool, executeLintCheck } from "./tools/lintCheck.js"; import { autoFixTool, executeAutoFix } from "./tools/autoFix.js"; import { runTestsTool, executeRunTests } from "./tools/runTests.js"; import { buildProjectTool, executeBuildProject } from "./tools/buildProject.js"; import { projectScanTool, executeProjectScan } from "./tools/projectScan.js"; import { readFileTool, executeReadFile, writeFileTool, executeWriteFile, patchFileTool, executePatchFile, } from "./tools/fileOps.js"; // ===== 高级工具(极致版) ===== import { gitOpsTool, executeGitOps } from "./tools/gitOps.js"; import { depManageTool, executeDepManage } from "./tools/depManage.js"; import { searchCodeTool, executeSearchCode } from "./tools/searchCode.js"; import { devServerTool, executeDevServer } from "./tools/devServer.js"; import { envCheckTool, executeEnvCheck } from "./tools/envCheck.js"; import { workflowTool, executeWorkflow } from "./tools/workflow.js"; // ===== 资源 ===== import { codingStandardsResource, getCodingStandards, } from "./resources/codingStandards.js"; import { debugGuideResource, getDebugGuide } from "./resources/debugGuide.js"; import { docTemplatesResource, getDocTemplates, } from "./resources/docTemplates.js"; // ========== MCP Server ========== const server = new Server({ name: "dev-assistant", version: "2.0.0" }, { capabilities: { tools: {}, resources: {} } }); // ========== 注册工具列表 ========== server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ // 分析工具 codeReviewTool, codeWriteTool, codeDebugTool, docWriteTool, // 本地执行工具(自动化闭环核心) execCommandTool, lintCheckTool, autoFixTool, runTestsTool, buildProjectTool, projectScanTool, readFileTool, writeFileTool, patchFileTool, // 高级工具(极致版) gitOpsTool, depManageTool, searchCodeTool, devServerTool, envCheckTool, workflowTool, ], })); // ========== 工具执行 ========== server.setRequestHandler(CallToolRequestSchema, async (request) => { const { name, arguments: args } = request.params; try { let result; switch (name) { // 分析工具 case "code_review": result = await executeCodeReview(args); break; case "code_write": result = await executeCodeWrite(args); break; case "code_debug": result = await executeCodeDebug(args); break; case "doc_write": result = await executeDocWrite(args); break; // 本地执行工具 case "exec_command": result = await executeExecCommand(args); break; case "lint_check": result = await executeLintCheck(args); break; case "auto_fix": result = await executeAutoFix(args); break; case "run_tests": result = await executeRunTests(args); break; case "build_project": result = await executeBuildProject(args); break; case "project_scan": result = await executeProjectScan(args); break; // 文件操作 case "read_local_file": result = await executeReadFile(args); break; case "write_local_file": result = await executeWriteFile(args); break; case "patch_file": result = await executePatchFile(args); break; // 高级工具 case "git_ops": result = await executeGitOps(args); break; case "dep_manage": result = await executeDepManage(args); break; case "search_code": result = await executeSearchCode(args); break; case "dev_server": result = await executeDevServer(args); break; case "env_check": result = await executeEnvCheck(args); break; case "workflow": result = await executeWorkflow(args); break; default: return { content: [{ type: "text", text: `未知工具: ${name}` }], isError: true, }; } return { content: [{ type: "text", text: result }] }; } catch (error) { return { content: [ { type: "text", text: `执行出错: ${error.message}`, }, ], isError: true, }; } }); // ========== 注册资源列表 ========== server.setRequestHandler(ListResourcesRequestSchema, async () => ({ resources: [codingStandardsResource, debugGuideResource, docTemplatesResource], })); // ========== 资源读取 ========== server.setRequestHandler(ReadResourceRequestSchema, async (request) => { const { uri } = request.params; switch (uri) { case codingStandardsResource.uri: return { contents: [ { uri, mimeType: "text/markdown", text: getCodingStandards(), }, ], }; case debugGuideResource.uri: return { contents: [ { uri, mimeType: "text/markdown", text: getDebugGuide(), }, ], }; case docTemplatesResource.uri: return { contents: [ { uri, mimeType: "text/markdown", text: getDocTemplates(), }, ], }; default: throw new Error(`未知资源: ${uri}`); } }); // ========== 启动 ========== async function main() { const transport = new StdioServerTransport(); await server.connect(transport); console.error("Dev Assistant MCP Server v2.0.0 (19 tools) running on stdio"); } main().catch((err) => { console.error("Fatal:", err); process.exit(1); }); //# sourceMappingURL=index.js.map