X skill: built-in reads, unread state, no congrats line

Merged
SA
6d ago
+62-32

The X MCP guide now covers Grok Bot's built-in public reads, so public posts, users, search, trends, and news do not ask the user to connect X, check credits, or estimate a cost.

What's unread in X Chat uses get_chat_conversations with unread_only and the unread fields, paging until has_more is false, instead of scanning every conversation.

Message requests are listed from both inboxes, opened only when the owner asked, and accepted only when the owner said to accept.

The on-connect message no longer opens with the free-credits congrats line. It starts with the capabilities list and still states the remaining balance.

Replaces #563, #566, #578 and #579.

Test plan

  • node scripts/validate-plugins.mjs passes.
  • In Grok Bot with X not connected, a public-account read uses the built-in reads and does not ask to connect or check credits.
  • "What's unread in my X Chat?" lists unread conversations and does not scan every thread.
  • Asking about message requests lists both inboxes and does not open or accept one unless the owner said to.
  • A fresh connect welcome starts with "You're connected to X" and has no congrats line.

[!NOTE]
Low Risk
Documentation and plugin version only; no runtime or API implementation changes in this diff.

Overview
Bumps the X plugin to 2.6.3 and rewrites agent guidance in the X MCP skill, README, and changelog.

Built-in public reads: Agents are told that Grok Bot can read public posts, users, search, trends, and news without an X connection, credit check, or cost estimate; missing get_usage_credits / get_users_me beside those reads is not treated as an error.

On connect: The welcome flow drops the “Congrats, you've received free X API credits…” opener. It still leads with capabilities (Chat now mentions listing, opening, and accepting message requests) and the remaining balance line.

X Chat unread: New Unread workflow uses get_chat_conversations with unread_only and unread,last_read_event_id,newest_event_id, paging until has_more is false, instead of scanning every thread for new events.

Message requests: Documents list (get_chat_message_requests for Priority and Hidden inboxes), open (get_chat_message_request only on user request—marks delivered), and accept (accept_chat_message_request only on explicit user consent; replies do not accept). Adds guardrails: do not open while scanning; do not accept while paging.

Reviewed by Cursor Bugbot for commit 20b1a0a1918b9ffc9de7b1551e4856b0596cc2ee. Bugbot is set up for automated code reviews on this repo. Configure here.