关于 TeamShared
TeamShared 为编码 Agent 提供跨会话共享记忆,并通过 Cursor、Claude Code 和 Codex 插件连接托管服务。它结合优先检索规则与会话钩子,自动记录对话并支持按需回忆。
主要功能
- 01跨会话记忆检索与存储
- 02捕获 Agent 对话与会话
- 03注入优先检索规则
- 04按仓库绑定组织
- 05回忆失败测试与命令错误
适用场景
- 01在新会话中恢复项目背景
- 02团队共享代码库相关记忆
- 03记录编码对话以供后续检索
MCP 相关
注册远程 MCP 服务 https://teamshared.com/mcp,提供记忆相关工具。Cursor、Claude Code 和 Codex 插件可连接该服务,并支持 OAuth 或相应客户端的认证流程。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://teamshared.com/mcpclaude mcp add --transport http xhad-teamshared https://teamshared.com/mcp{"mcpServers":{"xhad-teamshared":{"type":"http","url":"https://teamshared.com/mcp"}}}在 Cursor 中打开{"servers":{"xhad-teamshared":{"type":"http","url":"https://teamshared.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"xhad-teamshared":{"type":"http","url":"https://teamshared.com/mcp"}}}{"mcpServers":{"xhad-teamshared":{"serverUrl":"https://teamshared.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
teamshared(Cursor、Claude Code 和 Codex 插件)
注册 teamshared MCP 服务。Cursor 插件还附带了优先检索的记忆规则,以及可将 Agent Chat 捕获到 TeamShared 的 Cursor hooks(sessionStart、beforeSubmitPrompt、afterAgentResponse、stop、sessionEnd),以及 postToolUse(测试/lint/shell 失败时)、postToolUseFailure(只读检索)和 preCompact。Cursor 插件仍然不包含技能、斜杠命令或额外的 Agent。
此仓库还提供了 Claude Code 市场插件,位于 claude/ 下(通过 Claude Code 原生 /mcp OAuth 连接远程 MCP,使用 TEAMSHARED_TOKEN 启用可选的捕获 hooks,协议 1.31.0、SessionStart 注入,以及官方 Claude Code 捕获 hooks)。
plugins/teamshared/ 下的原生 Codex 软件包使用服务端的 MCP OAuth 发现流程,并将 Codex 作为一等客户端对待:协议 1.31.0、SessionStart 注入,以及官方 Codex 捕获 hooks。install/codex/ 下仍提供手动 Codex TOML 设置(TEAMSHARED_TOKEN;请勿混用)。
托管安装入口:teamshared.com/#connect。公开的插件/市场源代码位于此仓库(teamshared-ai/teamshared-plugin)。远程 MCP 端点为 https://teamshared.com/mcp。
一次 Connect,每个仓库绑定一个组织。 安装插件并连接一次即可。在聊天中调用 org_list / org_bind(slug=...)。CLI teamshared org bind <slug> 是可选的备用方式,会写入 .teamshared/org。请勿添加第二个 TeamShared 服务。未绑定的 /mcp 仍可正常工作——它会继续使用 Connect 时选定的组织。面向 Agent 的文案见:AGENTS.md。
| 组件 | 用途 |
|---|---|
mcp.json | 注册 https://teamshared.com/mcp(仅 URL;Cursor OAuth Connect) |
rules/teamshared.mdc | 精简的常驻获取/存储循环(alwaysApply);工具百科位于 memory_tools_catalog |
hooks/ | Cursor hooks:Agent Chat 捕获,以及 postToolUse(测试/lint/shell 失败时)、postToolUseFailure(只读检索)和 preCompact |
claude/ | Claude Code 插件(通过原生 /mcp OAuth 连接远程 MCP + 协议 1.31.0 + 需要 TEAMSHARED_TOKEN 的捕获 hooks) |
.claude-plugin/marketplace.json | Claude Code 市场目录(/plugin marketplace add teamshared-ai/teamshared-plugin) |
.agents/plugins/marketplace.json | Codex 市场目录(codex plugin marketplace add teamshared-ai/teamshared-plugin) |
plugins/teamshared/ | 原生 Codex 插件(OAuth MCP + 协议 1.31.0 + 官方捕获 hooks) |
clients/ | 面向非 Cursor harness 的可复制粘贴协议 + MCP 示例(Cursor 不会加载) |
安装
从 Git 市场安装(推荐)
- Settings → Plugins → Add marketplace → 粘贴
https://github.com/teamshared-ai/teamshared-plugin - 运行
/add-plugin teamshared,或在 Settings → Plugins 下启用 teamshared - Settings → Tools & MCP → teamshared → Connect(电子邮件 + 一次性验证码,与控制台相同)
云端和 Grok Bot Agent 会继承此账户级 Connect。安装插件后会注册 https://teamshared.com/mcp——你只需点击 Connect。不要将 URL 或 token 粘贴到插件的 mcp.json 中。然后绑定仓库(teamshared org bind <slug>);请勿添加第二个 TeamShared 服务。
官方市场发布检查清单见 MARKETPLACE.md。
Claude Code(marketplace)
/plugin marketplace add teamshared-ai/teamshared-plugin
/plugin install teamshared@teamshared
/reload-plugins
/mcp
在 /mcp 中选择 teamshared,然后选择 Authenticate — Claude Code 自带的原生 OAuth 流程,使用与 Web 控制台相同的邮箱/一次性密码登录方式,令牌存储在系统密钥链中。确认 /mcp 下的工具显示为 plugin:teamshared:teamshared 已连接。
聊天捕获钩子是独立的子进程,无法访问该密钥链,因此如果你也希望它们自动捕获聊天内容,请创建一个 tsk_ 组织密钥并将其导出 — 切勿提交该密钥:
export TEAMSHARED_TOKEN=tsk_... # mint under https://teamshared.com/app/keys
没有该密钥时,钩子只会跳过操作;无论哪种情况,MCP 连接和每轮工作流都能正常运行。在聊天中调用 org_bind(slug=...)(CLI teamshared org bind <slug> 可选),以便捕获操作跟随组织;不要添加项目 .mcp.json TeamShared 服务。未绑定的 /mcp 仍可正常工作。SessionStart 会注入协议 1.31.0;/teamshared:status 可检查运行状况和版本。详情:
claude/README.md。
Codex(原生插件 marketplace)
原生 Codex 包使用 TeamShared 的 MCP OAuth 发现流程,因此不需要 TEAMSHARED_TOKEN,也不会存储授权标头。首次打开的浏览器是 Codex 宿主(系统默认浏览器)。TeamShared 只提供 /oauth/authorize 和重定向;OTP 后的完成页面使用单次交接。ChatGPT 应用内的 @Browser 是 Computer Use,不是 MCP Authenticate — 没有 API 可以强制在其中进行 Connect。若要跳过浏览器,请改用 install/codex/ + TEAMSHARED_TOKEN,而不是此插件。详情:
#46 和
plugins/teamshared/README.md。
codex plugin marketplace add teamshared-ai/teamshared-plugin
codex plugin add teamshared@teamshared
重启 Codex 应用,开始新任务,并在出现提示时连接 TeamShared。
然后通过 /hooks 查看并信任插件钩子,以便运行捕获写入操作。
在聊天中调用 org_bind(slug=...)(CLI teamshared org bind <slug> 可选);不要在插件旁再添加一个 [mcp_servers.teamshared]。未绑定的 /mcp 仍可正常工作。
SessionStart 会注入协议 1.31.0;$status 可检查运行状况和版本。
该软件包位于 plugins/teamshared/,并收录在 .agents/plugins/marketplace.json 中。
详情:plugins/teamshared/README.md。
cursor.directory 列表
在 cursor.directory/plugins/new 提交此仓库:
https://github.com/teamshared-ai/teamshared-plugin
不要提交旧的 xhad/teamshared-cursor 重定向。根目录中的 plugin.json 和 .mcp.json 是 Open Plugins / 目录发现文件;Cursor 安装仍使用 .cursor-plugin/ 和 mcp.json。
可直接粘贴的列表描述:
TeamShared is hosted MCP plus the recall-first memory rule and Cursor
hooks that capture Agent Chat (plus failed test/lint/shell + preCompact).
No skills, slash commands, or extra agents.
Install in Cursor:
1. Settings → Plugins → Add marketplace
2. Paste https://github.com/teamshared-ai/teamshared-plugin
3. /add-plugin teamshared
4. Settings → Tools & MCP → teamshared → Connect (email + one-time code)
Cloud and Grok Bot agents inherit that Connect.
Bind each repo with teamshared org bind; do not add a second server.
从此仓库添加(文件夹或符号链接)
从文件夹添加插件要求所选目录中有一个 marketplace 目录。选择此仓库根目录(其中包含 "source": "./" 的 .cursor-plugin/marketplace.json)。
然后启用插件、重新加载窗口,并点击 Connect。
无需使用文件夹选择器即可进行本地迭代:
ln -sf "$(pwd)" ~/.cursor/plugins/local/teamshared
设置
- 使用邮箱/OTP 连接 — 设置 → 工具与 MCP → teamshared → 连接。
Cursor 会打开浏览器;使用与 Web 控制台(
/app)相同的邮箱和一次性验证码登录。插件已内置服务 URL;不要向插件的mcp.json添加标头或tsk_*令牌。 - 绑定仓库 —
teamshared org bind <slug>会写入.teamshared/org({"v":1,"slug"})。提交该文件。Capture 会根据此文件确定组织。不要在.cursor/mcp.json、项目的.mcp.json或 Codexconfig.toml中添加第二个 TeamShared 服务。 - Cursor Cloud / Grok Bot — 它们会继承此账户级 Cursor Connect。完成一次 Connect 后,该用户的每个云端 Agent 都能使用 TeamShared。绑定仍存放在检出目录中(
.teamshared/org);Cloud 不会从仓库配置中获取第二个 MCP URL。未绑定时,/mcp仍可正常工作(使用 Connect 时的组织)。 - Developer: Reload Window — 确认 设置 → MCP 中显示
teamshared已启用。
如果你之前手动添加过 https://teamshared.com/mcp,请移除该手动条目,以免出现两个 teamshared 服务。
必须固定使用一个组织的机器人需要使用席位密钥 — 通过 teamshared token mint 将密钥限定到该组织,或在 /app/keys 下生成密钥 — 并将其设为 MCP 标头(Authorization: Bearer tsk_…)。不要放在插件的 mcp.json 中。交互式 Connect 仍可使用未绑定的 /mcp。
你将获得
- MCP 工具:
memory_recall、memory_remember、memory_session_*等(安装插件时由mcp.json注册)。 - 规则:在每轮 Agent 对话中注入先检索的协议,并引导队友通过 Web 控制台(
/app)执行人工操作。 - Cursor 钩子:Agent Chat 对话会近乎实时地追加到 TeamShared,无需等待 Agent 调用
memory_session_ensure/context_commit。sessionStart会将conversation_id映射到工作会话,并在成功执行ensure且auto_recall=true后,注入一个有上限的 Cursoradditional_context区块(关联的 soul、可用时的简短 playbook 标题,以及精简的auto_recall要点 — 不包括完整记忆正文或对话记录)。对于关键词查询,仍优先使用显式的memory_recall。MCP/身份验证错误时会开放失败。beforeSubmitPrompt和afterAgentResponse会追加经过脱敏的用户/助手文本;sessionEnd会关闭并提炼会话内容。stop只记录中止/错误循环(它会在每轮之后触发,因此不会进行提炼)。当 Shell 测试/lint/命令失败时,postToolUse仍会追加一条简短的情景事实(命令 + 错误末尾内容,并剔除密钥)。在 CursorpostToolUseFailure和失败的postToolUse中,钩子还会使用精简查询(工具名称 + 截断后的错误、k=3、verbose=false)调用远程memory_recall,并将精简的命中结果作为additional_context注入 — 与 SessionStart auto_recall 使用相同模式。若检索结果为空或 MCP 没有令牌,则跳过。该检索路径不会写入内容(context_commit)。MCP 无法访问时会开放失败。preCompact会写入简短的会话摘要。所有钩子都会复用现有的 Connect 会话 — 不会在mcp.json中放入tsk_。Cloud Agent 可能会跳过sessionStart/sessionEnd;提示词/响应钩子仍会捕获对话内容。Agent 仍会先检索,也可以提交经过整理的事实;钩子会存储对话记录。
将仓库绑定到组织
一个 TeamShared 服务始终使用 https://teamshared.com/mcp。仓库文件决定组织;捕获会随之使用该组织。不要添加第二个 TeamShared 服务。
teamshared org bind sapien --token "$TEAMSHARED_TOKEN"
teamshared org status
teamshared org unbind
bind 会检查成员资格,然后只写入 .teamshared/org:
{"v":1,"slug":"sapien"}
派生出的 URL https://teamshared.com/o/{slug}/mcp 不会被存储。提交该文件,这样检出目录中的每个运行环境都能看到相同的组织。status 和 unbind 可离线运行。文件缺失或无效 → 未绑定 /mcp(连接时指定组织)。这是受支持的方式;不要求绑定。
| 运行环境 | 连接一次 | 绑定 | 不要 |
|---|---|---|---|
| Cursor | Settings → Tools & MCP → teamshared → Connect | .teamshared/org;hooks 会使用相同的 Connect token 向组织 URL 发送 POST 请求 | .cursor/mcp.json / 项目级 MCP 副本 |
| Cursor Cloud | 继承账号的 Connect | 使用相同的检出目录文件;hooks 会遵循该文件 | 将仓库 MCP URL 用作 Cloud 绑定路径 |
| Claude Code | /mcp → Authenticate | 使用相同的文件;hooks 使用组织范围的 TEAMSHARED_TOKEN | 项目级 .mcp.json 中的 TeamShared 服务 |
| Codex | 插件 OAuth(或手动使用 tsk_,不能两者兼用) | 使用相同的文件 | 在插件旁边添加 [mcp_servers.teamshared] |
必须始终使用同一组织的机器人:使用 teamshared token mint <agent>(组织范围的席位密钥)或 /app/keys。仍然只需一个服务。
Cursor 插件仍不包含技能、斜杠命令或额外 Agent。Claude Code 软件包附带协议 1.31.0(teamshared-memory)、/teamshared:status 和官方 Claude Code 捕获 hooks。Codex 软件包附带相同的 1.31.0 循环,以及官方 Codex hooks(SessionStart、UserPromptSubmit、Stop、Interrupt、SessionEnd、失败的 Bash 上的 PostToolUse、PreCompact)。SessionEnd 会通过一次有界提交来关闭;Interrupt 用于覆盖 Cursor 中止时的对等行为。Codex 没有 StopFailure 或 PostToolUseFailure。
其他客户端
Hermes、Claude Desktop 和协议 Markdown 请参阅 clients/。除非要调试手动客户端配置,否则 Claude Code 和 Codex 应使用上面的市场插件。
Codex(手动 TOML 替代方案)
若要在不使用原生插件的情况下手动注册 MCP,Codex 使用 TOML,而不是 Cursor 的 JSON mcp.json。在
teamshared.com/app/keys 创建 tsk_ 密钥并将其导出,然后注册托管的 MCP(Codex 会发送 Authorization: Bearer tsk_…):
export TEAMSHARED_TOKEN=tsk_... # from /app/keys — never commit this
codex mcp add teamshared \
--url https://teamshared.com/mcp \
--bearer-token-env-var TEAMSHARED_TOKEN
或者将 install/codex/mcp.toml 合并到项目本地的 .codex/config.toml,并从受信任的仓库根目录运行 Codex。完整步骤:
install/codex/README.md。
请使用原生市场插件或手动 TOML 条目之一,不要同时使用。对于必须始终使用同一组织的机器人(teamshared token mint 限定到该组织),手动方式是使用席位密钥的途径,也是跳过 OAuth 浏览器的可靠方式。不要在插件旁边添加第二个 TeamShared 服务。无论采用哪种方式,都使用 teamshared org bind <slug> 绑定检出目录;未绑定时 /mcp 仍可使用。
Cursor 桌面版、Cursor Cloud 和 Grok Bot 仍使用 Connect —— 不要将此 tsk_ 配置块添加到插件 mcp.json 中。
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。