关于 teamctx
teamctx 是连接 ProductNow 托管式团队共享上下文的转发客户端,提供 CLI 和 stdio MCP 服务。它不自行托管服务,而是将文档搜索、阅读、写入和整理请求转发给 ProductNow。
主要功能
- 01搜索共享上下文和帮助内容
- 02阅读文档并浏览文件夹
- 03记录信息并创建或编辑文档
- 04移动、重命名、归档文档及添加评论
- 05管理文档版本和状态
- 06CLI 与 stdio MCP 服务
适用场景
- 01通过带引用的摘录查找工作区文档
- 02将团队决策或备注保存到共享上下文
- 03创建、编辑和整理文档
- 04查看文档版本及评论线程
MCP 相关
teamctx 将 CLI 或 MCP 工具调用转发到 ProductNow 托管的 Streamable HTTP MCP 端点,提供上游已公开完整规格的 16 个工具,并要求提供访问令牌。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
16收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 否 | 搜索查询文本。 |
| folderId | string | 否 | 文件夹的 ID;省略时使用根目录。 |
| resultType | enum | 否 | 将结果限制为文档或文件夹。documents | folders |
| searchScope | enum | 否 | 搜索位置:共享工作区或 ProductNow 帮助。workspace | product_help |
| creatorNames | array | 否 | 仅包含由这些人员创建的项目。 |
| updatedAfter | string | 否 | 仅包含在此时间或之后更新的项目。 |
| updatedBefore | string | 否 | 仅包含在此时间或之前更新的项目。 |
详细介绍
teamctx
teamctx 是 ProductNow 共享团队上下文的转发客户端。真正的 ProductNow 服务托管在远程,不支持自托管:teamctx 接收用于搜索、读取、写入和整理工作区文档的 MCP 工具调用(或 CLI 调用),并将其转发到托管的 ProductNow MCP 端点,然后返回该服务返回的内容。一个二进制文件同时提供命令行界面和 stdio MCP 服务。
上游端点为 https://api.productnow-prod.com/mcp
(Streamable HTTP),通过 Auth0 使用 OAuth 2.0 保护,所需作用域为 mcp:use。teamctx 本身不会执行 OAuth 流程:你需要通过 PRODUCTNOW_ACCESS_TOKEN 环境变量提供已有的访问令牌,teamctx 会在每次转发调用时将其作为 Bearer 凭据发送。如果该变量缺失或为空,teamctx 会在尝试任何请求之前报错并指出该变量名。
此软件包实现了 18 个已列出的上游工具中的 16 个——这是带标签的核心子集,公开文档为其提供了完整的 Input 表。由于没有发布完整的参数架构,有意省略了两个工具:curate_knowledge_pack 和 create_help_document。这些工具不会对外公布,也不会转发。16 个已实现工具的参数类型根据公开文档中的 Input 表推断(上游工具目录未发布 JSON-Schema 属性定义);名称、必填状态和枚举值与文档发布内容一致。
安装
npx @reneturcios/teamctx call search '{"query":"pricing"}'
或者运行容器镜像:
docker run -i ghcr.io/cloudcorprecords/teamctx
容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。
CLI
CLI 使用一个通用子命令,而不是为每个工具分别设置子命令,因为每个工具都接收一组 JSON 对象参数:
teamctx call <tool> [json-args]
teamctx call search '{"query":"pricing","resultType":"documents"}'
teamctx call fetch '{"documentId":"doc_123"}'
teamctx call fetch_folder '{}'
teamctx call remember '{"content":"We ship on Fridays."}'
teamctx --version
提供 json-args 时,它必须是单个 JSON 对象;无效 JSON、非对象值、未知工具或多余参数都属于用法错误(退出码为 2),并会在检查凭据之前被拒绝。运行时故障(包括缺少 PRODUCTNOW_ACCESS_TOKEN 或上游错误)会以退出码 1 结束。成功时以退出码 0 结束,并以 JSON 格式打印上游结果。
MCP 服务
一个二进制文件同时提供两种接口。mcp 子命令会启动 stdio MCP 服务:
npx -y @reneturcios/teamctx mcp
MCP 客户端配置:
{
"mcpServers": {
"teamctx": {
"command": "npx",
"args": ["-y", "@reneturcios/teamctx", "mcp"],
"env": {
"PRODUCTNOW_ACCESS_TOKEN": "<your ProductNow access token>"
}
}
}
}
工具
| 工具 | 必需输入 | 功能说明 |
|---|---|---|
search | —(搜索文件夹时需要 query) | 搜索共享上下文或 ProductNow 帮助内容,查找带有引用的证据摘录;也可搜索文件夹名称。 |
fetch | documentId | 读取一份文档:全文、各章节、评论串、文件夹和规范 URL。 |
fetch_folder | — | 列出文件夹或资料库根目录,也可选择以嵌套树形结构列出(deep)。 |
list_document_versions | documentId | 列出文档的所有版本,按从新到旧排序;可选按版本状态筛选。 |
get_status | documentId | 报告文档的草稿 Agent 当前是 running 还是 idle。 |
remember | content | 将一条事实、决定或备注保存到合适的文档或文件夹中。 |
create_document | name、prompt | 创建文档,将其归入文件夹,并使用 AI 生成内容。 |
edit_document | documentId、message | 将编辑说明交给文档自己的编辑 Agent。 |
update_document_status | documentId、status | 使用动作动词提升当前草稿的状态:snapshot、review 或 publish。 |
create_folder | name | 创建文件夹,也可将其置于某个父文件夹下。 |
move | ids | 将多个文档和文件夹一次性移入同一文件夹或根目录。 |
rename | id、name | 更改一个文档或文件夹的名称。 |
archive | ids | 一次性归档多个文档和文件夹;不会删除任何内容。 |
comment_on_document | documentId、comment | 对文档当前的评审版本发表评论,也可将评论锚定到引用文本。 |
reply_to_thread | threadId、message | 回复现有评论串。 |
upload_media | fileName、mimeType | 分配一个签名上传 URL(有效期为 5 分钟),用于上传图像或视频媒体。 |
上游文档中记录了以下不太明显的规则:
search 默认使用 workspace 范围和 documents 结果
类型;创建者和日期筛选条件按工具
架构中的说明组合。list_document_versions 按版本状态
(DRAFT … ARCHIVED)筛选,而 update_document_status 接受
动作动词(snapshot / review / publish)——不要混淆
两者。实际使用时,create_document 的 folderId 为必填项:
只有在资料库根目录中创建时才可省略。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch only)
npm run dev # run the CLI from source via tsx
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。