{"name":"io.github.vb-tyagi/capx-cafe","slug":"vb-tyagi-capx-cafe","title":"capx café","description":"Agent-native X (Twitter) posting as one MCP server; every post clears a server-side guardrail.","url":"https://mcp.market/server/vb-tyagi-capx-cafe","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":25,"stars":0,"forks":0,"downloads_week":27,"last_push_at":"2026-09-17T13:06:05.000Z","license":"AGPL-3.0"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/vb-tyagi/capx-cafe","website":"https://capx-cafe.vercel.app","version":"0.1.3","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"capx-cafe","version":"0.1.3","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"URL of the hosted capx chokepoint that enforces the server-side guardrail on every post","isRequired":true,"name":"CAPX_CHOKEPOINT_URL"},{"description":"Whitelisted user email used to authenticate to the chokepoint","isRequired":true,"name":"CAPX_EMAIL"},{"description":"Connection lane: 'byo' (bring your own X app) or 'capx-app' (capx-managed app)","choices":["byo","capx-app"],"name":"CAPX_LANE"},{"description":"X (Twitter) OAuth client ID; required only on the BYO lane","name":"X_CLIENT_ID"}]}],"tools":[{"name":"audit","description":"Show the durable history of what capx has posted or attempted on your behalf (most recent first, with delivery state). A trust feature \\u2014 read-only, your own handle only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"connect_x","description":"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 }.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_loop","description":"Schedule recurring posts. YOU (the agent) must write the posts and pass them in `posts` \\u2014 capx never generates content, so at fire time it only ships text you already wrote. When the queue empties the loop pauses and asks for more. Requires a verified X account at least 30 days old.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_loop","description":"Delete a loop permanently.","write_action":true,"price_micros":0,"input_schema":null},{"name":"list_loops","description":"List your scheduled loops, their next-post queue, and whether any are paused.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pause_loop","description":"Pause or resume a loop.","write_action":false,"price_micros":0,"input_schema":null},{"name":"post_now","description":"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 \\u2014 it is the user's choice). Pass inReplyToId with a prior post's platformPostId to chain a native reply/thread.","write_action":true,"price_micros":0,"input_schema":null},{"name":"preview","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"top_up_loop","description":"Add more posts YOU wrote to a loop's queue. Resumes a loop that paused because it ran out.","write_action":false,"price_micros":0,"input_schema":null},{"name":"upload_media","description":"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 \\u2014 you set the AI-content label per the media skills.","write_action":true,"price_micros":0,"input_schema":null},{"name":"whoami","description":"Show the connected X account and its status (via the chokepoint).","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-20T16:18:45.843Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T16:18:45.764Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 3 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"capx-cafe","version":"0.1.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-03T08:59:40.016Z","repositoryUrl":"git+https://github.com/vb-tyagi/capx-cafe.git","weeklyDownloads":27}],"repo":{"found":true,"owner":"vb-tyagi","repo":"capx-cafe","archived":false,"pushedAt":"2026-09-17T13:06:05Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/92976832?v=4","ownerCreatedAt":"2021-10-22T08:09:07Z","license":"AGPL-3.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/92976832?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":27,"license":"AGPL-3.0","lastPushAt":"2026-09-17T13:06:05.000Z","score":25}}}},"grade_history":[],"reviews":[]}