前台设备控制器(FDC)的MCP服务器
该项目在C#中实现了一个模型上下文协议(MCP)服务器,该服务器提供对法庭设备控制器(FDC)数据服务的访问。
什么是模型上下文协议(MCP)?
模型上下文协议(MCP)是一种开放协议,旨在简化人工智能工具和系统之间的交互。微软与Anthropic合作,为MCP创建了一个官方的C#SDK。
MCP启用:
- 人工智能模型和外部工具之间的标准化通信
- 工具发现和调用
- 结构化数据交换
- 动态上下文管理
了解有关MCP的更多信息:
项目概述
此MCP服务器应用程序提供了与监测燃油箱数据的FDC系统交互的工具。服务器公开了使用MCP协议检索储罐交付信息的方法。
使用的技术
- .NET 9.0
- ModelContextProtocol SDK(v0.2.0-review.1)
- Microsoft扩展(托管、Http、日志)
- 系统。文本。用于序列化的Json
项目结构
- 服务:包含用于与外部API通信的服务类
- FdcService.cs:处理HTTP请求以检索油箱输送数据
- 模型:包含应用程序的数据模型
- TankDeliveryResponse.cs:储罐交付信息的数据模型
- 工具:包含MCP兼容的工具实现
- EchoTool.cs:用于测试MCP功能的简单回声工具 - FdcTool.cs:检索储罐输送数据的工具
可用的MCP工具
回声工具
Echo:将消息回传给客户端ReverseEcho:反向返回消息
Fdctool
GetTanksDeliveries:检索所有储罐的最新储罐交付数据GetTankDelivery:检索特定储罐的最新储罐交付数据
入门指南
- 确保你有。已安装NET 9.0 SDK
- 克隆存储库
- 构建项目:
dotnet build - 运行项目:
dotnet run
MCP服务器将使用标准输入/输出作为传输机制启动并监听传入连接。
运作原理
应用程序通过以下方式设置MCP服务器:
- 日志记录:配置为将跟踪级别日志发送到标准错误以进行诊断
- HTTP客户端工厂:已注册用于对FDC后端进行API调用
- 服务注册:The
FdcService注册为单例,用于处理与FDC系统的HTTP通信 - MCP服务器配置:
- 使用标准输入/输出作为MCP协议通信的传输机制 - 使用自动发现和注册程序集中的工具 WithToolsFromAssembly() 方法 - 工具标有 [McpServerToolType] 对于班级和 [McpServerTool] 方法
当客户端连接到MCP服务器时,它可以发现并调用可用的工具:
- 用于测试连接的简单回声工具
- 用于检索储罐交付数据的FDC专用工具
服务器处理MCP协议消息和C#方法调用之间的转换,为AI工具与FDC系统交互提供了一种标准化的方式。
集成示例
您可以将此MCP服务器与AI工具或支持MCP协议的其他系统集成。以下是将MCP服务器设置为stdio服务的示例配置:
"Fdc C# MCP Server": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"/Users/yerald231ger/Documents/Areas/Courses-Mcp/csharp/src/McpServerFdc/McpServerFdc/McpServerFdc.csproj"
]
}