capx café
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CAPX_EMAIL | Yes | Your whitelisted email address | |
| X_CLIENT_ID | No | Your own X app client ID (required for BYO lane) | |
| CAPX_DEPLOY_MODE | No | Set to 'self-host' to run the server in self-host mode |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| connect_xA | Connect (or confirm) your X account via the capx chokepoint. Call once for a consent URL; after authorizing in the browser, call again with { confirm: true }. |
| whoamiA | Show the connected X account and its status (via the chokepoint). |
| post_nowA | Post text to X now. Every post passes the casserole guardrail at the chokepoint; blocked/held posts are never sent, and the token never touches this machine. Set aiGenerated only if the user wants this post labelled AI-assisted (default off — it is the user's choice). Pass inReplyToId with a prior post's platformPostId to chain a native reply/thread. |
| previewA | Dry-run a draft through the casserole guardrail WITHOUT posting: returns whether it would pass, be held, or be blocked, and why. Use it to fix a draft before posting or scheduling. This is a linter, never a way to bypass the guard. |
| auditA | Show the durable history of what capx has posted or attempted on your behalf (most recent first, with delivery state). A trust feature — read-only, your own handle only. |
| upload_mediaA | Upload a local image or video (produced by your own media tool) so it can be attached to a post. Reads the file, streams the bytes to the chokepoint, and returns a media id to pass to post_now as mediaIds. Media is not moderated by casserole — you set the AI-content label per the media skills. |
| create_loopA | Schedule recurring posts. YOU (the agent) must write the posts and pass them in |
| list_loopsA | List your scheduled loops, their next-post queue, and whether any are paused. |
| pause_loopB | Pause or resume a loop. |
| top_up_loopA | Add more posts YOU wrote to a loop's queue. Resumes a loop that paused because it ran out. |
| delete_loopA | Delete a loop permanently. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool targets a distinct operation: account connection/status, immediate posting, dry-run preview, audit history, media upload, and loop lifecycle management. Even similar actions like create_loop, top_up_loop, and pause_loop are clearly separated by their descriptions.
Most tools follow a snake_case verb_noun pattern (create_loop, list_loops, pause_loop, upload_media, delete_loop). Minor deviations like post_now, preview, audit, and whoami are still readable and do not cause confusion, though they are slightly less consistent.
Eleven tools is well within the ideal range for this domain. The count covers account management, posting, guardrail preview, audit, media upload, and loop scheduling without feeling bloated or redundant.
The core workflows are well covered: connect, verify, post, preview, audit, upload media, and manage recurring loops through create/pause/top-up/delete. Minor gaps exist such as the lack of a disconnect account tool or a one-off scheduled post, but they do not block the main purpose.