项目简介
本项目 'MCP-Servers' 提供了基于 Model Context Protocol (MCP) 的服务器示例,旨在演示如何构建可以为大型语言模型 (LLM) 提供外部数据访问能力的后端服务。目前包含了文件系统服务器和SQL数据库服务器两个示例,它们可以作为 LLM 的工具,扩展 LLM 的能力边界,使其能够安全、可控地与外部环境进行交互。这些服务器设计与 CAMEL-AI 框架配合使用,但也可作为独立的 MCP 服务器应用于其他支持 MCP 协议的 LLM 客户端。
主要功能点
- 文件系统服务器:
- 提供读取文件内容的功能。
- 提供列出目录内容的功能。
- SQL数据库服务器:
- 提供执行SQL查询的功能,支持 SELECT、INSERT、UPDATE、DELETE 等操作。
- 提供列出数据库中所有表的功能。
- 提供创建SQLite数据库的功能。
- 提供描述表结构的功能,返回表的字段信息。
- 基于 MCP 协议: 服务器均基于 'FastMCP' 框架实现,遵循 MCP 协议标准,易于与各种 MCP 客户端集成。
- 工具化接口: 所有功能均以 “工具 (Tools)” 的形式暴露,方便 LLM 客户端通过标准化的方式调用。
- 示例完善: 每个服务器都配备了详细的示例代码和单元测试,方便用户理解和使用。
安装步骤
-
环境准备: 确保已安装 Python 3.8 或更高版本。建议使用虚拟环境 (venv) 管理项目依赖。
python3 -m venv venv source venv/bin/activate # 或 venv\Scripts\activate (Windows) -
安装依赖: 虽然仓库中没有 'requirements.txt' 文件,但根据代码内容,你可能需要安装 'camel-ai' 和 'fastmcp' 库。如果运行示例代码,还需要安装 'python-dotenv'。
pip install camel-ai fastmcp python-dotenv
服务器配置
MCP 服务器需要配置后才能被 MCP 客户端(例如 CAMEL-AI 工具包)调用。以下是文件系统服务器和 SQL 数据库服务器的配置示例,你需要将这些配置信息提供给你的 MCP 客户端。
1. 文件系统服务器配置
- 服务器名称 (server name): 例如 'filesystem_server' (名称可自定义,客户端配置中保持一致即可)
- 启动命令 (command): Python 解释器路径,通常为 'python3' 或 Python 解释器的完整路径,例如 '/usr/bin/python3' 或 'C:\Python39\python.exe'。
- 启动参数 (args): 包含服务器脚本路径和传输模式。
- 服务器脚本路径: 'filesystem_server/filesystem_server_mcp.py' (相对于仓库根目录的路径)
- 传输模式: 'stdio' (标准输入输出) 或 'sse' (服务器发送事件)。推荐使用 'stdio' 模式。
文件系统服务器 JSON 配置示例:
{ "server_name": "filesystem_server", "command": "python3", "args": ["filesystem_server/filesystem_server_mcp.py", "stdio"] }
2. SQL 数据库服务器配置
- 服务器名称 (server name): 例如 'sql_server'
- 启动命令 (command): Python 解释器路径,同文件系统服务器。
- 启动参数 (args): 包含服务器脚本路径和传输模式。
- 服务器脚本路径: 'sql_server/sql_server_mcp.py'
- 传输模式: 'stdio'
SQL 数据库服务器 JSON 配置示例:
{ "server_name": "sql_server", "command": "python3", "args": ["sql_server/sql_server_mcp.py", "stdio"] }
注意:
- 上述 JSON 配置仅为示例,你需要根据你的实际环境调整 'command' 和脚本路径。
- 确保 MCP 客户端能够访问到服务器脚本的路径。
- 传输模式 ('stdio' 或 'sse') 需要与服务器和客户端配置保持一致。
基本使用方法
-
启动 MCP 服务器: 在终端中,进入 'filesystem_server' 或 'sql_server' 目录,然后运行相应的服务器脚本。例如,启动 SQL 数据库服务器 (stdio 模式):
cd sql_server python sql_server_mcp.py stdio启动文件系统服务器 (stdio 模式):
cd filesystem_server python filesystem_server_mcp.py stdio服务器成功启动后,通常会保持运行状态,等待客户端请求。
-
配置 MCP 客户端: 在你的 MCP 客户端 (例如 CAMEL-AI 应用) 中,配置服务器连接信息。你需要提供服务器的名称、启动命令、启动参数等信息,确保客户端能够正确启动并连接到 MCP 服务器。 CAMEL-AI 的 'MCPToolkit' 可以直接使用上述 JSON 配置信息来连接和管理 MCP 服务器。
-
使用工具: 在 LLM 应用中,你可以通过 MCP 客户端调用服务器提供的工具。例如,在 CAMEL-AI 中,你可以使用 'MCPToolkit' 获取工具列表,并在对话中使用这些工具来执行文件系统操作或数据库查询。 具体使用方法可以参考仓库中 '*_example_run.py' 文件中的示例代码。
例如,使用 CAMEL-AI 与 SQL Server 交互,你可以参考 'sql_server/sql_example_run.py' 文件,运行该示例,并根据提示与 SQL 助手进行交互,体验通过 MCP 服务器进行数据库查询的功能。 文件系统服务器的使用方法类似,可以参考 'filesystem_server/example_filesystem_server.py' 文件。
信息
分类
数据库与文件