MCP Agent
LLM 代理连接 MCP 服务器。
allanbrewer
README
MCP Agent
一个基于网络的对话式代理,由 Google Gemini 提供支持,可以通过模型上下文协议 (MCP) 与各种外部服务进行交互。
概述
本项目提供了一个聊天界面,用户可以在其中与 Google Gemini 进行对话。 关键特性是代理能够理解需要与外部工具(MCP 服务器)交互的请求并执行这些操作。 目前,它与官方 GitHub MCP 服务器集成,以执行诸如获取 issue 详细信息之类的操作。
架构
该项目由两个主要部分组成:
mcp-agent-app/
: 一个 Next.js 应用程序,提供:- 前端: 一个基于 React 的聊天界面 (
http://localhost:3000
)。 - 后端: 一个 API 路由 (
/api/chat
),它:- 管理与前端的对话流程。
- 与 Google Gemini API 通信。
- 根据 Gemini 的响应编排对 MCP 服务器的调用。
- 前端: 一个基于 React 的聊天界面 (
- MCP 服务器集成(示例:GitHub):
- 当请求与 GitHub 相关的操作时,Next.js 后端会在 Docker 容器中动态生成官方 GitHub MCP 服务器 (
ghcr.io/github/github-mcp-server
)。 - 通信通过标准输入/输出 (stdio) 进行,使用模型上下文协议定义的 JSON-RPC 格式。
- GitHub MCP 服务器的源代码包含在
github-mcp-server/
目录中以供参考,但通过顶层.gitignore
被 Git 忽略。
- 当请求与 GitHub 相关的操作时,Next.js 后端会在 Docker 容器中动态生成官方 GitHub MCP 服务器 (
设置
先决条件:
- Node.js (推荐 LTS 版本)
- npm 或 yarn
- Docker
- Google Gemini API 密钥: 可从 Google AI Studio 获取。
- GitHub 个人访问令牌 (PAT): 在此处创建一个,并具有适当的范围(例如,
repo
、read:user
),以便代理执行您想要的操作。
安装和配置:
- 克隆存储库:
git clone <repository_url> cd mcp-agent
- 安装 Next.js 应用程序依赖项:
cd mcp-agent-app npm install # or yarn install
- 配置环境变量:
- 在
mcp-agent-app/
目录中创建一个名为.env.local
的文件。 - 将您的 API 密钥/令牌添加到此文件:
# .env.local GOOGLE_API_KEY=YOUR_GEMINI_API_KEY GITHUB_PERSONAL_ACCESS_TOKEN=YOUR_GITHUB_PAT
- 将
YOUR_GEMINI_API_KEY
和YOUR_GITHUB_PAT
替换为您的实际凭据。
- 在
运行应用程序:
- 确保 Docker Desktop(或 Docker 守护程序)正在运行。
- 导航到 Next.js 应用程序目录:
cd mcp-agent-app
- 启动开发服务器:
npm run dev # or yarn dev
- 打开您的浏览器并转到
http://localhost:3000
。
用法
- 像与 Gemini 一样与聊天界面进行交互。
- 要触发 GitHub 操作(目前已实现
get_issue
),请制定一个提示,其中包含后端查找的特定操作模式。 示例:Please get issue number 1 from the repository octocat/Spoon-Knife using the GitHub MCP server action: [[ACTION:GITHUB_GET_ISSUE owner=octocat repo=Spoon-Knife issue_number=1]]
- 代理应回复直接的 Gemini 回复或执行的 GitHub 操作的结果(或错误)。
添加新的 MCP 服务器
当前的架构使用 Docker 和 stdio/MCP 用于 GitHub 服务器。 要添加对新 MCP 服务器的支持:
- 识别服务器详细信息: 确定新服务器的运行方式(例如,Docker 镜像、可执行文件)以及它的通信方式(例如,stdio/MCP、HTTP API)。
- 后端修改 (
mcp-agent-app/src/app/api/chat/route.ts
):- 操作检测: 添加逻辑以检测 Gemini 响应中的新操作模式(例如,
[[ACTION:NEW_SERVICE_ACTION param1=...]]
)。 使用正则表达式提取参数。 - 执行逻辑:
- 如果它像 GitHub 服务器一样使用 Docker/stdio:调整现有的
spawn
逻辑以使用新服务器的 Docker 镜像,并根据其 MCP 定义构造适当的 JSON-RPC 请求。 - 如果它公开了一个 HTTP API:使用
fetch
调用服务器的端点,并提供必要的参数和身份验证。 - 如果它是不同类型的可执行文件:根据需要使用
spawn
或其他child_process
方法。
- 如果它像 GitHub 服务器一样使用 Docker/stdio:调整现有的
- 响应处理: 解析来自新服务器的响应,并为前端聊天适当地格式化它。
- 错误处理: 为新的集成路径实现强大的错误处理。
- 操作检测: 添加逻辑以检测 Gemini 响应中的新操作模式(例如,
- 环境变量: 将任何新的必需 API 密钥或配置添加到
mcp-agent-app/.env.local
。 - 文档: 更新此 README 以包含新服务器及其用法。
当前 MCP 服务器
- GitHub MCP 服务器:
- 来源:
github-mcp-server/
(克隆,供参考) - 执行: 通过 Docker 镜像
ghcr.io/github/github-mcp-server
- 通信: Stdio / MCP (JSON-RPC)
- 配置: 需要
.env.local
中的GITHUB_PERSONAL_ACCESS_TOKEN
。
- 来源:
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。