Skip to main content
Glama
fatwang2

x-api-mcp

by fatwang2

add_account

Start OAuth 2.0 PKCE to authorize an additional X account and get a browser URL. Loopback mode saves tokens locally; paste mode returns callback URL to complete authorization.

Instructions

Start OAuth 2.0 (PKCE) to authorize another X account. Returns authorize_url for the user to open in a browser logged in to that account, and a note to relay to them. mode=loopback: a local listener saves the token automatically; confirm with auth_status. mode=paste: ask the user to paste the callback URL from the address bar right after approving and pass it to complete_authorization at once. Tokens are stored only on this machine.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
wait_secondsNoBlock up to this many seconds for the user to finish in the browser (default 0: return the URL immediately).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only openWorldHint=true available in annotations, the description carries real behavioral weight: it discloses that tokens 'are stored only on this machine', what the call returns (authorize_url plus a note to relay), the human-in-the-loop requirement, and the exact follow-up call for each flow. That is substantially more than the single annotation conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and return value, then splits the two flows into short labeled clauses. Every sentence is operative: no restatement of the name, no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter tool with no output schema, the description supplies everything an agent needs: what is returned, the human handoff, the per-mode follow-up call, and the trust boundary for token storage. The only open question is where 'mode' originates, which is a schema-side gap rather than a description gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single parameter (wait_seconds) is fully documented in the schema, including default and maximum. The description never mentions wait_seconds or the blocking/return-immediately tradeoff, so it adds no meaning beyond the schema — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and technical mechanism ('Start OAuth 2.0 (PKCE) to authorize another X account'), naming the exact resource and the resulting artifact. An agent can distinguish this from complete_authorization (finishes the flow) and auth_status (checks it) without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to siblings: 'confirm with auth_status' for loopback and 'pass it to complete_authorization at once' for paste mode, which is genuine when-to-use guidance. It stops short of stating when an agent should prefer this tool over re-using an existing account, and the 'mode' selector it branches on is not present in the input schema, leaving the branch condition underspecified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.