项目简介
此项目是一个专业的MCP服务器测试套件和示例库。它包含了多个基于 FastMCP 框架实现的MCP服务器,每个服务器都针对特定领域(如金融、数据库、Web搜索、GitHub 分析等)提供了相应的工具集。虽然项目本身包含了用于交互的 Streamlit 客户端界面,但其核心价值在于提供的 MCP 服务器实现,这些服务器可以独立运行,并被任何兼容的 MCP 客户端(例如 Desktop Claude)连接和使用。
主要功能点
该项目提供了多种MCP服务器,每个服务器都封装了特定领域的工具,LLM 客户端可以通过这些服务器获得能力:
- 金融数据分析: 通过封装 YFinance 库提供股票和财务数据查询工具。
- 数据库管理: 通过封装 Supabase 工具提供对 Supabase 数据库进行 CRUD(增删改查)操作和分析的能力。
- Web 搜索与抓取: 利用 Brave Search 和 Selenium 提供网页搜索、信息抓取和自动化能力。
- GitHub 仓库分析: 提供分析 GitHub 仓库活动、贡献者和 Issue 的工具。
- 容器化工具执行: 提供在 Docker 容器中执行工具的能力。
- 文档问答: 集成 Context7 提供对特定文档或代码库进行问答的能力。
- 数据ETL示例: 提供一个自定义的 ETL(抽取、转换、加载)工具集示例,演示如何构建自己的MCP服务器。
- 多Agent集成: 提供一个 MCP 服务器,内部集成并协调调用多个其他 MCP 服务器的能力。
每个服务器都以标准化的 MCP 协议暴露其功能,使得 LLM 能够理解并调用这些外部工具来完成复杂任务。
安装步骤
-
克隆仓库: 打开终端,使用 Git 克隆此仓库到本地。
git clone https://github.com/caio-moliveira/mcp-agents.git cd mcp-agents -
安装依赖: 项目推荐使用 'uv' 进行依赖安装。确保你已经安装了 'uv'(如果未安装,请查阅 'uv' 官方文档)。然后在项目根目录下执行:
uv pip install -r requirements.txt # 或者使用可编辑模式安装 uv pip install -e . -
配置环境变量: 复制示例环境变量文件 '.env.example' 并重命名为 '.env':
cp example-env.env .env编辑 '.env' 文件,填入你所需的 API 密钥和凭据(如 OpenAI API Key, Supabase Access Token, Brave API Key, GitHub Token 等),以便相关的 MCP 服务器能够正常工作。
服务器配置(供MCP客户端使用)
这些MCP服务器是为MCP客户端(如 Desktop Claude 或其他兼容 MCP 的应用)提供服务的。MCP客户端需要知道如何启动并连接到这些服务器。典型的MCP客户端配置会要求提供服务器的名称、启动命令 ('command') 和启动参数 ('args')。
以下是一些主要 MCP 服务器的启动命令和参数示例,供你在 MCP 客户端中进行配置时参考:
-
YFinance 金融分析服务器:
- 服务器名称:'yfinance-agent-server' (或其他你喜欢的名称)
- 启动命令 ('command'):通常是你的 Python 环境的可执行文件路径,例如: '<repository/path>/.venv/bin/python' (Linux/macOS) 或 '<repository/path>/.venv/Scripts/python' (Windows) 请将 '<repository/path>' 替换为你克隆此仓库的绝对路径。
- 启动参数 ('args'):指向对应的服务器脚本文件路径,例如: '<repository/path>/src/yfinance_mcp_server.py'
-
Supabase 数据库分析服务器:
- 服务器名称:'supabase-agent-server' (或其他你喜欢的名称)
- 启动命令 ('command'):同上,你的 Python 环境的可执行文件路径。
- 启动参数 ('args'):指向对应的服务器脚本文件路径,例如: '<repository/path>/src/supabase_mcp_server.py'
- 注意:此服务器内部会调用一个 'npx' 命令启动的 Supabase MCP 服务器,因此你的环境中需要安装 Node.js 和 npm/npx,并且'.env' 文件中的 'SUPABASE_ACCESS_TOKEN' 需要配置。
-
Brave Web 搜索服务器:
- 服务器名称:'brave-web-agent-server' (或其他你喜欢的名称)
- 启动命令 ('command'):同上,你的 Python 环境的可执行文件路径。
- 启动参数 ('args'):指向对应的服务器脚本文件路径,例如: '<repository/path>/src/brave_mcp_server.py'
- 注意:此服务器内部会调用一个 'npx' 命令启动的 Brave Search MCP 服务器,因此你的环境中需要安装 Node.js 和 npm/npx,并且'.env' 文件中的 'BRAVE_API_KEY' 需要配置。
-
GitHub 分析服务器:
- 服务器名称:'github-agent-server' (或其他你喜欢的名称)
- 启动命令 ('command'):同上,你的 Python 环境的可执行文件路径。
- 启动参数 ('args'):指向对应的服务器脚本文件路径,例如: '<repository/path>/src/github_mcp_server.py'
- 注意:此服务器内部会调用一个 'npx' 命令启动的 GitHub MCP 服务器,并且'.env' 文件中的 'GITHUB_PERSONAL_ACCESS_TOKEN' 需要配置。
-
自定义 ETL 示例服务器:
- 服务器名称:'etl-server' (或其他你喜欢的名称)
- 启动命令 ('command'):同上,你的 Python 环境的可执行文件路径。
- 启动参数 ('args'):指向对应的服务器脚本文件路径,例如: '<repository/path>/my_mcp/etl_mcp_server.py'
你可以根据需要在 MCP 客户端中配置一个或多个这样的服务器入口,以便 LLM 能够调用相应的工具。
基本使用方法
-
启动 MCP 服务器: 在终端中,导航到仓库目录,并执行对应的 Python 服务器脚本来启动服务器。例如,启动 YFinance 服务器:
python src/yfinance_mcp_server.py或者启动 Supabase 服务器:
python src/supabase_mcp_server.py你可以根据需要同时启动多个服务器,它们默认运行在不同的端口上(详见仓库 README)。
-
连接 MCP 客户端: 使用兼容 MCP 的客户端应用(如 Desktop Claude)。根据客户端的文档,配置一个新的 MCP 服务器连接,填写你在上一步骤中获取的服务器名称、启动命令和参数。客户端将使用这些信息在需要时自动启动并连接到 MCP 服务器。
-
通过 LLM 客户端与服务器交互: 一旦客户端连接成功,你就可以通过与 LLM 对话的方式,让 LLM 调用 MCP 服务器暴露的工具来执行任务。例如,在连接了 YFinance 服务器的客户端中,你可以提问“帮我查一下苹果公司 (AAPL) 最近的股价”。
项目中的 Streamlit 应用 ('app/*.py') 也提供了一个内置的客户端界面,用于连接和测试这些 MCP 服务器。你可以通过 'streamlit run app/multi_mcp_app.py' 等命令来启动这些客户端界面进行交互测试。
信息
分类
AI与计算