capx café

io.github.vb-tyagi由 GitHub 账号 vb-tyagi 发布v0.1.3更新于 Oct 25, 2026

Agent-native X (Twitter) posting as one MCP server; every post clears a server-side guardrail.

已验证STDIO仅桌面开发者工具沟通与协作

概览

AI 生成的概览

一个 MCP 服务器,让编程助手通过托管在服务端的护栏来起草、预览、定时并发布 X(Twitter)帖子。

可以做什么
通过浏览器 OAuth 一次性连接 X 账号,令牌保存在托管保险库而非本机,并可查看已连接账号及其状态。起草并发布帖子,支持回复串和附带图片或视频,每条帖子都先通过服务端护栏。对草稿做试运行,查看它会通过、被暂扣还是被拦截以及原因。创建和列出定时发布队列,即使笔记本关机也按计划发送。查看已发布或尝试发布的审计记录,并使用内置技能把提交、PR 和发布说明转成帖子草稿。
适用场景
适合希望让编程助手把 build-in-public 进展、更新日志或发布串发到 X 的开发者,无需把 X 令牌粘贴到与自主智能体相邻的本地配置中。也适合任何希望在发布前先预览或试运行检查的人。
运行要求
通过 npx 在本地运行(需 Node 22.6 或更高版本),并连接托管的 capx chokepoint。需要 CAPX_CHOKEPOINT_URL 和白名单中的 CAPX_EMAIL;BYO 通道还需为自有 X 开发者应用提供 X_CLIENT_ID。目前为仅限白名单的私有 alpha,BYO 通道需要预先充值 X API 额度。
安装前请注意
发布、定时和媒体上传都会通过第三方托管服务把内容发送到 X,审计记录会长期保存发帖日志。BYO 通道按帖直接向 X 付费,含链接的帖子费率更高;capx-app 通道是带月费档位的付费测试版。X 令牌由托管 chokepoint 在服务端保管,因此该服务被授予账号访问权限。

安装

在 SourceWeft 中

  1. 打开 控制台中的 capx café,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[capx café — the safe way to let your AI run your X]

capx café

The safe way to let your AI run your X.

One MCP server. Your X token never touches the agent — and every post clears an enforced guardrail before it ships.

[license] [node] [agents] [status]


[20-second demo: a prompt-injected scam draft is BLOCKED by casserole with live reasons; a real build update passes and posts; the token never leaves the server vault]

The guardrail, live — every verdict above is produced by the real chokepoint code (pnpm demo replays it).


capx café is an agent-native X poster that installs as one MCP server into any coding agent (Claude Code / Cursor / Codex / Windsurf). A whitelisted user connects their X account once; after that they create / schedule / post from inside their agent session. The whole product rests on one security thesis: the X token, the guardrail (casserole), and the send are one inseparable server-side unit — the agent on your laptop only ever holds a short-TTL session handle, never the token. That's why it structurally can't be prompt-injected into tweeting a scam. "The AI writes; casserole decides what ships."


Why it's different

Every other "let your AI post" tool has the same flaw: to let an agent post, you paste your X token into a plaintext config right next to an autonomous agent that reads untrusted web pages, issues, and code. One prompt-injection and your account tweets a scam. capx café is the only one that structurally can't be.

  • 🔒 Your X token never touches your machine. OAuth completes on capx café's hosted callback; the token lives encrypted in a server-side vault. Your agent holds only a short-TTL, revocable session handle.
  • 🛡️ casserole — a deterministic (non-AI) six-layer guardrail — runs server-side at the only door to X and checks every post. A blocked post never even decrypts your token (proven by an adversarial test suite).
  • 🔗 The token, the guard, and the send are one unit. Skip the plugin and call the server directly — you still hit the guard. The client's checks are cosmetic; the server's are load-bearing.
  • ✍️ capx generates nothing. Your agent's model writes; capx ships what clears the guard.

→ Full threat model, architecture & the "what we can/can't see" table: docs/SECURITY.md

How it works

mermaid
flowchart LR    subgraph M["🖥️  your machine · untrusted"]        A["agent model<br/>writes the draft"]        S["capx skills"]        C["capx MCP client<br/>holds a session handle · NO token"]    end    subgraph K["🔒  capx chokepoint · hosted · AGPL-3.0"]        AD["admission<br/>allowlist · kill-switch"]        CAS["casserole<br/>6-layer guardrail"]        V["vault<br/>the token lives here"]        XA["x-adapter<br/>the only egress"]    end    X["🐦 X · /2/tweets"]    A --> C    S --> C    C -->|"short-TTL handle<br/>crosses — never the token"| AD    AD --> CAS    CAS -->|PASS| V --> XA --> X    CAS -.->|blocked / held| C

The token, the guardrail, and the send live together behind a trust boundary; your agent can only ask.

The guardrail: casserole

Six deterministic layers on every post. Worst result wins — pass / rewrite / hold / block — and a blocked post never even decrypts the token.

mermaid
flowchart TD    D["draft"] --> AD{"admitted?<br/>allowlisted · not killed"}    AD -->|no| R["rejected"]    AD -->|yes| CAS["casserole<br/>L1 eligibility · L2 rate · L3 anti-slop<br/>L4 authenticity · L5 kill-switch · L6 audit"]    CAS --> VER{"verdict"}    VER -->|block| B["blocked — never sent<br/>🔒 token never decrypted"]    VER -->|hold| H["held for your review"]    VER -->|rewrite| RW["ask the agent to fix"]    VER -->|pass| SEND["vault → x-adapter → X  ✅"]

60-second quickstart

bash
npx -y capx-cafe          # runs the MCP server — add it to your agent's MCP config

Then, inside your agent:

text
"connect my X account"              → opens a browser once; the token stays on the server"post: shipping the thing today"    → clears casserole, or tells you exactly why not"turn my last week of commits into a build-in-public thread"   → drafts + queues it

Set CAPX_EMAIL (your whitelisted email) and, for the BYO lane, X_CLIENT_ID (your own X app) in ~/.capx/config.json or your agent's MCP env. A guided setup page hands you the exact callback URL to paste.

Install matrix

AgentHow
Claude Code/plugin marketplace add vb-tyagi/capx-cafe → /plugin install capx-cafe (MCP + slash commands + skills)
Cursoradd to .cursor/mcp.json; skill rules in plugins/capx-cafe/adapters/cursor/
Codexadd to your MCP config; prompt pack in plugins/capx-cafe/adapters/codex/
Windsurfadd to MCP config; workflows in plugins/capx-cafe/adapters/windsurf/
Any MCP agentpoint it at npx -y capx-cafe
Docker Desktopdocker mcp catalog pull ghcr.io/vb-tyagi/capx-catalog:latest → MCP Toolkit → enable capx café

What your agent can do

ToolWhat it does
connect_xOne-time browser OAuth — the token lands in the server vault, never on your machine
post_nowPost now (clears casserole first). Supports reply-chains and media
previewDry-run a draft through the guardrail without sending — pass / hold / block + why
auditThe durable record of what capx posted or attempted on your behalf, and its state
create_loop · list_loops · …Scheduled posting — a queue you wrote, sent on a schedule, laptop-off
upload_mediaStream a local image/video to X and attach it (media you made with your own tools)
whoamiThe connected account + its status

Skills — your work becomes your content

capx lives inside a coding agent, so it has what no social scheduler does: your repo, commits, PRs, releases. Skills turn that into posts — automatically, and always through the guardrail.

mermaid
flowchart LR    G["git commits"] --> BIP["build-in-public<br/>drafts a week of posts"]    BIP --> Q["loop queue"]    Q -->|"1/day · laptop-off"| POST["posted to X"]    Q -.->|"runs low"| GAP["gap-alert"]    GAP -.->|"top up from new commits"| BIP

The self-refilling content engine: you code → commits accrue → the loop drains as it posts → gap-alert tops it up from the new commits. Your normal work is the pipeline.

  • 🏆 build-in-public · ship-note · changelog-thread · repurpose (blog/README → thread) · launch-thread · til · fix-note
  • voice-match (sound like you) · draft-review (lint against the guard) · thread-builder · hook-rewrite
  • best-time · cadence-planner · gap-alert · audit-trail · connection-health · quickstart · self-host-guide
  • Media directors — image-director, video-director, prompt-engine, model-guide: capx runs no models; it guides your image/video tools (higgsfield, fal, kling, …) and uploads the result. casserole guards your caption; you own the media.

One canonical SKILL.md per skill, generated for all four agents. capx never writes the content — it makes good content easy and stops bad content regardless of which skill produced it.

Two lanes

  • BYO — bring your own X developer app. You're X's customer and pay X directly — since Feb 2026 that means pre-loading credits (no free X tier for new apps) at ~$0.015/post, $0.20 if the post contains a link. Free on capx café's side; heavy users can self-host the identical image.
  • capx-app (creator lane) — post through capx café's shared X app, no developer account needed. Opening as a paid beta (waitlist): Short $5 / Tall $15 / Grande $35 monthly tiers + top-up packs, quotas enforced server-side at the gate. Full sheet + the math: docs/ECONOMICS.md · policy posture: docs/X-COMPLIANCE.md.

Self-host

The chokepoint is open source (AGPL-3.0). Run the identical image with your own X app, keys, database, and domain — CAPX_DEPLOY_MODE=self-host, zero telemetry to capx. See the self-host-guide skill and docs/HANDOFF.md.

Licensing

MIT for the client and everything it bundles (apps/capx-mcp, core, config, platform-client) plus skills & docs. AGPL-3.0 for the server half (the chokepoint + casserole/captain/counter/canteen/ chef). Full map: LICENSING.md.

Status

Private alpha, whitelist-only. The first real post shipped 2026-07-19 — guardrail-cleared, token never on the machine. Not yet open for public signups.

Dev

Node ≥ 22.6 (TypeScript runs natively via --experimental-strip-types — no build step). pnpm run verify = unit tests across packages / services / apps + tsc. Contributions accepted under the project CLA.

capx café · security · architecture · license

来源:README.md,提交 68c8e51

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.3最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分