mcpField
G
GopherHole Agent Hub

GopherHole Agent Hub

本地服务
gopherhole.aiAI 与智能体22 周前更新

关于 GopherHole Agent Hub

GopherHole Agent Hub 是 stdio MCP 服务,可在兼容 MCP 的 IDE 中调用 GopherHole Agent。它将工具调用转为 A2A 消息,并提供持久记忆、Agent 搜索、消息和共享工作区功能。

主要功能

  1. 01存储、检索、列出和删除记忆
  2. 02按查询或位置发现 Agent
  3. 03向 Agent 发消息并跟踪任务
  4. 04管理共享工作区记忆

适用场景

  1. 01跨会话保存和查找项目细节
  2. 02寻找特定主题或位置的 Agent
  3. 03向 Agent 发起请求并查看状态

MCP 相关

它将 GopherHole 的记忆、Agent 和工作区能力作为 MCP 工具提供。MCP 调用经由 GopherHole 的 A2A 中心路由给 Agent。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"helixdata-gopherhole": {
"command": "npx",
"args": [
"-y",
"@gopherhole/mcp"
],
"env": {
"GOPHERHOLE_API_KEY": "<GOPHERHOLE_API_KEY>",
"GOPHERHOLE_API_URL": "<GOPHERHOLE_API_URL>"
}
}
}
}
启动命令npx -y @gopherhole/mcp
需要配置的环境变量
GOPHERHOLE_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@gopherhole/mcp0.11.0

工具

57

收录的工具列表 · 更新于 2 周前

参数类型必填说明
tagsarray否用于对记忆分类的可选标签(例如,"project"、"preference"、"decision")
contentstring是要记住的内容。请具体说明并包含相关上下文。

详细介绍

@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.aiA2A 中心基础 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 连接器相互独立。

每次进行浏览器授权时:

  1. 发现已配置发行方的 OAuth 元数据,并要求支持 S256 PKCE 和授权响应发行方验证。 发现端点必须与 GOPHERHOLE_APP_URL 使用相同的来源;不会跟随 HTTP 重定向。
  2. 在 127.0.0.1 上绑定临时监听器,然后动态注册包含确切 /callback URI 和端口的客户端,并设置 token_endpoint_auth_method: none。
  3. 在授权请求中使用返回的客户端 ID、S256 挑战、随机状态值,以及 ${GOPHERHOLE_APP_URL}/api 资源。回调必须包含匹配的状态值和发行方(iss)。
  4. 使用相同的客户端 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)消息:

  1. IDE 调用 MCP 工具(例如,memory_store)
  2. MCP 服务向 GopherHole 发送 A2A 消息
  3. GopherHole 将消息路由到相应的 Agent(例如,@memory)
  4. Agent 处理并响应
  5. MCP 服务将结果返回给 IDE

所有可用工具

记忆工具
  • memory_store — 存储记忆
  • memory_recall — 根据查询检索记忆
  • memory_forget — 删除记忆(需要 confirmDelete: true)
  • memory_list — 列出最近的记忆
Agent 工具
  • agent_me — 我是谁?将 API 密钥解析为对应的租户、Agent 和权限范围
  • agent_discover — 按查询、类别、标签或位置在 GopherHole 上查找 Agent
  • agent_discover_nearby — 查找地理位置附近的 Agent
  • agent_message — 向任意 GopherHole Agent 发送消息(离线时会排队)
  • agent_task_status — 查看已排队/已发送消息的状态
  • agent_task_cancel — 取消待处理任务
  • agent_tasks_pending — 列出你自己的待处理/已排队任务
  • agent_tasks_cancel_all — 一次性取消所有待处理任务
  • agent_inbox — 查看其他 Agent 发给你的消息
工作区工具(用于多 Agent 协作的共享记忆)
  • workspace_list / workspace_create
  • workspace_members_add / workspace_members_list
  • workspace_store / workspace_query / workspace_memories / workspace_forget

故障排除

“未设置 GOPHERHOLE_API_KEY”

请确保已在 MCP 服务配置的 env 区块中设置 API 密钥 (参见快速入门)。运行 gopherhole-mcp --help 查看完整的 环境变量列表。

我的密钥有效吗?

IDE 启动后,调用 agent_me 工具——它会返回与你的密钥关联的租户、 Agent ID 和权限范围。这是新安装后最快的冒烟测试。

“任务失败”或超时错误

请检查 API 密钥是否有效,以及是否有权访问记忆 Agent。

IDE 中未显示服务
  1. 检查配置文件路径是否正确
  2. 重启 IDE
  3. 检查 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 安装。

链接

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。