Glen

官方

面向团队的 Agent memory MCP server。搜索团队编码代理(Claude Code、Codex、Cursor)的共享记忆,查找过往决策和修复及其来源,并使用或保存团队技能和文档。

你可以用 Glen MCP 做什么?

  • 搜索团队记忆 — 向组织记忆提问,并获取基于你在 Glen 中已能查看的内容生成的答案。
  • 查找代码存在的原因 — 通过代码搜索,了解特定代码背后的设计理由。
  • 运行已保存的技能 — 按 slug 获取团队技能的 Markdown 指令,以便智能体遵循。
  • 保存并分享技能或文档 — 私下存储技能或 Markdown/HTML 产物,或与整个组织分享。
  • 更正记忆 — 忘记错误或过时的记忆,并在需要时恢复。
  • 导入过往对话 — 按需将之前的智能体会话添加到团队记忆中。

托管 MCP 服务器

npx add-mcp 'https://mcp.tryglen.com/mcp'

可安装到 Claude Code、Codex、Cursor 等客户端

文档

为团队代理记忆提供一个端点,适用于任何 MCP 客户端。

Glen 的远程 MCP 服务器通过 22 个工具向客户端提供组织记忆、技能和已保存文档。本页介绍端点、两种登录方式、每个工具的输入和输出、客户端用于判断应询问什么的提示,以及各项限制。

服务器 URLhttps://mcp.tryglen.com/mcp
传输方式Streamable HTTP(在 /mcp 上使用 POST、GET 和 DELETE)
登录方式OAuth 2.1(支持动态客户端注册),或个人 API 密钥
工具22 个,每个工具都有标题和行为提示
请求时限60 秒
请求大小限制每个请求 4.5 MB

端点

https://mcp.tryglen.com/mcp

请准确连接到 https://mcp.tryglen.com/mcp。OAuth 令牌的受众就是该 URL,MCP 客户端会拒绝元数据中指定了其他 URL 的服务器。https://app.tryglen.com/mcp 会永久重定向到该地址,而 mcp.tryglen.com 上除 OAuth 发现文档以外的任何其他路径都会重定向到 Glen 应用。

服务器使用 Streamable HTTP:客户端向 /mcp 发送 JSON-RPC 消息(POST),可以打开 GET 流接收服务器消息,并通过发送 DELETE 结束会话。

登录

每个请求都通过以下两种方式之一进行身份验证,最终都对应同一身份:一个组织中的一个人。

OAuth,适用于聊天客户端和大多数 MCP 客户端

  1. 01 客户端在不带令牌的情况下调用 https://mcp.tryglen.com/mcp,并收到包含 WWW-Authenticate: Bearer resource_metadata="https://mcp.tryglen.com/.well-known/oauth-protected-resource/mcp" 和作用域 openid profile email read:organization offline_access 的 401 Unauthorized。
  2. 02 受保护资源元数据会指定授权服务器 https://app.tryglen.com/api/auth,其元数据位于 /.well-known/oauth-authorization-server。
  3. 03 客户端通过动态客户端注册完成注册。无需预先注册,也无需客户端密钥;桌面和 CLI 客户端可以使用环回重定向 URI(http://127.0.0.1)。
  4. 04 用户将通过带 PKCE 的授权码流程完成登录:先进入 Glen 登录页面;如果用户属于多个组织,则接着选择组织;最后进入授权页面。
  5. 05 客户端会收到已签名的访问令牌(颁发者 https://app.tryglen.com/api/auth,受众 https://mcp.tryglen.com/mcp),并且由于已授予 offline_access,还会收到刷新令牌。令牌会在 https://app.tryglen.com/org_id 声明中携带所选组织。

令牌会一直绑定到登录时选择的组织。若要使用其他组织,请断开连接后重新连接;glen_list_orgs 会显示当前连接使用的组织。

API 密钥,适用于脚本和 glen CLI

在 Glen 控制面板的设置 → API 密钥中创建密钥。密钥属于个人:归你所有,而非归某个组织所有,并且可用于你所属的每个组织。每个请求都要在标头中指定组织:

POST /mcp HTTP/1.1
Host: mcp.tryglen.com
x-api-key: <your key>
x-glen-org-id: <organization id>

如果没有 x-glen-org-id,服务器会返回 401。使用 no active organization: run `glen org switch`. Add x-glen-incognito: true 可在不留记录的情况下发送请求。如果请求同时携带 API 密钥和 bearer 令牌,服务器会验证 API 密钥。

每个请求都会进行验证

在运行任何工具之前,服务器都会确认用户仍然存在,并且仍是该组织的成员。将某人移出组织或删除其账户后,其令牌和密钥会在下一次请求时失效,无需等待过期。验证失败时会返回 401,并带有相同的 WWW-Authenticate 标头,以便客户端重新开始登录流程。

工具

每个工具都接受一个 JSON 对象,并以 JSON 文本形式返回结果。读取类工具会以你的身份执行:它们只会返回你在 Glen 控制面板中已经可以查看的、来自当前连接组织的内容。写入类工具只会代表你修改自己的账户、你撰写的内容,或组织记忆。

搜索和回忆

向组织记忆提问,或询问某段特定代码存在的原因。

技能

技能是 Markdown 指令,可附带文件,由团队保存一次后供任何代理运行。在共享之前,只有作者可以查看。

使用技能

只读

glen_skill_use

按 slug 获取技能指令,供代理遵循。

slug

(string)

来自 glen_skill_search 的准确 slug。

conversationId

(string, optional)

调用会话的 ID,用于统计使用次数。

cached

(object, optional)

客户端已持有的技能(slug 到最后更新时间的映射),以免重复发送已引用的技能。

返回:技能的 Markdown 指令内容、其文件,以及客户端尚未持有的引用技能。

速率限制:每位用户每分钟 600 次调用

保存技能

写入,需要先搜索并制定计划

glen_skill_create

将 Markdown 技能保存到你的库中;除非共享,否则仅你可见。

name

(string, up to 120)

技能名称;系统会据此生成 slug。

description

(string, up to 500)

用一行说明何时使用该技能。

content

(string, up to 1 MB)

SKILL.md 正文。

files

(array, up to 100, optional)

脚本、参考资料或资源,每项包含路径和内容类型。

dependencies

(array, optional)

现有依赖项 ID,或新依赖项(name、description、sourceUrl、kind)。

org

(boolean, optional)

true 表示与整个组织共享。

update

(boolean, optional)

true 表示替换你创建的同名技能。

返回:slug、是否更新了现有技能,以及是否与组织共享。

速率限制:每位用户每分钟 600 次调用

删除技能

删除

glen_skill_delete

永久删除你撰写的技能。仅在你提出要求时执行。

slug

(string)

你撰写的技能。删除后,所有与之共享的人都无法再使用。

返回:确认技能已删除。

速率限制:每位用户每分钟 600 次调用

资料

资料是已保存的文档(Markdown,或不含 JavaScript 的 HTML 和 CSS)。在共享之前,只有作者可以查看。

获取资料

只读

glen_artifact_get

按 slug 获取已保存的文档。

slug

(string)

准确的 slug。

返回:slug、标题、格式、完整内容、摘要和作者。

速率限制:每位用户每分钟 600 次调用

保存资料

写入

glen_artifact_create

将 Markdown 或 HTML 文档保存到你的库中;除非共享,否则仅你可见。

title

(string, up to 200)

文档标题;系统会据此生成 slug。

format

(markdown or html)

HTML 可以包含 CSS,但不能包含 JavaScript。

content

(string, up to 200,000 characters)

文档内容。

shareWithOrg

(boolean, optional)

true 表示与整个组织共享。

update

(boolean, optional)

true 表示替换你创建的同名文档。

返回:slug、是否更新了现有文档,以及是否与组织共享。

速率限制:每位用户每分钟 30 次调用

删除资料

删除

glen_artifact_delete

永久删除你撰写的文档。仅在你提出要求时执行。

slug

(string)

你撰写的文档。

返回:确认文档已删除。

速率限制:每位用户每分钟 600 次调用

记忆更正和导入

通过忘记错误记忆、恢复记忆或添加过去的代理对话,让回忆保持准确。

导入过去的对话

写入

glen_import

在你提出要求时,将过去的代理对话添加到团队记忆中。

conversationId

(string)

import:<session id>,同一会话的每一轮都使用相同的值。

idempotencyKey

(string)

<conversationId>:<turn index>,这样重新运行时会跳过已导入的轮次。

messages

(array (1 to 100))

该轮的用户消息和回复,每条都包含 role、content 及其原始 occurredAt。

additionalContext

(object, optional)

代理名称和工作区(cwd、branch、repoName、remoteUrl)。

返回:该轮是否已存储或此前已导入,以及添加了多少条消息。

速率限制:每位用户每分钟 600 次调用

忘记证据

写入

glen_forget

阻止再次回忆错误或过时的记忆。可通过 glen_restore 撤销。

references

(string[] (1 to 50))

来自搜索来源的 observation:<id> 或 message:<id> 引用。

返回:哪些引用已被忘记、哪些此前已被忘记,以及有多少条记忆因其背后的所有消息都被忘记而隐藏。

速率限制:每位用户每分钟 600 次调用

恢复已忘记的证据

写入

glen_restore

恢复已忘记的记忆。

references

(string[] (1 to 50))

此前已被忘记的引用。

返回:哪些引用已恢复、哪些无需更改,以及有多少条隐藏记忆随之恢复。

速率限制:每位用户每分钟 600 次调用

设置和组织

读取和更改你自己的 Glen 设置、查看所属组织、邀请成员并发送反馈。

列出组织

只读

glen_list_orgs

列出你所属的组织,并标记当前连接使用的组织。

无输入。

返回:你的组织列表;当前连接使用的组织会标记为 active: true。

速率限制:每位用户每分钟 600 次调用

显示 glen 设置

只读

glen_status

显示你的记录模式,以及技能建议是否已开启。

无输入。

返回:你的 Glen 模式(on、off、incognito 或 silent),以及技能建议是否已开启。

速率限制:每位用户每分钟 600 次调用

邀请队友

写入,仅限所有者和管理员

glen_invite

通过电子邮件邀请成员加入你的组织。仅限所有者和管理员使用。

emails

(string[] (1 to 50))

要邀请的人员。

role

(member or admin)

默认为 member。此工具无法创建所有者。

返回:invited、alreadyMember 和 failed(每项都附有原因),以及新增席位会产生计费时的提示。

速率限制:每位用户每分钟 600 次调用

设置 glen 模式

写入

glen_set_recording

在 on、off、incognito 和 silent 之间切换你的账户模式。

mode

(on, off, incognito or silent)

此设置适用于你在所有设备和代理上的账户。

返回:已保存的模式及其更改时间。

速率限制:每位用户每分钟 600 次调用

设置技能建议

写入

glen_set_suggestions

开启或关闭 Glen 提供的保存或重用技能建议。

skillCreation

(boolean, optional)

建议将已完成的工作保存为新技能。

skillUse

(boolean, optional)

建议使用适合当前任务的现有技能。

返回:已保存的设置。

速率限制:每位用户每分钟 600 次调用

行为提示

每个工具都会声明四种 MCP 行为提示和一个标题。客户端会读取这些信息,以决定显示什么以及需要询问什么:客户端可以直接运行只读工具,并在运行任何写入工具前征求确认;Anthropic 的连接器目录也会据此将工具归类为只读或写入。

readOnlyHint

当工具绝不会更改任何内容时为 true。共有九个工具:搜索、代码搜索、技能搜索和使用、依赖项搜索、资料搜索和获取、列出组织以及状态。

destructiveHint

当调用可能覆盖、移除或隐藏内容,或更改内容的可见范围时为 true:保存技能或资料(update: true 会替换你自己的内容)、共享、删除和忘记。

idempotentHint

当使用相同参数重复调用不会产生额外效果时为 true。保存技能或资料、邀请人员和发送反馈时为 false。

openWorldHint

所有写入工具均为 true,因为其影响会超出当前对话:队友可以看到共享的技能和回忆出的记忆,邀请会发送电子邮件,设置会应用于所有设备。所有只读工具均为 false。

工具readOnlydestructiveidempotentopenWorld
glen_searchtruefalsetruefalse
glen_code_searchtruefalsetruefalse
glen_skill_searchtruefalsetruefalse
glen_skill_usetruefalsetruefalse
glen_artifact_searchtruefalsetruefalse
glen_artifact_gettruefalsetruefalse
glen_dependency_searchtruefalsetruefalse
glen_list_orgstruefalsetruefalse
glen_statustruefalsetruefalse
glen_skill_createfalsetruefalsetrue
glen_skill_sharefalsetruetruetrue
glen_artifact_createfalsetruefalsetrue
glen_artifact_sharefalsetruetruetrue
glen_importfalsefalsetruetrue
glen_forgetfalsetruetruetrue
glen_restorefalsefalsetruetrue
glen_invitefalsefalsefalsetrue
glen_set_recordingfalsefalsetruetrue
glen_set_suggestionsfalsefalsetruetrue
glen_feedbackfalsefalsefalsetrue
glen_skill_deletefalsetruetruetrue
glen_artifact_deletefalsetruetruetrue

限制和错误

速率限制

限制按用户和工具分别计算。超过限制时,工具会返回错误,例如 Too many requests. Try again in 20s.

  • 每分钟 60 次调用:glen_search、glen_code_search、glen_skill_search、glen_artifact_search。
  • 每分钟 30 次调用:glen_artifact_create,它会为每份文档写入摘要。
  • 每小时 10 次调用:glen_feedback。
  • 每分钟 600 次调用:所有其他工具。

大小限制

  • 请求正文最大为 4.5 MB,请求最长可运行 60 秒。
  • 技能内容最大为 1 MB,最多包含 100 个文件。
  • 工件最多可包含 200,000 个字符。
  • glen_import 每次调用最多接收 100 条消息,每条最多 100,000 个字符。

方案

所有工具均可在 Free 方案中使用,该方案最多保存 15,000 条记忆。没有方案或最近一次付款失败的工作区仍可登录并使用不执行搜索的工具,但以下工具会返回错误:

glen_search、glen_code_search、glen_skill_search、glen_dependency_search、glen_skill_create、glen_artifact_search

错误会说明问题所在以及谁可以解决,例如 This workspace has no plan. An owner can choose one in Billing.。录制暂停时,glen_import 也会以相同方式被拒绝。工具错误中绝不会包含链接或购买提示。

其他错误

  • HTTP 请求返回 401:没有凭据、令牌或密钥已过期或无效,或者用户已不再是成员。客户端会重新登录。
  • 工具错误包含验证消息:输入与工具的架构不匹配。消息会指出相关字段。
  • 工具错误提示不允许执行该操作:例如,非所有者或管理员调用 glen_invite,或删除自己未编写的技能或文档。
  • 工具错误提示未找到内容:slug 不存在,或你无权查看。

连接客户端

Claude 和 ChatGPT 各自提供分步指南:Glen for Claude 和 Glen for ChatGPT。其他任何支持通过 OAuth 连接远程 MCP 服务器的客户端只需要 URL。

Claude Code

claude mcp add --transport http glen https://mcp.tryglen.com/mcp

Cursor 和读取 mcp.json 的客户端

{
  "mcpServers": {
    "glen": {
      "url": "https://mcp.tryglen.com/mcp"
    }
  }
}

客户端首次连接时会打开 Glen 的登录页面。对于编程代理,glen 插件通常更合适:它会将会话记录到团队记忆中,并在代理支持的情况下于每轮对话中检索记忆。插件通过 glen CLI 和钩子连接 Glen,而不是使用这些工具;请参阅 Glen for Cursor 和 Glen for pi。