药品采购数据分析服务

AI驱动的MCP服务器,提供10种工具用于分析马哈拉施特拉邦药品批发采购数据。

  • by RajendraPrasad96536
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 RajendraPrasad96536/inventory-mcp-server

使用说明

马哈拉施特拉邦药品采购——FastMCP服务器

人工智能驱动的MCP服务器,让Claude(或任何MCP客户端)进行分析 马哈拉施特拉邦批发药品采购数据通过10个重点工具。


项目结构

medicine_mcp_server/
├── server.py                         # MCP server (all tools)
├── data/
│   └── maharashtra_wholesale_medicine_purchase.csv
├── pyproject.toml
└── README.md

快速开始

1.安装依赖项

pip install fastmcp pandas google-generativeai

2.设置Gemini API密钥(仅用于 natural_language_query)

export GEMINI_API_KEY=AIza...
# or: export GOOGLE_API_KEY=AIza...

获取免费钥匙https://aistudio.google.com/app/apikey

3.本地运行(stdio传输--克劳德桌面/mcp远程)

python server.py

4.作为HTTP服务器运行(SSE传输--Azure应用服务/任何HTTP主机)

# In server.py, change the last line to:
mcp.run(transport="sse", host="0.0.0.0", port=8000)

或者通过CLI传递:

fastmcp run server.py --transport sse --host 0.0.0.0 --port 8000

Claude桌面配置(claude_desktop_config.json)

{
  "mcpServers": {
    "medicine": {
      "command": "python",
      "args": ["/path/to/medicine_mcp_server/server.py"],
      "env": {
        "GEMINI_API_KEY": "AIza..."
      }
    }
  }
}

Azure应用服务部署

  1. 将项目推送到Azure应用服务。
  2. 集 ANTHROPIC_API_KEY 作为应用程序设置。
  3. 设置启动命令:
    fastmcp run server.py --transport sse --host 0.0.0.0 --port 8000
    
  4. 在克劳德桌面/ mcp-remote,指向:
    https://<your-app>.azurewebsites.net/sse
    

可用工具

# 工具 目的
1 search_medicines 按产品/制造商/供应商/买家搜索
2 get_invoice_details 一张或多张发票的整行项目
3 filter_by_schedule 按药物表筛选(H、H1、X、G、OTC)
4 get_expiry_alerts N天内过期的药品
5 analyse_supplier 供应商的支出和发票摘要
6 analyse_buyer 买家的购买历史和日程组合
7 top_products_by_spend 按应税金额/数量对产品进行排名
8 gst_summary 按发票/供应商/买方分列的CGST/SGST/IGST明细
9 cold_chain_and_narcotic_items 冷链和附表X项目
10 natural_language_query Claude回答的自由形式NL问题

示例查询(自然语言工具)

  • “哪家供应商销售的附表H药物最多?”
  • “Ganesh Medical Store支付的商品及服务税总额是多少?”
  • “列出2024年4月购买的所有Cipla产品。”
  • “哪些药物在2025年12月之前过期?”
  • “按总支出显示前5名产品。”
  • “哪些发票的折扣率最高?”
  • “附表X药物的平均MRP是多少?”

扩展到更大的数据集

CSV路径设置在 server.py:

CSV_PATH = os.path.join(os.path.dirname(__file__), "data", "maharashtra_wholesale_medicine_purchase.csv")

使用相同的列架构将CSV替换为更大的文件,然后重新启动 服务器。所有工具都将自动处理新数据。对于数据集

10万行考虑加载到Azure认知搜索中并替换 _load_df() 具有搜索索引查询功能。