mcpField
M
MCP USDA Server

MCP USDA Server

本地服务
github.com/AntonioPavoni法律与政务178 周前更新

关于 MCP USDA Server

MCP USDA Server 是一个模块化模板服务端,可向 LLM 提供 USDA 外国农业服务局 PSD 数据。它包含五种数据工具,并采用便于扩展数据源、格式化结果和添加防幻觉保护的结构。

主要功能

  1. 01查询 PSD 地区和国家
  2. 02获取商品及计量单位
  3. 03查询商品属性
  4. 04将结果格式化为 Markdown
  5. 05模块化工具与请求路由

适用场景

  1. 01查找 USDA PSD 地区和国家
  2. 02获取商品定义及计量单位
  3. 03查询生产、供应和分销属性

MCP 相关

通过 JSON-RPC 2.0 向 MCP 客户端提供五种 USDA PSD 数据工具,支持工具发现和执行。其模块化结构便于添加工具和数据源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP USDA 服务

一个模块化的 MCP(Model Control Protocol)服务器模板,用于从 USDA Foreign Agricultural Service(FAS)的 Production, Supply and Distribution(PSD)数据库获取并整理农业数据。

🌾 概述

本项目是一个模板,用于创建可向大语言模型(LLM)提供农业数据工具的 Model Control Protocol(MCP)服务。它展示了如何从 USDA FAS API 获取数据、处理数据,并以针对 LLM 优化的格式呈现数据。

该服务采用模块化架构,便于:

  • 添加新的数据源和工具
  • 整理复杂数据,使其适合 LLM 使用
  • 创建防止幻觉的防护措施
  • 连接到可汇总多个服务工具的 MCP 客户端

📐 架构

本项目采用 MCP(Model Control Protocol)方式实现客户端-服务端架构:

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│             │     │             │     │             │
│    LLM      │◄───►│  MCP Client │◄───►│ MCP Servers │
│             │     │             │     │             │
└─────────────┘     └─────────────┘     └─────────────┘
核心组件:
  1. MCP 客户端:

    • 汇总多个 MCP 服务的工具
    • 为 LLM 提供统一接口,以便访问所有工具
    • 根据工具名称,将工具调用路由到相应服务
  2. MCP USDA 服务:

    • 实现面向 USDA 农业数据的专用工具
    • 处理 API 调用、数据处理和格式整理
    • 以针对 LLM 优化的格式返回数据
  3. 通信协议:

    • 使用 JSON-RPC 2.0 实现标准化的客户端-服务端通信
    • 支持工具列表、工具元数据和工具执行请求

🧰 可用工具

此服务实现了五种 USDA 数据工具:

  1. usda-psd-regions:从 USDA FAS PSD 数据库获取地区数据
  2. usda-psd-countries:获取国家数据及其地区关联信息
  3. usda-psd-commodities:获取农产品定义
  4. usda-psd-units-of-measure:获取农业数量的计量单位
  5. usda-psd-commodity-attributes:获取农产品属性(生产、供应、分配)

每种工具都会从 USDA API 获取数据,根据用户查询筛选数据,并将其整理为适合 LLM 使用的 Markdown 格式。

📁 项目结构

本项目采用模块化架构:

MCP_USDA_Server/
├── src/
│   ├── tools/           # Core implementation of each tool
│   ├── handlers/        # Request handlers for each tool
│   ├── formatters/      # Format tool results for LLM consumption
│   ├── routers/         # Route requests to the appropriate handler
│   ├── utils/           # Utility functions
│   └── server.js        # Main server entry point
├── Architecture.md      # Detailed architecture documentation
└── package.json         # Dependencies and scripts
关键文件:
  • src/server.js:主入口,负责启动 HTTP 服务并初始化请求处理器
  • src/tools/registry.js:包含所有可用工具及其元数据的中央注册表
  • src/routers/toolRouter.js:将工具相关请求路由到相应处理器
  • src/tools/psd.js*:实现不同端点的 USDA PSD 数据获取
  • src/formatters/psd*Formatter.js:将 API 结果整理为适合 LLM 使用的 Markdown 格式
  • src/handlers/psd*Handler.js:处理各工具的传入请求

🔄 JSON-RPC 通信

此服务使用 JSON-RPC 2.0 与 MCP 客户端通信:

示例:

1. 工具列表请求:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {}
}

2. 工具执行请求:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/execute",
  "params": {
    "name": "usda-psd-regions",
    "args": {
      "query": "asia"
    }
  }
}

⚙️ LLM 集成

此服务不依赖特定 LLM,可与支持以下任一方式的 LLM 配合使用:

  • 函数/工具调用:适用于具备原生函数调用能力的 LLM(例如 OpenAI 的 GPT-4、Anthropic 的 Claude 3、Google 的 Gemini)
  • 指令遵循:适用于能够遵循关于可用工具的结构化指令的 LLM

此系统最适合具备以下能力的 LLM:

  1. 函数/工具调用能力
  2. 解析和生成结构化数据的能力
  3. 对农业数据的上下文理解能力

🚀 快速开始

前提条件:
  • Node.js(v14+)
  • npm 或 yarn
安装:
  1. 克隆此仓库:
git clone https://github.com/yourusername/MCP_USDA_Server.git
cd MCP_USDA_Server
  1. 安装依赖:
npm install
  1. 启动服务:
npm start

服务默认在端口 3100 上启动(可在 .env 中配置)。

连接 MCP 客户端:

此服务设计为与可汇总多个服务工具的 MCP 客户端配合使用。有关实现详情,请参阅配套的 MCP_WebAgent_Client 仓库。

🔧 扩展服务器

添加新工具:
  1. 在 src/tools/ 中创建新的工具实现
  2. 在 src/formatters/ 中创建格式化器
  3. 在 src/handlers/ 中创建处理程序
  4. 在 src/tools/registry.js 中注册工具
  5. 更新 src/routers/toolRouter.js 中的路由器

请参阅现有工具,了解实现示例。

📝 许可证

本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。

🙏 致谢

  • 感谢 USDA Foreign Agricultural Service 提供 PSD API
  • 感谢开源社区带来的灵感和模块化架构示例

此模板用于构建 MCP 服务,以便向大模型提供特定领域的数据。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。