内容
# 工程智能MCP




 

面向生产的**模型上下文协议(MCP)**服务器,用于**Express.js**应用程序,通过结构化的工程工具使AI客户端能够检查后端系统,而不是直接的文件系统访问。
服务器通过MCP工具公开后端工程上下文,包括**Git历史记录**、**Winston日志**、**OpenAPI/Swagger合约**和**沙盒源代码**。该实现已使用**官方MCP检查器**和**Claude Desktop**进行验证。
------------------------------------------------------------------------
# 功能特点
- 符合MCP协议的服务器,使用官方MCP SDK
- 基于工具注册的架构
- Git历史记录提供者
- Winston日志提供者
- 动态Swagger/OpenAPI提供者
- 沙盒源代码提供者
- 与Claude Desktop兼容
- 使用官方MCP检查器验证
- 可扩展的提供者架构
- 只读工程上下文
------------------------------------------------------------------------
# 架构
``` mermaid
flowchart TD
Client[Claude Desktop / MCP Inspector]
Transport[STDIO Transport]
Server[MCP Server]
Registry[Tool Registry]
Git[Git Provider]
Swagger[Swagger Provider]
Logs[Winston Provider]
Source[Source Code Provider]
Express[(Express Application)]
Client <--> Transport
Transport <--> Server
Server --> Registry
Registry --> Git
Registry --> Swagger
Registry --> Logs
Registry --> Source
Git --> Express
Swagger --> Express
Logs --> Express
Source --> Express
```
------------------------------------------------------------------------
# 提供者职责
| 提供者 | 职责 |
|------------------|--------------------------------------------------|
| Git 提供者 | 读取项目文件的Git提交历史记录 |
| Swagger 提供者 | 读取动态生成的OpenAPI合约 |
| 日志提供者 | 检索Winston应用程序日志 |
| 源代码提供者 | 列出目录并安全地读取项目源代码 |
| 工具注册表 | 注册和调度MCP工具请求 |
------------------------------------------------------------------------
# 技术栈
| 类别 | 技术 |
|-------------------|------------------------|
| 运行环境 | Node.js |
| 框架 | Express.js |
| 协议 | 模型上下文协议 |
| 日志 | Winston |
| API 文档 | Swagger JSDoc |
| 数据库 | MySQL + Sequelize |
| 版本控制 | Git |
| AI 客户端 | Claude Desktop |
| 测试 | MCP 检查器 |
------------------------------------------------------------------------
# 安装
``` bash
git clone <仓库地址>
npm install
npm run dev
```
配置Claude Desktop:
``` json
{
"mcpServers": {
"engineering-intelligence": {
"command": "node",
"args": [
"/绝对路径/mcp/server.js"
]
}
}
}
```
重启Claude Desktop。
------------------------------------------------------------------------
# 可用的MCP工具
| 工具 | 描述 |
|----------------------|----------------------------------------|
| check_file_history | 返回文件的最近Git历史记录 |
| read_winston_logs | 读取最近的Winston日志 |
| analyze_api_contract | 读取端点的OpenAPI合约 |
| list_directory | 列出项目目录 |
| read_source_code | 安全地读取项目源文件 |
------------------------------------------------------------------------
# 工作示例
## 提示
> 比较 **POST /orders** 的实现与其OpenAPI合约。
### 工具执行
| 阶段 | 工具 |
|-------------------------|----------------------|
| API 合约检查 | analyze_api_contract |
| 源代码检查 | read_source_code |
| 分析 | Claude Desktop |
### 结果
服务器成功检测到文档化的API与控制器实现之间的合约不匹配。
示例:
- Swagger合约期望 **customerId**
- 控制器使用 **userId**
这演示了多个MCP工具如何由AI客户端协调以调查后端实现问题。
------------------------------------------------------------------------
# 测试
该实现已使用两个独立的MCP客户端进行验证。
## MCP 检查器
<img width="1456" height="761" alt="image" src="https://github.com/user-attachments/assets/504675df-7545-4ff9-9c42-f43b0e14c785" />
- 工具发现
- 工具执行
- 协议验证
- 响应验证
## Claude Desktop
无需代码更改即可成功连接。
<img width="1241" height="800" alt="image" src="https://github.com/user-attachments/assets/57a4794c-1c35-4402-85a3-498f5592987b" />
验证:
- Git历史记录检查
- Winston日志检索
- Swagger分析
- 源代码检查
这确认了与实际MCP客户端的互操作性。
------------------------------------------------------------------------
# 项目结构
``` text
项目/
├── app.js
├── index.js
├── logger.js
├── swaggerConfig.js
├── controllers/
├── models/
├── routes/
├── validations/
├── config/
├── mcp/
│ ├── server.js
│ ├── registry/
│ │ └── toolRegistry.js
│ └── providers/
│ ├── gitProvider.js
│ ├── logProvider.js
│ ├── swaggerProvider.js
│ └── sourceCodeProvider.js
└── package.json
```
------------------------------------------------------------------------
# 路线图
- 基于AST的源代码分析
- Sequelize模式提供者
- Express路由依赖图
- 架构总结
- 中间件分析
- 配置提供者
- 项目依赖分析
------------------------------------------------------------------------
# 许可证
在ISC许可证下授权。