项目简介
此项目是 'ai-data-handbook' 仓库中包含的一个 Python MCP (Model Context Protocol) 服务器示例。它利用 'FastMCP' 库构建,能够将定义好的 Python 函数注册为工具,并通过标准 JSON-RPC 协议向外部 LLM(大型语言模型)客户端提供服务。该服务器专注于与 SQLite 数据库进行交互,提供了数据添加和查询功能。
主要功能点
- 数据操作工具: 提供了 'add_data' 和 'read_data' 两个工具函数。LLM 客户端可以通过这些工具,以 SQL 查询语句的形式对服务器托管的 SQLite 数据库中的 'people' 表进行数据增、删、改、查操作。
- 标准化协议支持: 服务器基于 Model Context Protocol (MCP) 构建,支持 'Stdio' 和 'SSE'(Server-Sent Events)等多种传输协议,确保与 MCP 客户端的兼容性。
- 会话管理与能力声明: 'FastMCP' 框架处理会话管理、服务器能力声明等底层协议细节,使开发者能够专注于业务逻辑。
- 可扩展性: 开发者可以轻松地在 'server.py' 文件中添加更多 Python 函数,并使用 '@mcp.tool()' 装饰器将其注册为新的 MCP 工具,从而快速扩展服务器的功能。
安装步骤
- 环境准备: 确保您的系统已安装 Python 3.8 或更高版本。
- 克隆仓库: 将 'ai-data-handbook' 仓库克隆到本地:
git clone https://github.com/emredeveloper/ai-data-handbook.git cd ai-data-handbook - 进入项目目录: 切换到 MCP 服务器示例所在的目录:
cd MCP-Local - 安装依赖: 安装运行此 MCP 服务器所需的 Python 库。
pip install modelcontextprotocol pydantic-ai uvicorn- 'modelcontextprotocol':提供了 'FastMCP' 框架的核心组件。
- 'pydantic-ai':包含了用于 MCP 客户端和代理的实用工具,尽管不是运行服务器的直接依赖,但在某些示例中会用到。
- 'uvicorn':用于运行 FastAPI 应用('FastMCP' 内部使用)。
- 'sqlite3':Python 内置,无需额外安装。
服务器配置(供 MCP 客户端参考)
要将此 MCP 服务器连接到 MCP 客户端,客户端需要以下配置信息:
{ "server_name": "sqlite-demo", "command": "python", "args": [ "path/to/ai-data-handbook/MCP-Local/server.py", "--server_type=sse" ], "description": "一个与 SQLite 数据库交互的本地 MCP 服务器,支持数据添加和读取。", "protocol": "SSE", "host": "127.0.0.1", "port": 8000, "url_suffix": "/sse" }
注释:
- 'server_name': 此 MCP 服务器实例的唯一标识名称。
- 'command': 启动服务器所执行的程序(这里是 'python')。
- 'args': 传递给 'command' 的参数列表。其中 'path/to/ai-data-handbook/MCP-Local/server.py' 需要替换为 'server.py' 文件的实际绝对路径或相对路径(相对于客户端的启动目录)。'--server_type=sse' 指定服务器使用 Server-Sent Events (SSE) 协议进行通信;您也可以改为 '--server_type=stdio' 使用标准输入/输出协议。
- 'description': 服务器功能的简要描述。
- 'protocol': 服务器使用的通信协议。
- 'host' 和 'port': 服务器监听的 IP 地址和端口。默认情况下,'FastMCP' 会在 '127.0.0.1:8000' 上启动一个 HTTP 服务器来支持 SSE。
- 'url_suffix': 对于基于 HTTP 的协议(如 SSE),这是客户端连接的具体路径。
基本使用方法
-
启动 MCP 服务器: 在 'ai-data-handbook/MCP-Local' 目录下打开您的终端或命令行工具,运行以下命令启动服务器:
python server.py --server_type=sse服务器启动后,您将看到日志输出,表明服务器正在监听连接。首次运行会默认创建一个名为 'demo.db' 的 SQLite 数据库文件(如果该文件不存在)。
-
使用 MCP 客户端进行交互: 在另一个终端窗口或命令行工具中(仍需在 'ai-data-handbook/MCP-Local' 目录下),运行提供的客户端脚本来与服务器交互:
python client.py客户端将连接到服务器并显示可用的工具列表。您可以根据提示输入自然语言查询,例如:
- 'Add a person named 'Jane Doe' with age 28 and profession 'Data Scientist'' (添加数据)
- 'Read all people in the database' (读取所有数据)
- 'List the names and ages of people older than 30' (带条件查询)
客户端会通过 LLM 将您的查询转换为对服务器工具的调用,并返回结果。
信息
分类
数据库与文件