← 返回
未分类 Key 中文

pctx — MCP Aggregation & Code Mode

MCP aggregation and Code Mode execution layer for token-efficient agent workflows. Wraps portofcontext/pctx — connects agents to Linear, GitHub, and other MC...
MCP聚合与Code Mode执行层,为令牌高效代理工作流设计。封装portofcontext/pctx,连接代理至Linear、GitHub及其他MC工具。
cianbyrne1010
未分类 clawhub v1.0.1 1 版本 100000 Key: 需要
★ 0
Stars
📥 354
下载
💾 0
安装
1
版本
#code-mode#github#latest#linear#mcp#token-efficiency

概述

pctx — MCP Aggregation & Code Mode Execution

What is pctx?

pctx is a local server that:

  1. Aggregates MCP servers — connects to Linear, GitHub, and other MCP backends behind one endpoint
  2. Code Mode — instead of sequential tool calls, agents write TypeScript that runs in a Deno sandbox; only the result comes back (up to 98% token reduction on complex workflows)

Live endpoint: http://127.0.0.1:8080/mcp

Connected MCPs: Linear (42 tools), GitHub (41 tools)

Config: ~/.config/pctx/pctx.json

Logs: /tmp/pctx.log | /tmp/pctx.err


When to use

  • Agent needs to call Linear or GitHub tools via MCP
  • Agent is doing multi-step tool workflows (pctx batches them into one TypeScript call)
  • Any workflow where sequential tool calls return large intermediate payloads

Quick Start

# Check if pctx is running
{baseDir}/pctx-skill.sh status

# List connected MCP servers + tool counts
{baseDir}/pctx-skill.sh mcp-list

# Test a tool call
{baseDir}/pctx-skill.sh test linear linear_getOrganization
{baseDir}/pctx-skill.sh test github list_issues

Commands

Daemon Management

# Status — shows port, uptime
{baseDir}/pctx-skill.sh status

# Start daemon (launchd)
{baseDir}/pctx-skill.sh start

# Stop daemon
{baseDir}/pctx-skill.sh stop

# Restart
{baseDir}/pctx-skill.sh restart

MCP Server Management

# List all connected MCPs + tool counts + connection health
{baseDir}/pctx-skill.sh mcp-list

# Add an upstream MCP — examples:
# stdio MCP with npm package
{baseDir}/pctx-skill.sh mcp-add memory --command "npx" --arg "-y" --arg "@modelcontextprotocol/server-memory"

# stdio MCP with installed binary
{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

# Remove an MCP
{baseDir}/pctx-skill.sh mcp-remove <name>

Config & Backup

# Backup pctx.json (always done automatically before mcp-add/remove)
{baseDir}/pctx-skill.sh config-backup

# Restore from backup (interactive if no timestamp given)
{baseDir}/pctx-skill.sh config-restore
{baseDir}/pctx-skill.sh config-restore 20260422-092733

Testing

# Test a specific MCP tool via pctx
{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

Install (idempotent)

# Run on new VMs or after full rollback
{baseDir}/install.sh

Calling pctx from Agent Code

The pctx server exposes an MCP endpoint at http://127.0.0.1:8080/mcp. Agents can call tools directly via JSON-RPC, or use Code Mode for batched TypeScript execution.

Simple tool call via curl

# Initialize + get session context
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"}}}'

# Call a tool (Code Mode — batched 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 — batch multiple calls

The execute_typescript tool is the key feature. Write one script wrapped in async function run() that calls all tools needed:

Important: field name is code (not script). Code must be wrapped in async function run() { ... }.

Namespaces: Linear (capital L), Github (capital G, no 'b').

// BAD — multiple round-trips (traditional MCP)
const org = await Linear.linearGetOrganization({});
// ... agent receives result, burns tokens ...
const teams = await Linear.linearGetTeams({});
// ... agent receives result, burns tokens ...

// GOOD — one Code Mode call, one result
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 example
async function run() {
  const branches = await Github.listBranches({ owner: "MJM-Agents", repo: "rolling-reno-theme" });
  return JSON.stringify(branches, null, 2);
}

Currently Connected MCPs

NameBinaryTransportAuthTools
--------------------------------------
linearmcp-linearstdioLINEAR_API_TOKEN42
githubgithub-mcp-server stdiostdioGITHUB_PERSONAL_ACCESS_TOKEN41

Rollback

Full rollback instructions: ROLLBACK-MCP-PCTX.md in workspace root.

Quick rollback — remove one MCP:

{baseDir}/pctx-skill.sh mcp-remove linear   # removes Linear, leaves GitHub
{baseDir}/pctx-skill.sh mcp-remove github   # removes GitHub, leaves Linear

Full nuclear rollback:

{baseDir}/pctx-skill.sh stop
brew uninstall pctx github-mcp-server
npm uninstall -g @tacticlaunch/mcp-linear
rm -rf ~/.config/pctx/ ~/Library/LaunchAgents/ai.openclaw.pctx.plist

Config

VariableDefaultDescription
--------------------------------
PCTX_CONFIG~/.config/pctx/pctx.jsonPath to pctx config
PCTX_PORT8080Port pctx listens on
PCTX_HOST127.0.0.1Host pctx binds to
PCTX_BINauto-detectedPath to pctx binary

Notes

  • pctx.json is chmod 600 — contains API keys, never commit
  • Deno sandbox: 10s execution timeout, no filesystem/env/system access
  • OAuth not yet supported in pctx (v0.7.1) — remote Linear/GitHub MCPs require OAuth; use stdio/local for now
  • Config auto-backed-up before every mcp-add / mcp-remove
  • PAT registered under mjm-dex GitHub account — swap if needed

版本历史

共 1 个版本

  • v1.0.1 当前
    2026-05-07 18:12 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-intelligence

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,353 📥 317,961
developer-tools

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 668 📥 323,983
ai-intelligence

self-improving agent

pskoett
捕获经验教训、错误和纠正,以实现持续改进。使用时机:(1)命令或操作意外失败;(2)用户纠正……
★ 4,058 📥 797,862