X WebMCP
Use this skill to operate X through the built-in --site x bridge preset in @webmcp-bridge/local-mcp.
For generic bridge setup patterns or non-X sites, switch to $webmcp-bridge.
Prerequisites
uxcis installed and available inPATH.npxis installed and available inPATH.- Network access to
https://x.com. - On a fresh machine, or under an isolated
HOME, install Playwright browsers first withnpx playwright install. - X is auth-sensitive. Expect
bootstrap_then_attachbehavior when the profile is not signed in yet.
Core Workflow
- Ensure the fixed X link exists:
command -v x-webmcp-cli- if missing or pointed at the wrong profile, run
skills/x-webmcp/scripts/ensure-links.sh
- Inspect the bridge and tool schema before calling tools:
x-webmcp-cli -hx-webmcp-cli timeline.home.list -hx-webmcp-cli grok.chat -hx-webmcp-cli article.publishMarkdown -h
- Check authentication state first when the profile is new or looks stale:
x-webmcp-cli bridge.session.statusx-webmcp-cli auth.get- if the session is not ready, start bootstrap or switch to headed:
x-webmcp-cli bridge.session.bootstrapx-webmcp-cli bridge.session.mode.set '{"mode":"headed"}'x-webmcp-cli bridge.open
- Use read tools for timelines, conversations, and profiles:
x-webmcp-cli timeline.home.list limit=10x-webmcp-cli search.tweets.list '{"query":"playwright","mode":"latest","limit":10}'x-webmcp-cli tweet.get '{"url":"https://x.com/.../status/..."}'x-webmcp-cli tweet.conversation.get '{"id":"2033895522382319922","limit":10}'x-webmcp-cli user.get username=jack
- Use write tools only after reading help and confirming user intent:
x-webmcp-cli tweet.create '{"text":"hello from webmcp","dryRun":true}'x-webmcp-cli tweet.reply '{"id":"2033895522382319922","text":"reply text","dryRun":true}'x-webmcp-cli article.publishMarkdown '{"markdownPath":"/abs/path/post.md","dryRun":true}'
- Use Grok through the same authenticated X session:
x-webmcp-cli grok.chat '{"prompt":"Summarize this thread","timeoutMs":180000}'- for uploads, pass absolute local file paths in
attachmentPaths
- Parse JSON output only:
- success path:
.ok == true, consume.data - failure path:
.ok == false, inspect.error.codeand.error.message
- success path:
Default Target
The built-in preset uses:
--site x
The default profile path is:
~/.uxc/webmcp-profile/x
Refresh the link with:
skills/x-webmcp/scripts/ensure-links.sh
Guardrails
- Keep the X profile isolated from other sites.
- X uses
bootstrap_then_attach; do not expect page tools to work until the managed profile is authenticated. - Prefer explicit
bridge.session.mode.setover relaunching the command to change runtime mode. grok.chatand article publishing can take a long time. IncreasetimeoutMsinstead of retrying aggressively.- For local uploads such as
attachmentPaths,markdownPath, orcoverImagePath, always use absolute filesystem paths. - Use
dryRunfor destructive or public write tools first when available. - If the user closes the visible X window manually, the headed owner session ends. Run
x-webmcp-cli bridge.openagain if you still need a visible session on the same profile.
References
- Common command patterns:
references/usage-patterns.md
- Link creation helper:
scripts/ensure-links.sh