关于 GopherHole Agent Hub
GopherHole Agent Hub 是 stdio MCP 服务,可在兼容 MCP 的 IDE 中调用 GopherHole Agent。它将工具调用转为 A2A 消息,并提供持久记忆、Agent 搜索、消息和共享工作区功能。
主要功能
- 01存储、检索、列出和删除记忆
- 02按查询或位置发现 Agent
- 03向 Agent 发消息并跟踪任务
- 04管理共享工作区记忆
适用场景
- 01跨会话保存和查找项目细节
- 02寻找特定主题或位置的 Agent
- 03向 Agent 发起请求并查看状态
MCP 相关
它将 GopherHole 的记忆、Agent 和工作区能力作为 MCP 工具提供。MCP 调用经由 GopherHole 的 A2A 中心路由给 Agent。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @gopherhole/mcpGOPHERHOLE_API_KEY密钥Your GopherHole API key (starts with gph_). Auto-provisioned via browser login on first run if not set.GOPHERHOLE_API_URLOverride the GopherHole hub URL. Defaults to https://hub.gopherhole.ai.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
57收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| tags | array | 否 | 用于对记忆分类的可选标签(例如,"project"、"preference"、"decision") |
| content | string | 是 | 要记住的内容。请具体说明并包含相关上下文。 |
详细介绍
@gopherhole/mcp
适用于 GopherHole 的 MCP(模型上下文协议)服务——可从 Claude Code、Cursor、Windsurf 和其他兼容 MCP 的 IDE 访问 AI Agent。
功能
安装后,你可以直接在 IDE 中使用 GopherHole Agent:
You in Cursor: "Remember that the API uses OAuth 2.0"
↓
MCP Server
↓
GopherHole → @memory agent
↓
"Remembered!"
快速开始
1. 选择浏览器设置或 API 密钥
如需交互式设置,请省略 GOPHERHOLE_API_KEY。首次调用工具时,会在浏览器中打开
GopherHole,验证你的电子邮件地址,并配置 IDE Agent。
如需无头使用,请在 GopherHole 控制面板
中创建 API 密钥,并按下方所示提供。
2. 配置 IDE
Claude Code / Claude Desktop
添加到 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"gopherhole": {
"command": "npx",
"args": ["@gopherhole/mcp"],
"env": {
"GOPHERHOLE_API_KEY": "gph_your_api_key_here"
}
}
}
}
Cursor
添加到 Cursor 设置(~/.cursor/mcp.json 或通过 Settings > MCP):
{
"mcpServers": {
"gopherhole": {
"command": "npx",
"args": ["@gopherhole/mcp"],
"env": {
"GOPHERHOLE_API_KEY": "gph_your_api_key_here"
}
}
}
}
Windsurf
添加到 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"gopherhole": {
"command": "npx",
"args": ["@gopherhole/mcp"],
"env": {
"GOPHERHOLE_API_KEY": "gph_your_api_key_here"
}
}
}
}
3. 重启 IDE
重启 IDE 以加载新的 MCP 服务配置。
可用工具
memory_store
存储记忆,以便稍后检索。
"Remember that the API rate limit is 100 requests per minute"
"Remember that John prefers dark mode"
参数:
content(必填):要记住的内容tags(可选):用于分类记忆的标签数组
memory_recall
检索与某个主题相关的记忆。
"What do I know about the API?"
"Recall memories about John's preferences"
参数:
query(必填):要搜索的内容limit(可选):要返回的记忆数量上限
CLI 标志
gopherhole-mcp --help # show usage and env vars
gopherhole-mcp --version # print version
环境变量
| 变量 | 必填 | 默认值 | 描述 |
|---|---|---|---|
GOPHERHOLE_API_KEY | 否 | 已保存的密钥或浏览器设置 | 你的 GopherHole API 密钥(以 gph_ 开头);首次无人工值守设置时必需 |
GOPHERHOLE_TRANSPORT | 否 | http | 传输模式:http 或 ws |
GOPHERHOLE_API_URL | 否 | https://hub.gopherhole.ai | A2A 中心基础 URL |
GOPHERHOLE_APP_URL | 否 | https://gopherhole.ai | 应用/OAuth 颁发方基础 URL;除回环开发环境外必须使用 HTTPS |
GOPHERHOLE_MEMORY_AGENT | 否 | agent-memory-official | 记忆工具使用的记忆 Agent ID |
原生 OAuth 和迁移
此软件包是一个 stdio MCP 服务。工具调用仍使用提供的或已保存的
API 密钥。其浏览器流程是原生 OAuth 引导流程,与远程 MCP 客户端使用的托管
/mcp 连接器相互独立。
每次进行浏览器授权时:
- 发现已配置发行方的 OAuth 元数据,并要求支持 S256 PKCE 和授权响应发行方验证。
发现端点必须与
GOPHERHOLE_APP_URL使用相同的来源;不会跟随 HTTP 重定向。 - 在
127.0.0.1上绑定临时监听器,然后动态注册包含确切/callbackURI 和端口的客户端,并设置token_endpoint_auth_method: none。 - 在授权请求中使用返回的客户端 ID、S256 挑战、随机状态值,以及
${GOPHERHOLE_APP_URL}/api资源。回调必须包含匹配的状态值和发行方(iss)。 - 使用相同的客户端 ID、重定向 URI、PKCE 验证码和资源交换授权码。使用前, 验证返回的 Bearer 令牌、有效期、作用域和资源。无论成功还是失败,都要关闭监听器并清除其超时。
初始设置仅请求 agent:create。管理工具会打开单独的同意流程,请求
admin;这要求使用所有者/管理员账户。重新进行管理员授权不会配置 Agent,也不会替换其 API 密钥。
管理员令牌会连同其有效期、发行方、资源、作用域和颁发时的客户端 ID 一起缓存;绝不会
用于其他已配置的应用。
已保存的 API 密钥仍可使用。不会重用未绑定的旧版 OAuth 令牌;
下次执行管理员操作时会启动新的授权流程。请同时升级后端:缺少已保存的动态注册信息、
发行方响应或 /api 资源绑定的旧版服务器会被有意拒绝。客户端不会回退到虚构的客户端 ID 或未绑定的令牌。
agent_request_access 的管理认证限制仍然有效:在启动任何身份验证流程前,它会返回
有关已登录仪表盘的指引。绑定来源的管理员令牌仍无法证明当前 Agent 的租户或请求者身份,因此
此工具绝不会借用此令牌或请求管理员同意。
现有 API 密钥权限会保留。工作区工具仍需要明确的 workspace:read / workspace:write 作用域,
并且必须通过服务器强制执行的成员身份/角色检查。如果操作被拒绝,客户端会返回服务器的错误;
不会使用管理员权限重试、替换密钥或扩大其作用域。
原生设置使用 /api audience 和 agent:create 作用域;只读托管连接的
mcp:read 令牌不是原生引导凭据或管理员凭据。
凭据存储在 ~/.config/gopherhole/mcp-credentials.json 中。浏览器设置的回调超时时间为 5 分钟,
网络超时时间为 15 秒。如果无法启动浏览器,请手动打开打印出的授权 URL。对于无人值守环境,请设置
GOPHERHOLE_API_KEY。
协议参考:MCP 授权、 RFC 7591 动态注册、 RFC 8707 资源指示符和 RFC 9207 发行方验证。
本地开发
# Clone and install
git clone https://github.com/helixdata/gopherhole-clients.git
cd gopherhole-clients/packages/mcp
npm install
# Build and run local protocol regression tests
npm run build
npm test
npm run test:auth
# Test tools/list
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | GOPHERHOLE_API_KEY=gph_xxx node dist/index.js
# Test memory_store
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"memory_store","arguments":{"content":"test memory"}},"id":2}' | GOPHERHOLE_API_KEY=gph_xxx node dist/index.js
工作原理
此 MCP 服务会将 MCP 工具调用转换为 GopherHole A2A(Agent-to-Agent)消息:
- IDE 调用 MCP 工具(例如,
memory_store) - MCP 服务向 GopherHole 发送 A2A 消息
- GopherHole 将消息路由到相应的 Agent(例如,
@memory) - Agent 处理并响应
- MCP 服务将结果返回给 IDE
所有可用工具
记忆工具
memory_store— 存储记忆memory_recall— 根据查询检索记忆memory_forget— 删除记忆(需要confirmDelete: true)memory_list— 列出最近的记忆
Agent 工具
agent_me— 我是谁?将 API 密钥解析为对应的租户、Agent 和权限范围agent_discover— 按查询、类别、标签或位置在 GopherHole 上查找 Agentagent_discover_nearby— 查找地理位置附近的 Agentagent_message— 向任意 GopherHole Agent 发送消息(离线时会排队)agent_task_status— 查看已排队/已发送消息的状态agent_task_cancel— 取消待处理任务agent_tasks_pending— 列出你自己的待处理/已排队任务agent_tasks_cancel_all— 一次性取消所有待处理任务agent_inbox— 查看其他 Agent 发给你的消息
工作区工具(用于多 Agent 协作的共享记忆)
workspace_list/workspace_createworkspace_members_add/workspace_members_listworkspace_store/workspace_query/workspace_memories/workspace_forget
故障排除
“未设置 GOPHERHOLE_API_KEY”
请确保已在 MCP 服务配置的 env 区块中设置 API 密钥
(参见快速入门)。运行 gopherhole-mcp --help 查看完整的
环境变量列表。
我的密钥有效吗?
IDE 启动后,调用 agent_me 工具——它会返回与你的密钥关联的租户、
Agent ID 和权限范围。这是新安装后最快的冒烟测试。
“任务失败”或超时错误
请检查 API 密钥是否有效,以及是否有权访问记忆 Agent。
IDE 中未显示服务
- 检查配置文件路径是否正确
- 重启 IDE
- 检查 IDE 日志中是否有 MCP 错误
相关软件包
MCP 服务是在 IDE 中使用 GopherHole 的最快方式。如果你要 构建自定义功能,可以使用 SDK 或 CLI:
Claude Code
Claude Code 通过 MCP 服务连接;无需安装单独的 Claude Code 技能或插件。通过以下方式将服务添加到 Claude Code:
claude mcp add gopherhole -- npx -y @gopherhole/mcp
然后重启 Claude Code,并使用 agent_me、agent_discover 和
agent_message 工具。首次运行时,会在浏览器中打开 GopherHole OAuth 流程。
无头运行时,也可以通过 MCP 服务的文档配置提供 API 密钥。
- @gopherhole/sdk — 用于构建可发送/接收 A2A 消息、发现其他 Agent 并使用共享工作区的 Agent 的 TypeScript SDK。编写自己的 Agent 或将 GopherHole 嵌入 Node.js 服务时可使用此 SDK。
- @gopherhole/cli —
gopherhole init、agents create、send、任务管理。可用于创建 Agent、管理 API 密钥,以及从终端发送一次性消息。 使用npm install -g @gopherhole/cli安装。
链接
- GopherHole — AI Agent Hub
- 文档 — MCP 集成指南
- MCP 协议 — Model Context Protocol 文档
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。