Dolphin MCP 是一个灵活的 Python 库和命令行工具,用于通过自然语言与 MCP(Model Context Protocol)服务器交互。它可以连接任意数量已配置的 MCP 服务器,将其工具提供给语言模型(OpenAI、Anthropic、Ollama、LMStudio),并提供会话式界面来访问和操作这些服务器中的数据。
主要能力
- 多提供商支持:兼容 OpenAI、Anthropic、Ollama 和 LMStudio 模型。
- 模块化架构:按提供商分离模块,职责清晰。
- 双接口:既可作为 Python 库使用,也可作为命令行工具使用。
- MCP 服务器集成:可同时连接任意数量的 MCP 服务器。
- 工具发现:自动发现并使用 MCP 服务器提供的工具。
- 灵活配置:通过 JSON 配置模型和服务器。
- 环境变量支持:安全地将 API 密钥存储在环境变量中。
- 详尽文档:提供详细的使用示例和 API 文档。
- 可安装包:通过 pip 安装,提供 dolphin-mcp-cli 命令。
安装前提
需要 Python 3.10+、SQLite(演示用轻量数据库)、uv/uvx(快速 Python 包安装器和解析器)。各平台安装方式见官方文档。
安装方式
方式一:从 PyPI 安装(推荐),同时安装库和 dolphin-mcp-cli 命令行工具。 方式二:从源码安装:
git clone https://github.com/QuixiAI/dolphin-mcp.git
cd dolphin-mcp
pip install -e .
设置环境变量:复制示例文件并添加 OpenAI API 密钥:
cp .env.example .env
然后编辑 .env 文件添加 OpenAI API 密钥。
(可选)设置演示海豚数据库:python setup_db.py,创建一个包含海豚信息的示例 SQLite 数据库用于测试。
配置
项目使用两个主要配置文件:
- .env:包含 OpenAI API 配置:
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-4o
# OPENAI_BASE_URL=https://api.openai.com/v1 # 如使用自定义 base url 可取消注释并修改
- mcp_config.json:定义要连接的 MCP 服务器:
{
"mcpServers": {
"server1": {
"command": "command-to-start-server",
"args": ["arg1", "arg2"],
"env": {
"ENV_VAR1": "value1",
"ENV_VAR2": "value2"
}
},
"server2": {
"command": "another-server-command",
"args": ["--option", "value"]
}
}
}
可按需添加任意数量的 MCP 服务器,客户端将连接所有服务器并使其工具可用。
使用方式
命令行用法:以查询作为参数运行 CLI 命令,支持多种命令行选项。 交互式聊天模式:使用 --interactive 或 -i 标志启动,可提供初始问题,对话保持上下文,输入 exit 或 quit 结束会话。 作为库编程使用:可在 Python 代码中导入 Dolphin MCP 作为库。 原始脚本(遗留):仍可直接运行原始脚本。
工作原理
- 连接所有已配置的 MCP 服务器。
- 列出每个服务器可用的工具。
- 将用户查询和可用工具一起发送给语言模型 API。
- 执行模型请求的任何工具调用。
- 以会话格式返回结果。 此过程持续进行,直到模型获得提供最终回复所需的所有信息。
示例查询
示例取决于所配置的 MCP 服务器。使用演示海豚数据库、自定义 MCP 服务器或指定模型均可。也可使用 LMStudio 提供商,或通过选项抑制中间结果输出。更多示例见 examples README。
演示数据库
运行 setup_db.py 会创建一个包含海豚物种信息的示例 SQLite 数据库,用于演示系统如何与简单 MCP 服务器配合工作。数据库包含:各类海豚物种信息、物种间进化关系、保护状态和物理特征。这只是 Dolphin MCP 客户端的一个示例,可连接任何提供数据或服务访问工具的 MCP 服务器。
依赖
需要 OpenAI API 密钥(或其他支持提供商的 API 密钥)。核心依赖、开发依赖、演示依赖(mcp-server-sqlite)在使用 pip 安装时自动安装。
包结构
- dolphin_mcp/:主包目录
- init.py:包初始化和导出
- client.py:核心 MCPClient 实现和 run_interaction 函数
- cli.py:命令行界面
- utils.py:配置和参数解析工具函数
- providers/:提供商特定实现
- openai.py:OpenAI API 集成
- anthropic.py:Anthropic API 集成
- ollama.py:Ollama API 集成
- lmstudio.py:LMStudio SDK 集成
限制
具体收费、价格等信息暂未提供。