油罐数据控制器

一个基于模型上下文协议(MCP)的Python服务器实现,专注于油罐交付数据的控制器功能,为AI助手提供与燃油罐监控系统交互的工具。

  • by yerald231ger
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 yerald231ger/fdcpythonmcpserver

使用说明

MCP服务器FDC

模型上下文协议(MCP)服务器的Python实现,侧重于储罐输送数据的前场设备控制器(FDC)功能。

概述

该项目提供了一个模型上下文协议实现,用于访问和操纵来自前场设备控制器的储罐输送数据。它利用MCP Python SDK来公开AI助手可以用来与油箱监控系统交互的工具。

什么是模型上下文协议(MCP)?

模型上下文协议是一个开放标准,使开发人员能够在其数据源和AI驱动的工具之间建立安全的双向连接。MCP由Anthropic创建,它标准化了人工智能系统与外部工具和数据源的交互方式,类似于语言服务器协议如何标准化跨开发工具的编程语言支持。

MCP的关键概念:

  • MCP服务器:通过标准化接口公开数据和功能(如我们的FDC坦克数据)
  • MCP客户端:连接到MCP服务器以利用这些工具的AI应用程序
  • 工具:可由AI系统调用的功能(如我们的坦克交付数据检索功能)
  • 资源:人工智能系统可以访问的静态或动态数据
  • 鼓励:可以指导人工智能交互的预定义文本

MCP使AI系统能够:

  • 直接从源系统访问实时数据
  • 根据该数据执行操作
  • 维护不同工具和数据集的上下文

特性

  • FDC工具:

    • 检索所有储罐的储罐输送数据
    • 按设备ID检索特定储罐的储罐输送数据
  • 异步实现:服务调用采用async/await模式实现,以获得更好的性能

  • 类型安全:Pydantic模型确保正确的数据验证和序列化

  • MCP标准合规性:使用官方MCP Python SDK构建

  • 检索所有储罐的储罐输送数据

  • 按设备ID检索特定储罐的储罐输送数据

  • 用于正确类型验证和序列化的Pydantic模型

  • 异步服务实现以获得更好的性能

项目结构

该项目组织如下:

  • main.py:应用程序的入口点,包含验证FDC服务功能的测试代码
  • tools/:包含MCP工具实现的目录
    • fdc_tool.py:实施具有坦克交付数据功能的FDC服务
    • hello_tool.py:用于测试和演示的简单示例工具
  • pyproject.toml:项目依赖关系和元数据
  • .git/:Git存储库元数据
  • .idea/:JetBrains IDE配置文件
  • __pycache__/:Python字节码缓存目录

该应用程序遵循模块化设计模式,其中每个工具都作为工具目录中的单独模块实现。这使得未来可以使用其他MCP兼容工具轻松扩展。

JSON克劳德MCP文件本地

{
  "mcpServers": {
    "Demo": {
      "command": "/Users/[User]/.local/bin/uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "/Users/[User]/Documents/Areas/Courses-Mcp/python/src/tools/hello_tool.py"
      ]
    },
    "FdcToolPython": {
      "command": "/Users/[user]/.local/bin/uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "/Users/[user]/Documents/Areas/Courses-Mcp/python/src/tools/fdc_tool.py"
      ]
    }
  }
}

资源

  • https://github.com/modelcontextprotocol/python-sdk?tab=readme-ov文件
  • https://www.youtube.com/watch?v=-8k9lGp6g&t=77秒