VirtoCommerce MCP服务器模块
一个提供模型上下文协议(MCP)服务器功能的VirtoCommerce模块,使Claude Desktop等AI代理能够与VirtoCommerce平台API进行交互。
特性
- 🤖 人工智能集成:将Claude Desktop和其他MCP客户端连接到VirtoCommerce
- 🔍 客户订单搜索:按客户ID、电子邮件、订单号、状态等搜索订单
- 🌐 基于网络的:不需要单独的控制台应用程序-在VirtoCommerce平台内运行
- 🚀 苏格兰和南方能源公司运输:使用服务器发送的事件进行实时通信
- 🔧 轻松设置:所需配置最少
建筑
Claude Desktop ←→ mcp-remote proxy ←→ VirtoCommerce Web Module
(MCP Protocol) (HTTP) (Business Logic)快速开始
1.安装模块
- 构建解决方案:
dotnet build- 部署
VirtoCommerce.McpServer.Web模块到您的VirtoCommerce平台
2.配置克劳德桌面
- 安装mcp远程代理:
npm install -g mcp-remote- 更新您的Claude Desktop配置文件(
claude_desktop_config.json):
{
"mcpServers": {
"virtocommerce": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:5000/api/mcp"
]
}
}
}- 重新启动克劳德桌面
3.测试集成
- 启动您的VirtoCommerce平台(确保其在
http://localhost:5000)
- 在Claude Desktop中,您现在应该可以访问
search_customer_orders工具
- 使用以下查询进行测试: *“从客户电子邮件中搜索订单john@example.com"*
可用工具
搜索_客户_订单
按各种条件搜索客户订单。
参数:
customerId(字符串,可选):用于搜索订单的客户IDcustomerEmail(字符串,可选):用于搜索订单的客户电子邮件orderNumber(字符串,可选):要搜索的订单号status(字符串,可选):要筛选的订单状态storeId(字符串,可选):用于筛选订单的商店IDstartDate(字符串,可选):订单搜索的开始日期(ISO 8601格式)endDate(字符串,可选):订单搜索的结束日期(ISO 8601格式)take(整数,可选):要返回的最大订单数(默认值:20)skip(整数,可选):分页时要跳过的订单数(默认值:0)
API终点
该模块公开了以下端点:
POST /api/mcp-主MCP协议端点(处理初始化、工具/列表、工具/调用)POST /api/mcp/sse-替代MCP端点(与上述相同)GET /api/mcp/status-服务器状态和功能GET /api/mcp/tools-列出可用工具POST /api/mcp/tools/call-直接执行工具
发展
添加新工具
- 向中添加新方法
VirtoCommerceMcpTools类在McpServerController.cs - 用…装饰
[McpServerTool, Description("Tool description")] - 使用添加参数描述
[Description("Parameter description")] - 通过调用来实现业务逻辑
_mcpServerService.ExecuteToolAsync()
例子:
[McpServerTool, Description("Get customer information")]
public async Task GetCustomer(
[Description("Customer ID")] string customerId,
CancellationToken cancellationToken = default)
{
var arguments = new Dictionary { ["customerId"] = customerId };
var result = await _mcpServerService.ExecuteToolAsync("get_customer", arguments, cancellationToken);
return JsonSerializer.Serialize(result, new JsonSerializerOptions { WriteIndented = true });
}项目结构
src/
├── VirtoCommerce.McpServer.Core/ # Core interfaces and services
├── VirtoCommerce.McpServer.Data/ # Data access layer
├── VirtoCommerce.McpServer.Data.MySql/ # MySQL data provider
├── VirtoCommerce.McpServer.Data.PostgreSql/ # PostgreSQL data provider
├── VirtoCommerce.McpServer.Data.SqlServer/ # SQL Server data provider
└── VirtoCommerce.McpServer.Web/ # Web module (controllers, MCP endpoints)故障排除
常见问题
- Claude Desktop看不到工具
- 验证VirtoCommerce是否正在运行 http://localhost:5000 - 检查一下 mcp-remote 已安装: npm list -g mcp-remote - 配置更改后重新启动Claude Desktop
- SSE连接失败
- 检查防火墙设置 - 验证 /api/mcp/sse 端点可访问 - 检查VirtoCommerce日志是否有错误
- 工具执行错误
- 确保VirtoCommerce模块已正确加载 - 检查是否配置了所需的权限 - 验证数据库连接
测试端点
测试状态端点:
curl http://localhost:5000/api/mcp/status测试工具列表:
curl http://localhost:5000/api/mcp/tools许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature/amazing-feature - 提交您的更改:
git commit -m 'Add amazing feature' - 推到分支:
git push origin feature/amazing-feature - 打开拉取请求
支持
如需支持,请在GitHub存储库中创建问题或联系VirtoCommerce团队。
