Skip to main content

A Model Context Protocol server providing tools for time queries and timezone conversions for LLMs

Project description

NBotbb MCP Server

一个基于 Model Context Protocol(MCP)的上下文服务器,提供农资商品查询与收货地址提取能力。该服务器使大语言模型(LLM)能够理解用户关于农药、化肥等农资产品的自然语言查询(包括有效成分、品牌、规格等),并从本地数据库实时检索库存信息;同时可从任意消息中精准解析结构化收货地址,并内置对文本、图片、语音等多模态输入的透明支持。

🔗 Model Context Protocol 官网


🧰 核心能力(MCP Tools)

1. agro_product_search:农资商品查询与推荐

从用户输入中自动识别农药/化肥产品信息,并查询本地库存。

  • 适用场景:用户询问“有没有草甘膦?”、“滨农金特200ml有货吗?”
  • 识别字段
    • 产品名称(如“烯草酮”)
    • 有效成分(如“烟嘧磺隆+莠去津”)
    • 品牌(如“滨农”、“先正达”)
    • 规格(如“200毫升”、“1公斤”)
    • 用途(如“玉米田除草”、“水稻防虫”)
  • 数据源:本地 SQLite 数据库 products.db
  • 支持偏好
    • 价格最低(cheapest
    • 生产日期最新(recent
    • 折扣优先(discount
  • 输出:结构化商品列表(含价格、库存、生产日期、折扣信息)

2. agro_product_recommend:智能农资推荐

基于作物类型、病虫害、地区气候等上下文,推荐最合适的农资产品组合。

  • 适用场景:用户说“山东小麦得了锈病怎么办?”、“南方水稻防虫用什么药?”
  • 输入解析
    • 作物(如“小麦”、“水稻”)
    • 病害/虫害(如“锈病”、“稻飞虱”)
    • 地区(如“山东”、“华南”)
    • 生长期(可选)
  • 推荐逻辑
    • 匹配农业知识库 + 当地用药习惯
    • 排除禁用/高毒产品(符合国家法规)
    • 优先推荐低毒、高效、登记作物匹配的产品
  • 输出
    • 推荐商品列表(含使用剂量、安全间隔期)
    • 简明使用建议(如“亩用30ml,兑水30kg喷雾”)

💡 此工具可与 agro_product_search 联动:先推荐,再查库存。


3. extract_delivery_address:收货地址智能提取

从任意用户消息中(文本/图片/语音)精准解析完整收货信息。

  • 适用场景:用户发消息“李四 13912345678 上海浦东陆家嘴环路1000号”
  • 识别字段
    • 姓名、手机号
    • 省、市、区(自动补全层级,如“浦东” → “上海市 浦东新区”)
    • 详细地址、邮编(可选)
  • 智能清洗
    • 去重(如“北京市 北京市” → “北京市”)
    • 纠错(如“浦東” → “浦东”)
    • 标准化(统一“路/街/巷”格式)
  • 输出:标准化 JSON 地址对象,供下单或确认使用

💡 多模态输入(文本/图片/语音)由服务器内部统一处理,LLM 无需额外调用 OCR 或 ASR 工具。 图片 → 调用 Qwen-VL 识别农药包装 语音 → 调用通义千问 ASR 转写为文本 所有输入最终转化为结构化上下文,供上述两个工具使用

编译

conda create env -n uvx python=3.10 -y
conda activate uvx
pip install build twine
cd ~/autodl-tmp/servers/src/nbotbb/
python -m build .
twine upload dist/*
pypi-AgEIcHlwaS5vcmcCJDY0YjcyNTkyLTVkOTYtNGJiZC04YzFkLWQ2NWM5MTI1NmY0ZAACKlszLCI4NWJmOWE2My0wNDdkLTQ0MjItODAzNS1iZTRlMjUxN2VhNTciXQAABiANPKJRvB2uX1DL22q1HLi787Xj8G8arOetoJQufQARkg
source /etc/network_turbo
unset http_proxy && unset https_proxy
pip install --index-url https://pypi.org/simple/ your-package-name   http://mirrors.aliyun.com/pypi/simple
pip install -i http://mirrors.aliyun.com/pypi/simple/ nbotbb-w1bssjszkadbb-001

🚀 百炼部署

  • 使用 uvx
# 安装当前项目(可编辑模式)
pip install -e .

# 测试命令是否可用
mcp-server-nbotbb --local-name "测试"
pip install -i http://mirrors.aliyun.com/pypi/simple/ mcp-server-nbotbb==0.0.1

npx @modelcontextprotocol/inspector python

{
  "mcpServers": {
    "NBotbb": {
      "command": "uvx",
      "args": ["mcp-server-nbotbb"]  
    }
  }
}

https://pypi.org/project/mcp-server-nbotbb/0.8.2/

🌐 多模态输入自动处理(透明化)

输入类型 处理方式
文本 纯文本输入,无需处理
图片 调用 Qwen-VL 识别包装,返回结构化结果
语音 调用通义千问 ASR 转写为文本,返回结构化结果
最终,所有工具接收的都是干净的结构化文本上下文

🛠️ MCP 工具定义(供 LLM 调用)

  • agro_product_search
{
  "name": "agro_product_search",
  "description": "根据用户描述查询农资商品库存、价格与规格",
  "parameters": {
    "type": "object",
    "properties": {
      "query_text": { "type": "string", "description": "用户原始输入(已含多模态解析结果)" },
      "preferences": {
        "type": "object",
        "properties": {
          "price_preference": { "enum": ["cheapest", "default"] },
          "date_preference": { "enum": ["recent", "default"] }
        }
      }
    }
  }
}
  • extract_delivery_address
{
  "name": "extract_delivery_address",
  "description": "从用户消息中提取并标准化收货地址信息",
  "parameters": {
    "type": "object",
    "properties": {
      "message": { "type": "string", "description": "用户原始消息(已转为文本)" }
    },
    "required": ["message"]
  }
}

💬 示例对话

用户:
有滨农金特200毫升的烯草酮吗?想要最近生产日期的。

AI 调用 agro_product_search 后回复:
老板,为您查询到
🔍 关键词: 烯草酮
🛒 烯草酮 200ml
🏪 店铺:劲牛农资旗舰店
💰 规格和价格:
• 200ml:¥35.00 (🟢 有货:12) 生产日期:2025-10-01 折扣活动:无
`

用户:
李四,手机号13912345678,地址:上海市浦东新区陆家嘴环路1000号

AI 调用 extract_delivery_address 后回复:
📦 已为您提取地址信息:
👤 姓名:李四
📞 手机:13912345678
📍 地址:上海市 浦东新区
🏠 详细:陆家嘴环路1000号

请确认地址信息是否正确?

🐞 调试

使用 MCP Inspector 实时查看工具调用:

bash npx @modelcontextprotocol/inspector uvx jinniu-mcp-server

📦 项目结构

nbotbb/
├── src/
│   └── nbotbb_mcp_server/
│       ├── __init__.py          # main() 入口       ├── __main__.py          # 支持 python -m       ├── server.py            # MCP Server 初始化       └── tools/
│           ├── product_search.py     # agro_product_search           ├── product_recommend.py  # agro_product_recommend           └── address_extract.py    # extract_delivery_address
├── products.db                  # 农资商品数据库(需自行准备)
├── .env                         # DASHSCOPE_API_KEY 等
├── pyproject.toml
├── Dockerfile
└── README.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_nbotbb-0.8.5.tar.gz (28.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_nbotbb-0.8.5-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_nbotbb-0.8.5.tar.gz.

File metadata

  • Download URL: mcp_server_nbotbb-0.8.5.tar.gz
  • Upload date:
  • Size: 28.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for mcp_server_nbotbb-0.8.5.tar.gz
Algorithm Hash digest
SHA256 139e1dae50ddda9ab0b95d7195d682060e81ebad5e7fe593b233dec6d3ef7a73
MD5 e32c57fd8f8d10c0664fa9adff3d3b6e
BLAKE2b-256 d1ea5d091cc39c9414791ea92bedc6e482b7e85971e935efac9951f71d8991f9

See more details on using hashes here.

File details

Details for the file mcp_server_nbotbb-0.8.5-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_nbotbb-0.8.5-py3-none-any.whl
Algorithm Hash digest
SHA256 000a4c4001f5a969a4763a682b84d6eb058f00c8b05e0da2df70fc4e7d0f512a
MD5 2aff1be2252534afef8919953c71cd53
BLAKE2b-256 4f55853a471fec91811f0c5750bc857afef64de83972a3cca6ae7febd523affa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page