🔌 Pctx

v1.0.1

— MCP Aggregation & Code Mode 面向 token 高效代理工作流的 MCP 聚合与 Code Mode 执行层。封装 portofcontext/pctx —— 将代理连接至 Linear、GitHub 及其他 MC...

0· 42·0 当前·0 累计
下载技能包
最后更新
2026/4/22
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
可疑
medium confidence
该技能基本实现了描述的功能(封装本地 pctx MCP 层),但安装前需审视若干不一致之处与运行风险:仅支持 macOS 的 launchd 用法、未声明的必需工具、token 存储/备份,以及第三方 brew/npm 安装。
评估建议
安装前需确认: - 平台:脚本依赖 launchd(macOS)。非 macOS 时守护进程/启动逻辑无效。 - 第三方源:运行 install.sh 或 npm install -g 前,核查 Homebrew tap(portofcontext/tap)与 npm 包(@tacticlaunch/mcp-linear)的作者/URL。 - 密钥处理:添加 MCP 后,API 密钥将存入 ~/.config/pctx/pctx.json 并生成带时间戳的备份。文件权限为 chmod 600 但会持久落盘;若不接受,请勿添加上游或制定安全备份/清理策略。 - 常驻守护:加载前检查 launchd plist(~/Library/LaunchAgents/ai.openclaw.pctx.plist)。运行中的守护会暴露本地 HTTP 端点,可把请求转发给外部 MCP——需明确并控制所连 MCP/端点。 - 本地代码执行:Code Mode 在 Deno 内执行用户提供的 TypeScript,功能强大但可在沙箱内运行任意逻辑,限制可向 /mcp 端点发送代码的代理/...
详细分析 ▾
用途与能力
技能名称/描述与脚本及 SKILL.md 一致:它封装本地 pctx server、管理 MCP server,并通过 Deno sandbox 提供 Code Mode。但该技能明显面向 Mac(使用 launchd/~/Library/LaunchAgents),而 registry 元数据未限制 OS。SKILL.md 元数据声称需要 brew、npm、node,registry 的“required binaries”却为空——这一不一致需澄清。
指令范围
指令与脚本操作本地 pctx 端点(http://127.0.0.1:8080/mcp),配置位于 ~/.config/pctx/pctx.json,日志写入 /tmp。它们还提供命令,用于添加接受环境变量式密钥(LINEAR_API_TOKEN、GITHUB_PERSONAL_ACCESS_TOKEN)的 MCP。添加 MCP 会使技能将凭据存入 pctx 配置并创建备份。技能不会指导读取无关系统文件,但会管理含密钥的文件(配置与备份)并与 launchd 交互——这两项均比纯只读助手更具高影响。
安装机制
注册表中无集中安装规范,但附带的 install.sh 会执行 brew 安装(portofcontext/tap/pctx、deno、github-mcp-server)以及一次 npm 全局安装(@tacticlaunch/mcp-linear)。这些是 brew 与 npm 这类可追踪的包管理器,而非任意下载,风险较低;但仍需先验证 Homebrew tap 与 npm 包的作者,再执行全局安装。
凭证需求
该 skill 声明无需环境变量,与 registry 一致,但其文档和运行时命令要求用户在添加上游服务器时为 MCP 提供 API token(如 LINEAR_API_TOKEN、GITHUB_PERSONAL_ACCESS_TOKEN)。这些密钥将保存在 ~/.config/pctx/pctx.json 及自动备份(由 cmd_config_backup 创建的副本)中。备份文件权限为 chmod 600,但仍持久化于磁盘——这种凭据存储是用户必须接受的适度但重要的敏感副作用。
持久化与权限
该 skill 会在 ~/Library/LaunchAgents/ 安装并依赖 ai.openclaw.pctx.plist,通过 launchd 加载/卸载(start/stop/restart),从而在 macOS 上获得常驻本地 daemon。'always' 为 false,且不会修改其他 skill 的配置,但 plist 与 daemon 意味着持续的背景网络活动(本地 MCP 端点可代理外部 MCP)。加载前请确认需要常驻代理并检查 plist 内容。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.12026/4/22

修复 ClawHub 安全标记:将通用 shell 语法示例替换为具体命名命令。无功能变更。

可疑

安装命令

点击复制
官方npx clawhub@latest install pctx
镜像加速npx clawhub@latest install pctx --registry https://cn.longxiaskill.com

技能文档

pctx 是什么?

pctx 是一个本地服务器,可:
  • 聚合 MCP 服务器 —— 将 Linear、GitHub 等 MCP 后端统一到一个端点
  • Code Mode —— agent 不再顺序调用工具,而是编写在 Deno 沙箱中运行的 TypeScript;仅返回结果(复杂工作流 token 消耗最高减少 98%)

实时端点: http://127.0.0.1:8080/mcp 已连接 MCP: Linear(42 个工具)、GitHub(41 个工具) 配置: ~/.config/pctx/pctx.json 日志: /tmp/pctx.log | /tmp/pctx.err

---

何时使用

  • agent 需通过 MCP 调用 Linear 或 GitHub 工具
  • agent 执行多步工具工作流(pctx 将其合并为一次 TypeScript 调用)
  • 任何顺序工具调用会返回大量中间负载的场景

---

快速开始

``bash # 检查 pctx 是否运行 {baseDir}/pctx-skill.sh status

# 列出已连接 MCP 服务器及工具数量 {baseDir}/pctx-skill.sh mcp-list

# 测试工具调用 {baseDir}/pctx-skill.sh test linear linear_getOrganization {baseDir}/pctx-skill.sh test github list_issues `

---

命令

守护进程管理

`bash # 状态 —— 显示端口、运行时间 {baseDir}/pctx-skill.sh status

# 启动守护进程(launchd) {baseDir}/pctx-skill.sh start

# 停止 {baseDir}/pctx-skill.sh stop

# 重启 {baseDir}/pctx-skill.sh restart `

MCP 服务器管理

`bash # 列出所有已连接 MCP + 工具数量 + 连接健康度 {baseDir}/pctx-skill.sh mcp-list

# 添加上游 MCP —— 示例: # stdio MCP,npm 包 {baseDir}/pctx-skill.sh mcp-add memory --command "npx" --arg "-y" --arg "@modelcontextprotocol/server-memory"

# stdio MCP,已安装二进制 {baseDir}/pctx-skill.sh mcp-add linear --command "mcp-linear" --env "LINEAR_API_TOKEN=your_token"

# HTTP MCP {baseDir}/pctx-skill.sh mcp-add stripe https://mcp.stripe.com

# 移除 MCP {baseDir}/pctx-skill.sh mcp-remove `

配置与备份

`bash # 备份 pctx.json(mcp-add/remove 前自动完成) {baseDir}/pctx-skill.sh config-backup

# 从备份恢复(无时间戳则交互选择) {baseDir}/pctx-skill.sh config-restore {baseDir}/pctx-skill.sh config-restore 20260422-092733 `

测试

`bash # 通过 pctx 测试指定 MCP 工具 {baseDir}/pctx-skill.sh test linear linear_getOrganization {baseDir}/pctx-skill.sh test linear linear_getTeams {baseDir}/pctx-skill.sh test github list_issues {baseDir}/pctx-skill.sh test github get_file_contents `

安装(幂等)

`bash # 在新虚拟机或完整回滚后执行 {baseDir}/install.sh `

---

从 Agent 代码调用 pctx

pctx 在
http://127.0.0.1:8080/mcp 暴露 MCP 端点。agent 可直接 JSON-RPC 调用工具,或使用 Code Mode 批量执行 TypeScript。

使用 curl 简单调用工具

`bash # 初始化 + 获取会话上下文 curl -s -X POST http://127.0.0.1:8080/mcp \ -H "Content-Type: application/json" \ -H "Accept: text/event-stream" \ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-agent","version":"1.0"}}}'

# 调用工具(Code Mode —— 批量 TypeScript) curl -s -X POST http://127.0.0.1:8080/mcp \ -H "Content-Type: application/json" \ -H "Accept: text/event-stream" \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"execute_typescript","arguments":{"script":"const org = await linear.linear_getOrganization({}); const teams = await linear.linear_getTeams({}); return { org, teams };"}}}' `

Code Mode —— 批量调用

execute_typescript 工具是核心功能。编写一个被 async function run() 包裹的脚本,一次性调用所有所需工具:

注意: 字段名是 code(非 script)。代码必须包在 async function run() { ... } 内。 命名空间:Linear(首字母大写)、Github(首字母大写 G,无 'b')。

`typescript // 差 —— 多次往返(传统 MCP) const org = await Linear.linearGetOrganization({}); // ... agent 接收结果,消耗 token ... const teams = await Linear.linearGetTeams({}); // ... agent 接收结果,消耗 token ...

// 好 —— 一次 Code Mode 调用,一次结果返回 async function run() { const org = await Linear.linearGetOrganization({}); const teams = await Linear.linearGetTeams({}); const issues = await Linear.linearSearchIssues({ query: "urgent" }); return JSON.stringify({ org, teams, issues }, null, 2); }

// GitHub 示例 async function run( ``

数据来源ClawHub ↗ · 中文优化:龙虾技能库