数据库访问工具

一个基于Model Context Protocol (MCP)和FastMCP的简单演示项目,用于通过MCP协议暴露本地SQLite数据库,使客户端(如Claude的Web界面)能够调用结构化工具进行数据访问。

  • by AightBits
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AightBits/mcp_server_example

使用说明

最小化的MCP HTTP/SSE服务器示例

一个简单的演示 模型上下文协议(MCP) 使用 FastMCP 以及一个SQLite数据库。
这个项目展示了如何通过MCP(管理控制平面)暴露本地数据库,以便客户端(如Claude的网页界面)可以调用结构化工具来访问数据。

依赖项

  • Python 3.9及以上版本
  • fastmcp (通过安装 requirements.txt)
  • SQLite(随Python一起提供)
  • Caddy(用于反向代理和在通过HTTPS暴露时自动TLS)

安装要求如下:

pip install -r requirements.txt

设置

创建一个虚拟环境并安装依赖项:

./setup.sh

初始化数据库(仅在数据库不存在时创建):

python init_demo_db.py

用法

启动MCP服务器:

source start.sh

服务器在本地运行 http://127.0.0.1:8000/mcp。
如果通过Caddy和一个有效的域名进行访问,它将通过HTTPS可用。

与Claude Web集成

  1. 首选 Claude.ai → 设置 → 集成 → 添加自定义集成。
  2. 输入您的公共MCP终端节点,例如:
    https://[address]/mcp
    
  3. 在聊天中启用该连接器,并尝试使用以下提示:
    • Get customer 1
    • List orders for customer 1
    • call tool sql_select {"sql": "SELECT * FROM customers;"}

文件

  • setup.sh – 创建Python虚拟环境并安装依赖项。
  • start.sh – 激活环境并启动MCP服务器。
  • init_demo_db.py – 初始化一个包含测试数据的简单SQLite数据库。
  • mcp_server_example.py – MCP服务器将SQLite查询作为工具暴露出来。
  • requirements.txt – Python 依赖项。

局限性

  • 仅演示了一个玩具级的 SQLite 数据库(包含客户和订单)。
  • 无需认证——仅供本地/演示使用。
  • 需要一个可用的域名和TLS代理(例如Caddy)来与Claude Web进行集成。

许可证

Apache 2.0 许可证。