.NET Core API MCP 服务器
](https://badge.fury.io/js/dotnet-api-mcp) 
一个模型上下文协议(MCP)服务器,使Claude AI能够通过CRUD操作和Swagger/OpenAPI集成与.NET Core API进行交互。
特点/特性
- HTTP 方法支持(GET、POST、PUT、DELETE、PATCH)
- Swagger/OpenAPI 集成
- 多环境配置(本地、开发、测试、生产)
- 自动端点发现
- 模型/模式追踪
- 动态查询参数
- 身份验证支持
- 可配置的超时设置和头部信息
快速入门指南
第一步:选择您的平台
选项A:Claude桌面版
安装该软件包:
npm install -g dotnet-api-mcp配置Claude桌面版:
- 打开您的Claude桌面配置文件:
- macOS(麦金塔操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json - Windows: %APPDATA%\Claude\claude_desktop_config.json
- 添加MCP服务器配置:
{
"mcpServers": {
"dotnet-api": {
"command": "npx",
"args": ["-y", "dotnet-api-mcp"],
"env": {}
}
}
}- 重启Claude桌面版
选项B:Claude Code(VSCode)
步骤1.1:在您的项目中安装该包:
npm install dotnet-api-mcp步骤1.2:将MCP服务器添加到Claude代码中:
claude mcp add dotnet-api-mcp dotnet-api-mcp步骤1.3:重启VSCode
步骤2:创建配置文件
创建一个 config.json 文件在你的(文件夹/位置里) 项目根目录 (其中 package.json 所在的位置):
选项1 - 从示例中复制:
cp node_modules/dotnet-api-mcp/config.example.json config.json选项2 - 手动创建:
创造 config.json 具有以下结构:
{
"environments": {
"local": {
"baseUrl": "https://localhost:7000/api",
"swaggerUrl": "https://localhost:7000/swagger/v1/swagger.json",
"auth": {
"email": "your-email@example.com",
"password": "your-password"
}
}
},
"activeEnvironment": "local",
"timeout": 30000,
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
}
}第三步:配置您的API设置
更新 config.json 使用您实际的API信息:
必填字段:
- 基本网址(或基础URL)您的API基础URL
"baseUrl": "https://localhost:7000/api"⚠️ 警告如果缺少此设置,API 请求将以“未配置基础 URL”为原因失败
- swaggerUrl(可翻译为“Swagger URL”,即Swagger的网址或接口文档地址)您的Swagger/OpenAPI文档URL
"swaggerUrl": "https://localhost:7000/swagger/v1/swagger.json"⚠️ 警告如果缺失,Swagger 工具将无法工作
可选字段:
- 认证/授权 (如果您的API需要认证):
"auth": {
"email": "your-email@example.com",
"password": "your-password"
}ℹ️(信息符号,通常用于表示以下有重要或额外信息) 信息如果您的API不需要认证,可以省略此部分
- 超时 (默认:30000毫秒):
"timeout": 30000ℹ️(此符号通常表示“信息”或“提示”,在中文中可直接用作提示或信息的标志,无需具体翻译) 信息如果您的API响应缓慢,请增加(API的调用次数或资源分配)
- 标题;头部信息 (自定义HTTP头):
"headers": {
"Content-Type": "application/json",
"Accept": "application/json"
}ℹ️(这个符号通常表示信息或说明,没有直接对应的中文翻译,但在语境中可以理解为“提示”或“信息”) 信息添加您的API所需的任何自定义标头
步骤4:添加多个环境(可选)
你可以为不同阶段配置多个环境:
{
"environments": {
"local": {
"baseUrl": "https://localhost:7000/api",
"swaggerUrl": "https://localhost:7000/swagger/v1/swagger.json"
},
"development": {
"baseUrl": "https://dev-api.example.com/api",
"swaggerUrl": "https://dev-api.example.com/swagger/v1/swagger.json"
},
"beta": {
"baseUrl": "https://beta-api.example.com/api",
"swaggerUrl": "https://beta-api.example.com/swagger/v1/swagger.json"
},
"production": {
"baseUrl": "https://api.example.com/api",
"swaggerUrl": "https://api.example.com/swagger/v1/swagger.json"
}
},
"activeEnvironment": "local"
}⚠️ 警告总是设定好 activeEnvironment 指定要使用的环境。
步骤5:验证安装
请Claude测试一下连接:
"Fetch the Swagger documentation from my API"如果成功,您将看到API端点。如果未成功,请检查以下常见问题:
常见问题:
| 错误 | 解决方案 |
|---|---|
| "无法找到 config.json" | 请确保 config.json 位于您的项目根目录中 |
| "未配置基础URL" | 添加 baseUrl 到您的环境配置 |
| 连接被拒绝 | 检查您的API是否正在运行 |
| “未找到Swagger” | 验证 swaggerUrl 是正确且可访问的 |
| "认证失败" | 请检查您的 auth 凭证 |
配置参考
完整的config.json示例
{
"environments": {
"local": {
"baseUrl": "https://localhost:7000/api",
"swaggerUrl": "https://localhost:7000/swagger/v1/swagger.json",
"auth": {
"email": "user@example.com",
"password": "password123"
}
}
},
"activeEnvironment": "local",
"timeout": 30000,
"headers": {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Custom-Header": "custom-value"
}
}环境切换
要在不同环境之间切换,请更新 activeEnvironment:
{
"activeEnvironment": "production"
}可用工具
HTTP请求工具
api_get
向您的API发送GET请求
// List all users
api_get("/users")
// Get user by ID with params
api_get("/users/123", { include: "profile" })api_post
发送 POST 请求以创建资源
api_post("/users", {
"name": "John Doe",
"email": "john@example.com"
})api_put
发送 PUT 请求以更新资源
api_put("/users/123", {
"name": "Jane Doe",
"email": "jane@example.com"
})api_delete
发送 DELETE 请求
api_delete("/users/123")api_patch
发送 PATCH 请求以进行部分更新
api_patch("/users/123", {
"email": "newemail@example.com"
})Swagger/OpenAPI 工具
swagger_fetch
获取Swagger/OpenAPI文档
swagger_fetch({ environment: "beta" })swagger_list_endpoints
列出所有API端点
// List all endpoints
swagger_list_endpoints()
// Filter by tag
swagger_list_endpoints({ tag: "User" })
// Filter by method
swagger_list_endpoints({ method: "POST" })swagger_get_endpoint
获取特定端点的详细信息
swagger_get_endpoint({
path: "/api/users/{id}",
method: "GET"
})swagger_get_schema
从Swagger获取模型/模式定义
swagger_get_schema({ schemaName: "UserDto" })使用示例
使用 Claude Desktop
You: "Fetch the Swagger documentation for my API"
Claude: [Uses swagger_fetch tool]
You: "List all users from the beta environment"
Claude: [Uses api_get with /users endpoint]
You: "Create a new product with name 'Laptop' and price 999"
Claude: [Uses api_post with /products endpoint]程序化使用
import { spawn } from 'child_process';
const mcp = spawn('node', ['node_modules/dotnet-api-mcp/src/index.js']);
// MCP server is now running and can receive requests发展
本地运行
git clone https://github.com/sametbrr/dotnet-api-mcp.git
cd dotnet-api-mcp
npm install
npm start开发模式(带自动重载)
npm run dev故障排除
连接问题
- 请验证您的API URL在
config.json - 检查API是否接受CORS请求
- 确保SSL证书有效
认证错误
- 更新认证凭据
config.json - 检查API是否需要基于令牌的认证
Swagger 未加载
- 验证
swaggerUrl可以访问 - 确保Swagger JSON端点已暴露
要求
- Node.js 版本 >= 18.0.0
- .NET Core API,支持Swagger/OpenAPI
贡献;做出贡献
欢迎贡献!请随时提交拉取请求。
许可证
MIT 许可证 - 详情请参见 LICENSE 文件
作者
萨梅特·比雷
