模型链提供服务器

一个基于FastMCP的MCP服务器,用于暴露与MySQL数据库交互的工具,并通过Streamlit应用和Llama Index创建功能代理。

  • by Gustavo-Macedo1
  • Python
  • 混合部署
  • 更新于
在 GitHub 查看 Gustavo-Macedo1/MCP-Teste-HBr-CIIA-2

使用说明

演示HBr-MCP服务器

描述

这个存储库包含一个简单的模型链提供商(MCP)服务器,使用FastMCP来展示与MySQL数据库交互的工具。该项目还包括一个Streamlit应用程序(app.py通过 Llama Index(使用 BasicMCPClient) 并且可以创建一个调用服务器上注册的工具的代理。

主要组件

  • servidor.py MCP 服务器注册用于操作表的工具 tomografo.
  • app.py Streamlit 应用程序通过 Llama Index 创建 FunctionAgent 代理并使用 MCP 工具。美国 OpenAI (或其他配置的LLM)运行代理和 BasicMCPClient 进入MCP服务器。
  • cliente_ollama.ipynb — 带备用客户端示例的笔记本电脑。

功能(已更新)

  • MCP 工具可在 servidor.py:
    • add_data(query: str) -> bool 在表中执行 INSERT tomografo.
    • read_data(query: str = "SELECT * FROM tomografo") -> str 执行 SELECT 并返回带有结果的 JSON。
    • erase_data(query: str) -> bool --executa删除。
    • update_data(query: str) -> dict — 执行 UPDATES 并返回 status + 受影响的行。
    • create_bar_chart(x: list, y: list, x_label: str, y_label: str) -> str 准备一个JSON有效载荷,指定条形图(类型 bar_chart客户端应用程序可以绘制(Streamlit)。

要求

  • Python 3.8+
  • MySQL服务器(创建一个银行) hbr_demo_db 或更新 servidor.py 使用的名称)。
  • Ollama(可选,用于本地模板运行)或其他配置在 app.py.
  • Python 依赖列在 requirements.txt.

相关设置( 已更新)

  • 嗯 servidor.py,函数 init_db() 默认使用 :

    • 用户: root
    • 密码: pass123
    • 主机: 127.0.0.3
    • 数据库: hbr_demo_db

    您可以直接在文件中更改这些值,或调整以使用环境变量。如果数据库不存在,请在服务器启动前创建它:

    CREATE DATABASE IF NOT EXISTS hbr_demo_db;
    

如何运行(PowerShell)

  1. 安装 Python 依赖关系
python -m pip install -r requirements.txt
  1. 配置MySQL
  • 确保 MySQL 正在运行,并且基础 hbr_demo_db 存在 。更新凭据/主机 servidor.py 如有必要。
  1. (可选) 准备本地或云模型
  • 如果您打算使用Ollama作为本地LLM提供商,请安装Ollama并加载所需模板(例如: qwen3:4b)。如果您正在使用 OpenAI,请定义 OPENAI_API_KEY 在您的环境中(在一个文件中) .env).
  1. 启动或MCP服务器
python servidor.py --server_type=sse
  1. 运行 Streamlit 应用程序(客户端)
streamlit run app.py

对 的 评论 app.py

  • 哦 app.py 创建一个 FunctionAgent 使用 Call Index 搜索 MCP 工具 BasicMCPClient 默认指向 http://127.0.0.1:8000/sse.
  • 该应用程序希望您在下面设置了兼容的LLM app.py默认情况下,代码使用 OpenAI 随着环境变量 OPENAI_API_KEY.

快速使用

  • INSERT 调用示例 add_data:
INSERT INTO tomografo (nomePaciente, idade, resultados)
VALUES ('Alice Guerra', 25, 'Retinopatia diabética');
  • SELECT via 示例 read_data (返回 JSON):
SELECT * FROM tomografo;
  • UPDATE 例子 update_data:
UPDATE tomografo SET idade = 32 WHERE nomePaciente = 'Ana Beatriz';

故障排除注意事项

  • MySQL连接错误:请检查用户/密码/主机/端口以及MySQL服务是否处于活动状态。
  • 数据库不存在: 创建 hbr_demo_db 手动或更新 servidor.py 指向正确的银行。
  • Ollama 问题:请确认指定的模型已安装并在本地可用。
  • 终点MCP: app.py 笔记本电脑默认使用 http://127.0.0.1:8000/sse如果您在另一个主机/端口上启动服务器,请更新。

安全和隐私

  • 这个项目是一个示例/演示。不要在仓库中存储敏感的凭据。使用环境变量或安全的配置文件来生成凭据。

建议的下一步

  • 添加一个 LICENSE 适当。
  • 包括用于 lint/tests 的 CI(例如 GitHub Actions)。
  • 为 MCP 工具添加自动示例和单元测试。

贡献

随时打开 issues 和 pull requests。对于更大的更改,请描述用例并包括可重复测试。

已修改/兼容的主要文件

  • servidor.py --注册为MCP的ferramentas:add_data、read_data、erase_data、update_data、create_bar_chart。
  • app.py --应用程序Streamlit que monta um FunctionAgent通过Llama Index e consome作为工具通过 BasicMCPClient.

联系方式

该项目由HBr - CIIA团队维护。