这是一个使用 .NET 9.0 构建的模型上下文协议(MCP)服务器实现。MCP 服务器提供了一种通信协议,用于促进模型驱动系统中各个组件之间的交互。此实现展示了如何使用自定义工具和服务设置一个基本的 MCP 服务器。
在 VS Code 中使用 GitHub Copilot、Claude Desktop 或其他 MCP 客户端进行配置:
{
"servers": {
"monkeymcp": {
"url": "https://func-monkeymcp-3t4eixuap5dfm.azurewebsites.net/",
"type": "http"
}
},
"inputs": []
}
{
"inputs": [],
"servers": {
"monkeymcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"jamesmontemagno/monkeymcp"
],
"env": {}
}
}
}
MonkeyService:从 API 端点获取猴子数据的示例服务
MonkeyLocationService:生成猴子的独特旅程和活动的服务
服务器暴露了几个可以由客户端调用的工具:
服务器使用 Microsoft.Extensions.Hosting(版本 9.0.3),它提供了:
有几个日志记录提供程序可用:
dotnet build"monkeyserver": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"/Users/jamesmontemagno/GitHub/TestMCP/MonkeyMCP/MonkeyMCP.csproj"
]
}
更新项目的路径
要添加自定义工具:
[McpServerToolType] 属性标记[McpServerTool] 属性的方法[Description] 属性以提供文档示例:
[McpServerToolType]
public static class CustomTool
{
[McpServerTool, Description("描述该工具的功能")]
public static string ToolMethod(string param) => $"结果: {param}";
}
MonkeyMCPSSE 项目提供了使用 HTTP 上的服务器发送事件(SSE)而不是 stdio 传输的 Monkey MCP 服务器的替代实现。此实现作为 Web 服务器运行,使其非常适合基于 Web 的客户端和需要基于 HTTP 的通信场景。
有关安全的最佳实践,请参阅 此处
http://localhost:3001npx @modelcontextprotocol/inspectorSSE 实现使用 ASP.NET Core 内置的 Web 服务器功能,同时保持与 stdio 版本相同的猴子数据服务和工具。这使得在保持核心功能的同时轻松切换传输方法。
该项目在 MIT 许可证下可用。
<!-- mcp-name: io.github.jamesmontemagno/monkeymcp -->MonkeyLocationService 提供丰富的模拟功能: