MCP Server for BNBOT Chrome Extension - Control Twitter/X via AI assistants like OpenClaw
Scoring was not performed
No output schemas documented for any tool, agents cannot predict return types or plan downstream calls. Tools like scrape_timeline return tweet arrays, but no schema describes field names, types, or pagination strategy.
Navigation tools (navigate_to_*, return_to_timeline) have empty input schemas, they accept no parameters. Descriptions do not explain what data they return or whether they are idempotent side effects. Agents cannot reason about state changes.
Engagement tools (like_tweet, retweet) require prior context (navigate_to_tweet first). Descriptions say 'Navigate to the tweet first' but do not explain why the tool cannot accept a URL parameter. This forces sequential calls and blocks single-shot automation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 19 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 52 | - | v1 |
Media parameters in post_tweet and post_thread lack format constraints or examples. Descriptions mention 'URLs (https://...), local file paths (/path/to/file.png)' but do not specify: valid MIME types, size limits, path normalization rules, or error handling for invalid sources.
No error handling or recovery guidance in any tool description. Tools lack actionable error messages (e.g., 'If extension disconnected, call get_extension_status()') or classification (retryable vs. fatal). Agents cannot self-correct on failure.
post_tweet description claims max 280 characters but does not enforce or validate this at the tool level. Agents will not truncate and the API call will fail with ambiguous error. Text parameter lacks length constraint in schema.
draftOnly parameter in post_tweet and post_thread is boolean with no description explaining the difference in behavior or side effects. 'Draft mode' is unclear, does it save locally, post without publishing, or create an unsent message?
Tools like submit_reply accept optional tweetUrl but behavior changes based on context (if omitted, replies to current tweet). This implicit dependency is documented in description but not enforced by schema. Agents may accidentally reply to wrong tweet.