Skip to main content
Glama
handaas

agriculture-mcp-server

by handaas

农业:农产品价格监控预警

该MCP服务提供农产品价格行情、批发市场、每日价格、农业价格指数和日周月市场分析报告查询功能,为价格监控、流通分析和预警研判提供数据。

主要功能

  • 🥬 农产品价格行情搜索

  • 🏪 农产品批发市场及市场规模查询

  • 📅 农产品每日产地与市场价格查询

  • 📈 农产品高低价和涨跌监控

  • 📊 农业价格指数查询

  • 📰 日度、周度和月度市场报告

Related MCP server: Ecommerce Price Monitor MCP

环境要求

  • Python 3.10+

  • 依赖包:python-dotenv, requests, mcp

本地快速启动

1. 克隆项目

git clone https://github.com/handaas/agriculture-mcp-server
cd agriculture-mcp-server

2. 创建虚拟环境&安装依赖

python -m venv mcp_env && source mcp_env/bin/activate
pip install -r requirements.txt

3. 环境配置

复制环境变量模板并配置:

cp .env.example .env

编辑 .env 文件,配置以下环境变量:

INTEGRATOR_ID=your_integrator_id
SECRET_ID=your_secret_id
SECRET_KEY=your_secret_key
HANDAAS_REQUEST_TIMEOUT=30

4. streamable-http启动服务

python server/mcp_server.py streamable-http

服务将在 http://localhost:8000 启动,MCP 地址为 http://127.0.0.1:8000/mcp

支持启动方式 stdio 或 sse 或 streamable-http

5. Cursor / Cherry Studio MCP配置

{
  "mcpServers": {
    "agriculture-mcp-server": {
      "type": "streamableHttp",
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

STDIO版安装部署

设置Cursor / Cherry Studio MCP配置

{
  "mcpServers": {
    "agriculture-mcp-server": {
      "command": "uv",
      "args": ["run", "mcp", "run", "{workdir}/server/mcp_server.py"],
      "env": {
        "PATH": "{workdir}/mcp_env/bin:$PATH",
        "PYTHONPATH": "{workdir}/mcp_env",
        "INTEGRATOR_ID": "your_integrator_id",
        "SECRET_ID": "your_secret_id",
        "SECRET_KEY": "your_secret_key"
      }
    }
  }
}

使用官方Remote服务

当前服务暂未开放官方 Remote 地址。请使用本地 stdiossestreamable-http 方式运行;官方 Remote 地址开放后将在本节补充配置。

注意:integrator_id、secret_id、secret_key及Remote token需要登录 https://www.handaas.com/ 进行注册开通平台获取

推荐调用流程

  1. 使用 agriculture_product_search 按名称搜索农产品,获取稳定的 productId 和最新行情摘要。

  2. 使用 agriculture_wholesale_market_list 查询该农产品覆盖的批发市场、历史价格和市场规模。

  3. 使用 agriculture_daily_price_list 按产地和日期范围查询每日价格,分析时间趋势与区域价差。

  4. 使用 agriculture_price_index 获取指定日期的农业价格指数,判断整体市场变化。

  5. 使用 agriculture_market_report 获取日度、周度或月度报告,为价格波动和预警结论补充市场解释。

用户未指定具体农产品时,批发市场和每日价格 Tool 也支持不传 productId 分页浏览;需要围绕单一农产品分析时,应优先完成第1步。

可用工具

功能: 农产品价格行情搜索

Product ID: 6a7c58fd71276c00fb93e980

按农产品名称发现标准农产品记录,返回最新行情、产地和市场摘要,并为后续批发市场和每日价格查询提供 productId

参数:

  • productName (可选): 农产品名称,支持模糊搜索

  • pageIndex (可选): 页码,从1开始

  • pageSize (可选): 每页条数,默认10,最大10

返回值:

  • total: 农产品总数

  • resultList: 农产品行情列表

    • classification: 产品分类

    • productId: 农产品ID,供批发市场和每日价格明细查询使用

    • productName: 产品名称

    • date: 行情日期

    • doD: 涨跌幅

    • bulkAveragePrice: 大宗均价

    • highPrice: 最高价

    • lowPrice: 最低价

    • unit: 价格单位

    • marketNameCount: 有行情数据的市场数量

    • originCount: 有行情数据的产地数量

    • originBulkAveragePriceList: 产地均价列表

    • highPriceMarket / lowPriceMarket: 高低价市场

    • highPriceOrigin / lowPriceOrigin: 高低价产地

    • priceChange: 价格变动

    • newHighPriceMarket / newLowPriceMarket: 最新高低价市场

2. agriculture_wholesale_market_list

功能: 农产品批发市场明细查询

Product ID: 6a8447989fbf4ea45da8d758

通过农产品ID查询其覆盖的批发市场、历史价格和市场规模,也可不传农产品ID分页浏览全部记录。

参数:

  • productId (可选): 农产品ID,建议使用 agriculture_product_search 返回的 productId

  • pageIndex (可选): 页码,从1开始,默认1

  • pageSize (可选): 每页条数,默认10,最大10

返回值:

  • total: 批发市场记录总数

  • resultList: 批发市场明细列表

    • marketName: 市场名称

    • marketType: 市场类型

    • province: 所属地区

    • maxPrice: 历史最高价,单位元/公斤

    • minPrice: 历史最低价,单位元/公斤

    • avgPrice: 历史均价,单位元/公斤;MCP根据上游 avg 字段补充该稳定别名

    • avg: 上游原始历史均价值,保留用于兼容已有调用方

    • newMarketName: 标准化市场名称,上游存在时返回

    • siteArea: 占地面积,单位平方米

    • buildingArea: 建筑面积,单位平方米

3. agriculture_daily_price_list

功能: 农产品每日价格明细查询

Product ID: 6a844b2a9fbf4ea45da8d7b2

按农产品、产地和日期范围查询各批发市场每日价格,支持价格趋势、产地价差和市场行情分析。

参数:

  • productId (可选): 农产品ID,建议使用 agriculture_product_search 返回的 productId

  • origin (可选): 产地,使用省份全称,例如广东省

  • startDate (可选): 起始日期,格式YYYY-MM-DD

  • endDate (可选): 截止日期,格式YYYY-MM-DD

  • pageIndex (可选): 页码,从1开始,默认1

  • pageSize (可选): 每页条数,默认10,最大10

返回值:

  • total: 每日价格记录总数

  • resultList: 每日价格明细列表

    • marketName: 市场名称

    • origin: 产地

    • highestPrice: 最高价,单位元/公斤

    • lowestPrice: 最低价,单位元/公斤

    • bulkPrice: 大宗均价,单位元/公斤

    • date: 日期

4. agriculture_price_index

功能: 农业价格指数查询

Product ID: 6a7c626971276c00fb93eab7

按发布日期查询农产品批发、菜篮子、粮油等价格指数,返回当前值、前日值和环比变化。

参数:

  • publishTime (必需): 发布日期,格式YYYY-MM-DD

返回值:

  • total: 指数记录数量

  • resultList: 价格指数列表

    • publishTime: 发布日期

    • currentIndexValue: 当前指数值

    • previousIndexValue: 前日指数值

    • indexName: 指数名称

    • indexType: 指数类型

    • chainRatio: 环比变化

5. agriculture_market_report

功能: 农业市场分析报告查询

Product ID: 6a7c637bc90c69ced247c56c

查询最近的农业市场日度、周度或月度报告,用于解释价格波动、供需变化和阶段性市场趋势。

参数:

  • reportType (必需): 报告类型,可选day、week、month

  • size (可选): 返回报告数量,默认3,范围1至9

返回值:

  • total: 上游报告总数

  • resultList: 最近报告列表,最多返回 size

    • publishTime: 发布日期

    • reportTitle: 报告标题

    • reportContent: 报告内容

    • reportType: 报告类型

    • reportSource: 报告来源

使用注意事项

  1. 农产品ID: 批发市场和每日价格查询建议先调用 agriculture_product_search 获取 productId

  2. 分页限制: 所有分页查询一页最多10条。

  3. 价格单位: 批发市场和每日价格明细统一为元/公斤;价格行情需结合返回的 unit 解读。

  4. 产地格式: 每日价格明细的 origin 使用省份全称,例如广东省。

  5. 日期范围: startDate 不能晚于 endDate,格式均为YYYY-MM-DD。

  6. 指数日期: 指数缺失日期不做插值,直接返回合法空结果。

  7. 报告类型: reportType 只支持day、week、month,size 范围为1至9。

  8. 预警边界: 服务提供监控和研判数据,不在后台持续运行,也不主动发送告警。

  9. 405诊断: 如果返回HTML类型的HTTP 405,通常是本机DNS Fake-IP、PAC或透明代理拒绝POST,并非对接器未配置商品。

  10. 统一响应: 成功响应顶层统一为 total/resultList;详情未命中时返回 total=0 和空列表。

  11. 错误响应: 参数校验失败会返回 errorparameter;网关失败会返回 errorstatusCode,HTML 405还会返回 diagnostic

使用提问示例

  1. 查询白菜最近的均价和涨跌情况

  2. 查看苹果的最高价和最低价市场

  3. 搜索名称中包含“猪肉”的农产品行情

agriculture_wholesale_market_list (农产品批发市场明细查询)

  1. 查询白菜覆盖了哪些批发市场

  2. 查看该农产品各批发市场的历史最高价、最低价和均价

  3. 分析该农产品批发市场的地区分布和市场规模

agriculture_daily_price_list (农产品每日价格明细查询)

  1. 查询白菜最近30天在各批发市场的每日价格

  2. 查看广东省苹果在指定日期范围内的最高价和最低价

  3. 对比同一农产品不同产地的大宗均价变化

agriculture_price_index (农业价格指数查询)

  1. 查询2026年8月11日的农业价格指数

  2. 查看指定日期菜篮子指数的环比变化

  3. 对比当天指数当前值和前日值

agriculture_market_report (农业市场分析报告查询)

  1. 获取最近3份农业周报

  2. 查询最近2份农业日报

  3. 获取最近6个月的农业月度市场报告

测试验证

python -m py_compile server/mcp_server.py
python -m unittest discover -s tests -v

当前服务包含 12 个离线单元测试。

真实接口 smoke 测试:

python tests/live_api_smoke.py

如果本机代理将 console.handaas.com 解析为 198.18.x.x Fake-IP,可临时指定由网络管理员或公共DNS确认的真实网关IP:

HANDAAS_GATEWAY_RESOLVE_IP=<real_gateway_ip> python tests/live_api_smoke.py

smoke 测试只输出记录数量和字段名,不输出真实业务内容、请求签名或凭据。

可通过环境变量调整 smoke 测试样本:

HANDAAS_TEST_PRODUCT_NAME=苹果 \
HANDAAS_TEST_INDEX_DATE=2026-08-12 \
python tests/live_api_smoke.py

2026-08-25 真实验证结果

Tool

验证条件

上游总数

结果

agriculture_product_search

关键词“白菜”

3

通过

agriculture_wholesale_market_list

使用搜索返回的 productId

76

通过

agriculture_daily_price_list

使用搜索返回的 productId

17657

通过

agriculture_price_index

publishTime=2026-08-11

9

通过

agriculture_market_report

reportType=week, size=2

240

通过

本地 Streamable HTTP 服务启动、MCP初始化、5个Tool注册和5次真实MCP调用均已通过。工作区全部7个新服务的扩展验证矩阵为45/45通过。

HTTP 405排障

console.handaas.com 被本机代理解析为 198.18.x.x Fake-IP 时,POST可能在代理边缘被拒绝并返回HTML 405。此时应优先将该域名加入代理直连或 Fake-IP 排除规则。HANDAAS_GATEWAY_RESOLVE_IP 仅用于本地测试时临时验证真实网关,不建议将固定IP写入生产配置。

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time crop price data from Indian government sources and agricultural web search capabilities. Enables AI chatbots to access comprehensive agricultural market information and news for farming-related queries.
    -
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Taiwan's agricultural wholesale market real-time price data, providing 6 tools to search products and query trade data at daily, weekly, monthly, yearly granularities, plus cross-market comparisons.
    6
    MIT