Update code
This commit is contained in:
183
dev-assistant-mcp/dist/index.js
vendored
Normal file
183
dev-assistant-mcp/dist/index.js
vendored
Normal file
@@ -0,0 +1,183 @@
|
||||
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
|
||||
Reference in New Issue
Block a user