FDC数据服务MCP服务器

该项目实现了一个C#的MCP服务器,提供对FDC(Forecourt Device Controller)数据服务的访问,支持标准化的AI工具与系统交互。

  • by yerald231ger
  • C#
  • 本地部署
  • 更新于
在 GitHub 查看 yerald231ger/fdccsmcpserver

使用说明

前台设备控制器(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:检索特定储罐的最新储罐交付数据

入门指南

  1. 确保你有。已安装NET 9.0 SDK
  2. 克隆存储库
  3. 构建项目: dotnet build
  4. 运行项目: 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"
      ]
    }