x-developer 2.6.5 → 2.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/.claude-plugin/plugin.json +3 -3
  3. package/.codex-plugin/plugin.json +5 -5
  4. package/CHANGELOG.md +19 -3
  5. package/README.md +111 -70
  6. package/commands/post.md +5 -5
  7. package/commands/search.md +5 -8
  8. package/commands/trending.md +3 -5
  9. package/commands/user.md +4 -10
  10. package/context7.json +9 -9
  11. package/openclaw.plugin.json +4 -4
  12. package/package.json +10 -2
  13. package/scripts/check-versions.mjs +1 -1
  14. package/scripts/release-guard/content-policy.mjs +17 -17
  15. package/scripts/release-guard/policy.mjs +2 -2
  16. package/server.json +1 -1
  17. package/skills/x-twitter-scraper/SKILL.md +96 -90
  18. package/skills/x-twitter-scraper/metadata.json +2 -2
  19. package/skills/x-twitter-scraper/references/api-endpoints-api-keys.md +5 -5
  20. package/skills/x-twitter-scraper/references/api-endpoints-compose.md +16 -16
  21. package/skills/x-twitter-scraper/references/api-endpoints-credits.md +3 -3
  22. package/skills/x-twitter-scraper/references/api-endpoints-drafts.md +21 -21
  23. package/skills/x-twitter-scraper/references/api-endpoints-draws.md +15 -15
  24. package/skills/x-twitter-scraper/references/api-endpoints-error-codes.md +4 -4
  25. package/skills/x-twitter-scraper/references/api-endpoints-events.md +8 -8
  26. package/skills/x-twitter-scraper/references/api-endpoints-extractions.md +24 -23
  27. package/skills/x-twitter-scraper/references/api-endpoints-monitors.md +21 -21
  28. package/skills/x-twitter-scraper/references/api-endpoints-radar.md +13 -13
  29. package/skills/x-twitter-scraper/references/api-endpoints-support.md +6 -6
  30. package/skills/x-twitter-scraper/references/api-endpoints-trends.md +20 -5
  31. package/skills/x-twitter-scraper/references/api-endpoints-tweet-style-cache.md +39 -39
  32. package/skills/x-twitter-scraper/references/api-endpoints-webhooks.md +24 -24
  33. package/skills/x-twitter-scraper/references/api-endpoints-x-accounts.md +13 -13
  34. package/skills/x-twitter-scraper/references/api-endpoints-x-api.md +41 -41
  35. package/skills/x-twitter-scraper/references/api-endpoints-x-media.md +9 -9
  36. package/skills/x-twitter-scraper/references/api-endpoints-x-write.md +73 -73
  37. package/skills/x-twitter-scraper/references/api-endpoints.md +11 -11
  38. package/skills/x-twitter-scraper/references/automate-twitter-giveaways.md +13 -13
  39. package/skills/x-twitter-scraper/references/best-x-api-alternative.md +38 -38
  40. package/skills/x-twitter-scraper/references/compare-twitter-apis.md +23 -24
  41. package/skills/x-twitter-scraper/references/draws.md +14 -14
  42. package/skills/x-twitter-scraper/references/export-twitter-followers.md +12 -12
  43. package/skills/x-twitter-scraper/references/extract-x-community-data.md +10 -10
  44. package/skills/x-twitter-scraper/references/extractions.md +54 -48
  45. package/skills/x-twitter-scraper/references/mcp-setup.md +30 -36
  46. package/skills/x-twitter-scraper/references/mcp-tools.md +59 -69
  47. package/skills/x-twitter-scraper/references/monitor-twitter-webhooks.md +17 -18
  48. package/skills/x-twitter-scraper/references/python-examples.md +18 -26
  49. package/skills/x-twitter-scraper/references/reliable-twitter-data-api-2026.md +58 -60
  50. package/skills/x-twitter-scraper/references/scrape-export-twitter-data.md +25 -27
  51. package/skills/x-twitter-scraper/references/security.md +9 -22
  52. package/skills/x-twitter-scraper/references/track-twitter-keywords-mentions.md +18 -18
  53. package/skills/x-twitter-scraper/references/twitter-api-alternative-faq.md +17 -17
  54. package/skills/x-twitter-scraper/references/twitter-api-without-x-account.md +10 -11
  55. package/skills/x-twitter-scraper/references/twitter-data-pipeline.md +23 -23
  56. package/skills/x-twitter-scraper/references/twitter-scraper-api-guide.md +50 -50
  57. package/skills/x-twitter-scraper/references/types-account-identity.md +1 -1
  58. package/skills/x-twitter-scraper/references/types-account.md +1 -1
  59. package/skills/x-twitter-scraper/references/types-api-keys.md +1 -1
  60. package/skills/x-twitter-scraper/references/types-bookmarks-and-timeline.md +1 -1
  61. package/skills/x-twitter-scraper/references/types-credits.md +1 -1
  62. package/skills/x-twitter-scraper/references/types-download-media.md +4 -4
  63. package/skills/x-twitter-scraper/references/types-draws.md +1 -1
  64. package/skills/x-twitter-scraper/references/types-error.md +1 -1
  65. package/skills/x-twitter-scraper/references/types-events.md +1 -1
  66. package/skills/x-twitter-scraper/references/types-extractions.md +79 -96
  67. package/skills/x-twitter-scraper/references/types-mcp-output-schemas.md +1 -1
  68. package/skills/x-twitter-scraper/references/types-monitors.md +1 -1
  69. package/skills/x-twitter-scraper/references/types-radar.md +1 -1
  70. package/skills/x-twitter-scraper/references/types-request-bodies.md +1 -1
  71. package/skills/x-twitter-scraper/references/types-rest-api-vs-mcp-field-naming.md +1 -1
  72. package/skills/x-twitter-scraper/references/types-support.md +1 -1
  73. package/skills/x-twitter-scraper/references/types-trends.md +1 -1
  74. package/skills/x-twitter-scraper/references/types-tweet-drafts.md +1 -1
  75. package/skills/x-twitter-scraper/references/types-tweet-style-cache.md +1 -1
  76. package/skills/x-twitter-scraper/references/types-user-activity.md +1 -1
  77. package/skills/x-twitter-scraper/references/types-webhooks.md +1 -1
  78. package/skills/x-twitter-scraper/references/types-x-accounts.md +3 -3
  79. package/skills/x-twitter-scraper/references/types-x-api.md +25 -31
  80. package/skills/x-twitter-scraper/references/types-x-articles.md +1 -1
  81. package/skills/x-twitter-scraper/references/types-x-write.md +3 -3
  82. package/skills/x-twitter-scraper/references/types.md +15 -15
  83. package/skills/x-twitter-scraper/references/usage.md +6 -6
  84. package/skills/x-twitter-scraper/references/webhooks.md +27 -37
  85. package/skills/x-twitter-scraper/references/workflows.md +54 -63
  86. package/skills/x-twitter-scraper/skill-card.md +35 -27
  87. package/skills/x-twitter-scraper/skillspector-report.md +2 -2
  88. package/skills/xquik-social-research/SKILL.md +19 -16
  89. package/skills.sh.json +8 -8
  90. package/stub-server.mjs +42 -42
  91. package/task-guides/check-mutuals.md +9 -9
  92. package/task-guides/clean-followers.md +15 -15
  93. package/task-guides/export-tweets-csv.md +12 -12
  94. package/task-guides/extract-followers.md +16 -16
  95. package/task-guides/find-bangers.md +14 -14
  96. package/task-guides/find-influencers.md +10 -10
  97. package/task-guides/find-viral-tweets.md +15 -15
  98. package/task-guides/follow-unfollow.md +16 -15
  99. package/task-guides/for-you-feed.md +10 -10
  100. package/task-guides/going-viral.md +19 -18
  101. package/task-guides/grow-followers.md +13 -13
  102. package/task-guides/monitor-accounts.md +16 -16
  103. package/task-guides/optimize-tweets.md +16 -15
  104. package/task-guides/post-tweets.md +19 -18
  105. package/task-guides/run-giveaway.md +15 -15
  106. package/task-guides/search-tweets.md +13 -13
  107. package/task-guides/send-dms.md +13 -13
  108. package/task-guides/top-replies.md +10 -10
  109. package/task-guides/track-competitors.md +16 -16
  110. package/task-guides/track-hashtags.md +10 -10
  111. package/task-guides/track-mentions.md +12 -12
  112. package/task-guides/trending-news.md +11 -11
  113. package/task-guides/tweet-analytics.md +16 -16
  114. package/task-guides/tweet-ideas.md +10 -10
  115. package/task-guides/tweet-replies.md +15 -15
  116. package/task-guides/tweet-style.md +10 -10
  117. package/task-guides/tweet-webhooks.md +12 -12
  118. package/task-guides/update-x-profile.md +15 -15
  119. package/task-guides/user-tweets.md +21 -21
  120. package/task-guides/who-liked.md +10 -10
  121. package/task-guides/who-quoted.md +10 -10
  122. package/task-guides/who-retweeted.md +10 -10
  123. package/task-guides/write-threads.md +12 -16
  124. package/task-guides/write-tweets.md +15 -15
  125. package/task-guides/x-articles.md +9 -9
  126. package/task-guides/x-bookmarks.md +10 -10
  127. package/task-guides/x-communities.md +10 -10
  128. package/task-guides/x-lists.md +8 -8
  129. package/task-guides/x-spaces.md +9 -9
  130. package/task-guides/x-trends.md +11 -11
@@ -1,4 +1,4 @@
1
- # X Communities API: Export Members, Moderators, and Posts
1
+ # X Communities API: export members, moderators, and posts
2
2
 
3
3
  Xquik supports community discovery, metadata, members, moderators, posts, and
4
4
  search. Use the numeric community ID from `x.com/i/communities/{id}`.
@@ -6,22 +6,22 @@ search. Use the numeric community ID from `x.com/i/communities/{id}`.
6
6
  > Xquik is an independent third-party service. Not affiliated with X Corp.
7
7
  > "Twitter" and "X" are trademarks of X Corp.
8
8
 
9
- ## X Community Dataset Matrix
9
+ ## X Community dataset matrix
10
10
 
11
- | Dataset | Extraction Type | Required Input | Useful Keys |
11
+ | Dataset | Extraction type | Required input | Useful keys |
12
12
  | --- | --- | --- | --- |
13
13
  | Members | `community_extractor` | `targetCommunityId` | Community ID and user ID |
14
14
  | Moderators | `community_moderator_explorer` | `targetCommunityId` | Community ID and user ID |
15
15
  | Posts | `community_post_extractor` | `targetCommunityId` | Community ID and tweet ID |
16
16
  | Matching posts | `community_search` | Community ID and `searchQuery` | Community ID, query, tweet ID |
17
17
 
18
- ## X Community Research Schema
18
+ ## X Community research schema
19
19
 
20
20
  Use a separate table for communities, member observations, and post
21
21
  observations. This prevents a current profile update from changing past
22
22
  research results.
23
23
 
24
- | Table | Primary Key | Recommended Context |
24
+ | Table | Primary key | Stored context |
25
25
  | --- | --- | --- |
26
26
  | `communities` | Community ID | Name, description, rules, collected time |
27
27
  | `community_members` | Community ID, user ID, snapshot ID | Role and membership observation |
@@ -51,7 +51,7 @@ Moderators answer governance questions. Posts answer content questions.
51
51
  Community search answers topic questions inside one community.
52
52
 
53
53
  Use a direct read for a small application page. Use extraction jobs for durable
54
- or complete datasets. Estimate before creating bulk work.
54
+ or exportable datasets. Estimate before creating bulk work.
55
55
 
56
56
  Keep member and post datasets separate. Their identifiers, update rates,
57
57
  privacy considerations, and analysis methods differ.
@@ -90,7 +90,7 @@ Community writes are separate account actions. They require a connected X
90
90
  account and explicit confirmation. Public community reads do not authorize
91
91
  joins, leaves, or moderation actions.
92
92
 
93
- ## X Community Extraction Checklist
93
+ ## X Community extraction checklist
94
94
 
95
95
  1. Confirm the public community and numeric ID.
96
96
  2. Choose members, moderators, posts, or scoped search.
@@ -100,7 +100,7 @@ joins, leaves, or moderation actions.
100
100
  6. Separate raw content from derived analysis.
101
101
  7. Apply privacy, retention, and redistribution controls.
102
102
 
103
- ## X Community Dataset Quality Checks
103
+ ## X Community dataset quality checks
104
104
 
105
105
  Report the requested result bound, returned rows, unique IDs, and collection
106
106
  time. Explain whether the dataset covers members, moderators, posts, or search
@@ -114,8 +114,8 @@ For topic analysis, publish the query version and language coverage. For network
114
114
  analysis, explain whether edges represent membership, replies, quotes, or
115
115
  reposts. Each edge has a different meaning.
116
116
 
117
- ## Related X Community API Guides
117
+ ## Related X Community API guides
118
118
 
119
119
  - [Extraction types](extractions.md)
120
120
  - [Community endpoint routes](api-endpoints-x-api.md)
121
- - [X API alternative content hub](twitter-api-alternative-faq.md)
121
+ - [X API alternative FAQ](twitter-api-alternative-faq.md)
@@ -1,8 +1,8 @@
1
- # Xquik Extraction Tools
1
+ # Xquik extraction tools
2
2
 
3
- 23 bulk data extraction tools. Each requires a specific target parameter.
3
+ Xquik provides 23 bulk data extraction tools. Each tool requires a specific target.
4
4
 
5
- ## Privacy and Acceptable Use
5
+ ## Privacy and acceptable use
6
6
 
7
7
  Bulk extraction and export can collect large amounts of public identity,
8
8
  activity, and relationship data. Before creating a job, confirm the lawful
@@ -19,23 +19,17 @@ without renewed approval.
19
19
  The API accepts an omitted `resultsLimit`. This Skill must always send an
20
20
  explicit finite positive bound. Use the same bound for estimate and create.
21
21
 
22
- **Endpoint:** `POST /extractions`
22
+ Call `POST /extractions`
23
23
 
24
- **Always estimate first:** `POST /extractions/estimate` with the same body to preview `creditsRequired`, `creditsAvailable`, and whether the job is allowed.
24
+ Estimate first with `POST /extractions/estimate` with the same body to preview `creditsRequired`, `creditsAvailable`, and whether the job is allowed.
25
25
 
26
- ## Contents
26
+ ## Tool types
27
27
 
28
- - [Tool Types](#tool-types)
29
- - [Response](#response)
30
- - [Retrieving Results](#retrieving-results)
31
- - [Exporting Results](#exporting-results)
32
- - [Estimating Usage](#estimating-usage)
28
+ ### Tweet-based tools
33
29
 
34
- ## Tool Types
30
+ These tools require `targetTweetId`.
35
31
 
36
- ### Tweet-Based (require `targetTweetId`)
37
-
38
- | Tool Type | Description |
32
+ | Tool type | Description |
39
33
  |-----------|-------------|
40
34
  | `reply_extractor` | Extract users who replied to a tweet |
41
35
  | `repost_extractor` | Extract users who retweeted a tweet |
@@ -44,7 +38,7 @@ explicit finite positive bound. Use the same bound for estimate and create.
44
38
  | `article_extractor` | Extract article content linked in a tweet |
45
39
  | `favoriters` | Extract users who favorited a tweet |
46
40
 
47
- **Example:**
41
+ For example:
48
42
  ```json
49
43
  {
50
44
  "toolType": "reply_extractor",
@@ -52,9 +46,11 @@ explicit finite positive bound. Use the same bound for estimate and create.
52
46
  }
53
47
  ```
54
48
 
55
- ### User-Based (require `targetUsername`)
49
+ ### User-based tools
50
+
51
+ These tools require `targetUsername`.
56
52
 
57
- | Tool Type | Description |
53
+ | Tool type | Description |
58
54
  |-----------|-------------|
59
55
  | `follower_explorer` | Extract followers of an account |
60
56
  | `following_explorer` | Extract accounts followed by a user |
@@ -62,7 +58,7 @@ explicit finite positive bound. Use the same bound for estimate and create.
62
58
  | `mention_extractor` | Extract tweets mentioning an account |
63
59
  | `post_extractor` | Extract posts from an account |
64
60
 
65
- **Example:**
61
+ For example:
66
62
  ```json
67
63
  {
68
64
  "toolType": "follower_explorer",
@@ -72,14 +68,16 @@ explicit finite positive bound. Use the same bound for estimate and create.
72
68
 
73
69
  The `@` prefix is automatically stripped if included.
74
70
 
75
- ### User Timeline Tools (require `targetUsername`)
71
+ ### User timeline tools
76
72
 
77
- | Tool Type | Description |
73
+ These tools require `targetUsername`.
74
+
75
+ | Tool type | Description |
78
76
  |-----------|-------------|
79
77
  | `user_likes` | Extract tweets liked by a user |
80
78
  | `user_media` | Extract media tweets from a user |
81
79
 
82
- **Example:**
80
+ For example:
83
81
  ```json
84
82
  {
85
83
  "toolType": "user_likes",
@@ -87,16 +85,18 @@ The `@` prefix is automatically stripped if included.
87
85
  }
88
86
  ```
89
87
 
90
- ### Community-Based (require `targetCommunityId`)
88
+ ### Community-based tools
89
+
90
+ These tools require `targetCommunityId`.
91
91
 
92
- | Tool Type | Description |
92
+ | Tool type | Description |
93
93
  |-----------|-------------|
94
94
  | `community_extractor` | Extract members of a community |
95
95
  | `community_moderator_explorer` | Extract moderators of a community |
96
96
  | `community_post_extractor` | Extract posts from a community |
97
97
  | `community_search` | Search posts within a community (also requires `searchQuery`) |
98
98
 
99
- **Example:**
99
+ For example:
100
100
  ```json
101
101
  {
102
102
  "toolType": "community_extractor",
@@ -104,15 +104,17 @@ The `@` prefix is automatically stripped if included.
104
104
  }
105
105
  ```
106
106
 
107
- ### List-Based (require `targetListId`)
107
+ ### List-based tools
108
108
 
109
- | Tool Type | Description |
109
+ These tools require `targetListId`.
110
+
111
+ | Tool type | Description |
110
112
  |-----------|-------------|
111
113
  | `list_member_extractor` | Extract members of a list |
112
114
  | `list_post_extractor` | Extract posts from a list |
113
115
  | `list_follower_explorer` | Extract followers of a list |
114
116
 
115
- **Example:**
117
+ For example:
116
118
  ```json
117
119
  {
118
120
  "toolType": "list_member_extractor",
@@ -120,13 +122,15 @@ The `@` prefix is automatically stripped if included.
120
122
  }
121
123
  ```
122
124
 
123
- ### Space-Based (require `targetSpaceId`)
125
+ ### Space-based tools
126
+
127
+ These tools require `targetSpaceId`.
124
128
 
125
- | Tool Type | Description |
129
+ | Tool type | Description |
126
130
  |-----------|-------------|
127
131
  | `space_explorer` | Extract participants of a Space |
128
132
 
129
- **Example:**
133
+ For example:
130
134
  ```json
131
135
  {
132
136
  "toolType": "space_explorer",
@@ -134,14 +138,16 @@ The `@` prefix is automatically stripped if included.
134
138
  }
135
139
  ```
136
140
 
137
- ### Search-Based (require `searchQuery`)
141
+ ### Search-based tools
142
+
143
+ These tools require `searchQuery`.
138
144
 
139
- | Tool Type | Description |
145
+ | Tool type | Description |
140
146
  |-----------|-------------|
141
147
  | `people_search` | Search for users by keyword |
142
148
  | `tweet_search_extractor` | Search and extract tweets by keyword or hashtag |
143
149
 
144
- **Example (people search):**
150
+ For a people search:
145
151
  ```json
146
152
  {
147
153
  "toolType": "people_search",
@@ -149,7 +155,7 @@ The `@` prefix is automatically stripped if included.
149
155
  }
150
156
  ```
151
157
 
152
- **Example (tweet search):**
158
+ For a tweet search:
153
159
  ```json
154
160
  {
155
161
  "toolType": "tweet_search_extractor",
@@ -158,7 +164,7 @@ The `@` prefix is automatically stripped if included.
158
164
  }
159
165
  ```
160
166
 
161
- ### Tweet Search Filters
167
+ ### Tweet search filters
162
168
 
163
169
  `tweet_search_extractor` accepts structured filters. It combines them with
164
170
  `searchQuery` before collection.
@@ -216,7 +222,7 @@ The `@` prefix is automatically stripped if included.
216
222
  | `boundingBox` | string | Geographic bounding box |
217
223
  | `advancedQuery` | string | Raw X search operators appended to query |
218
224
 
219
- **Example with filters:**
225
+ For example, apply filters:
220
226
  ```json
221
227
  {
222
228
  "toolType": "tweet_search_extractor",
@@ -229,9 +235,9 @@ The `@` prefix is automatically stripped if included.
229
235
  }
230
236
  ```
231
237
 
232
- `resultsLimit` (optional): Maximum results to extract. Stops early instead of fetching all. Pass this on both `POST /extractions/estimate` and `POST /extractions` when you only need a specific count.
238
+ Set optional `resultsLimit` to stop after a specific result count. Pass the same value to `POST /extractions/estimate` and `POST /extractions`.
233
239
 
234
- ### Profile Filters
240
+ ### Profile filters
235
241
 
236
242
  Profile-producing extractions also accept `minFollowers`, `maxFollowers`,
237
243
  `minFollowing`, `maxFollowing`, `minPosts`, `maxPosts`,
@@ -249,39 +255,39 @@ Profile-producing extractions also accept `minFollowers`, `maxFollowers`,
249
255
  }
250
256
  ```
251
257
 
252
- Statuses: `pending`, `running`, `completed`, `failed`.
258
+ The status is `pending`, `running`, `completed`, or `failed`.
253
259
 
254
- ## Retrieving Results
260
+ ## Retrieving results
255
261
 
256
262
  ```
257
263
  GET /extractions/{id}
258
264
  ```
259
265
 
260
- Returns paginated results (up to 1,000 per page). Each result includes:
266
+ The endpoint returns up to 1,000 results per page. Each result includes:
261
267
 
262
268
  - `xUserId`, `xUsername`, `xDisplayName`
263
269
  - `xFollowersCount`, `xVerified`, `xProfileImageUrl`
264
270
  - `tweetId`, `tweetText`, `tweetCreatedAt` (for tweet-based extractions)
265
271
 
266
- ## Exporting Results
272
+ ## Exporting results
267
273
 
268
274
  ```
269
275
  GET /extractions/{id}/export?format=csv
270
276
  ```
271
277
 
272
- Formats: `csv`, `json`, `md`, `md-document`, `pdf`, `txt`, `xlsx`. 100,000 row limit (10,000 for PDF).
278
+ Choose `csv`, `json`, `md`, `md-document`, `pdf`, `txt`, or `xlsx`. Exports support 100,000 rows, except PDF supports 10,000.
273
279
 
274
280
  Exports include enrichment columns not present in the API response.
275
281
 
276
282
  The endpoint supports follower, following, post, engagement, profile, media,
277
283
  language, search, and date filters. It does not project individual fields.
278
284
 
279
- **Approval required:** Set the smallest approved `resultsLimit` when creating
285
+ Get approval first. Set the smallest approved `resultsLimit` when creating
280
286
  the job. Before export, show the job, filters, format, row count, schema,
281
287
  recipients, storage, and retention. Materialize or transmit the dataset only
282
288
  after explicit approval. Delete it when the approved purpose ends.
283
289
 
284
- ## Estimating Usage
290
+ ## Estimating usage
285
291
 
286
292
  ```
287
293
  POST /extractions/estimate
@@ -299,7 +305,7 @@ Same body as create. Response:
299
305
  }
300
306
  ```
301
307
 
302
- If `allowed` is `false`, do not create the extraction. It requires more credits
303
- than are currently available.
308
+ If `allowed` is `false`, do not create the extraction. The current balance does
309
+ not cover the estimate.
304
310
 
305
311
  For common mistakes and tool selection rules, see [mcp-tools.md](mcp-tools.md#common-mistakes).
@@ -1,6 +1,6 @@
1
- # Xquik MCP Server Setup
1
+ # Xquik MCP server setup
2
2
 
3
- Connect AI agents and IDEs to Xquik through Model Context Protocol. Add the
3
+ Connect MCP clients and IDEs to Xquik through Model Context Protocol. Add the
4
4
  remote URL and complete OAuth 2.1 in the browser. API-key fallback is
5
5
  client-specific. ChatGPT custom apps require OAuth and cannot present custom
6
6
  API keys.
@@ -11,7 +11,7 @@ API keys.
11
11
  | Endpoint | `https://xquik.com/mcp` |
12
12
  | Authentication | OAuth 2.1 discovery; API key fallback |
13
13
  | Hosted MCP version | `2.6.0` |
14
- | Skill bundle version | `2.6.4` |
14
+ | Skill bundle version | `2.6.7` |
15
15
 
16
16
  Current clients negotiate MCP `2026-07-28` through `server/discover`.
17
17
  Use a current MCP SDK. It adds request `_meta` and protocol headers.
@@ -25,10 +25,10 @@ Xquik publishes these discovery documents:
25
25
  - Protected resource metadata: `https://xquik.com/.well-known/oauth-protected-resource/mcp`
26
26
  - Authorization server metadata: `https://xquik.com/.well-known/oauth-authorization-server`
27
27
  - MCP registry card: `https://xquik.com/.well-known/mcp/server-card.json`
28
- - Agent-readable auth guide: `https://xquik.com/auth.md`
28
+ - Authentication guide: `https://xquik.com/auth.md`
29
29
 
30
- Xquik supports Client ID Metadata Documents (CIMD) and Dynamic Client
31
- Registration (DCR). Let each client use its documented registration flow. Both
30
+ Xquik supports Client ID Metadata Documents and Dynamic Client Registration.
31
+ Let each client use its documented registration flow. Both
32
32
  use Authorization Code with S256 PKCE and the `mcp:tools` scope.
33
33
 
34
34
  Use the [canonical client compatibility matrix](https://docs.xquik.com/mcp/overview#client-compatibility)
@@ -36,7 +36,7 @@ for current per-client support. Cline and Qwen Code support OAuth.
36
36
  Affected Goose releases need an environment-backed API key. Roo Code's archived final
37
37
  release is API-key-only. Pi has no native MCP client.
38
38
 
39
- > **Security:** Start OAuth from the MCP client. Do not open Xquik login routes
39
+ > Start OAuth from the MCP client. Do not open Xquik login routes
40
40
  > directly. Do not proxy Xquik credentials through local bridge packages or
41
41
  > command-line adapters. If OAuth is unavailable, keep API keys in the client's
42
42
  > secure secret store and never commit them.
@@ -84,13 +84,8 @@ tools only. Custom MCP apps are web-only.
84
84
 
85
85
  ### Codex CLI
86
86
 
87
- Current Codex releases affected by
88
- [openai/codex#31573](https://github.com/openai/codex/issues/31573) must use the
89
- environment-backed API-key configuration in **Codex Config** below. Do not run
90
- `codex mcp login xquik` while that configuration is active.
91
-
92
- After your Codex release includes the upstream issuer fix, remove
93
- `bearer_token_env_var`, then run:
87
+ Use Codex CLI 0.147.0 or later. These releases preserve and validate the RFC
88
+ 9207 `iss` callback value. Run:
94
89
 
95
90
  ```bash
96
91
  codex mcp add xquik --url https://xquik.com/mcp
@@ -98,22 +93,21 @@ codex mcp login xquik
98
93
  codex mcp list
99
94
  ```
100
95
 
101
- Affected releases discard the RFC 9207 `iss` callback value and fail before
102
- token exchange. If login reports
96
+ If an older release reports
103
97
  `Authorization server response missing required issuer: expected https://xquik.com`,
104
- Xquik already returns the required issuer. Follow the [Xquik troubleshooting guide](https://docs.xquik.com/guides/troubleshooting#codex-oauth-issuer-validation-error).
98
+ upgrade to 0.147.0 or later. If an upgrade is unavailable, use the API-key
99
+ fallback below. Xquik already returns the required issuer. Follow the
100
+ [Xquik troubleshooting guide](https://docs.xquik.com/guides/troubleshooting#codex-oauth-issuer-validation-error).
105
101
 
106
102
  ### Codex Desktop
107
103
 
108
- Current affected releases use the environment-backed API-key configuration
109
- below through the shared `config.toml`, then restart Codex Desktop. After your
110
- release includes the upstream fix, open **Settings > MCP servers**, add
111
- `https://xquik.com/mcp` as Streamable HTTP, select **Authenticate**, then
112
- restart.
104
+ Open **Settings > MCP servers**. Add `https://xquik.com/mcp` as Streamable HTTP,
105
+ select **Authenticate**, then restart. If the app bundles a Codex release older
106
+ than 0.147.0 and shows the issuer error above, use the shared `config.toml`
107
+ fallback below.
113
108
 
114
- ### Codex Config
109
+ ### API-key fallback for older Codex releases
115
110
 
116
- Current affected releases need an environment-backed API key instead of OAuth.
117
111
  Load `XQUIK_API_KEY` from your password manager or operating-system secret
118
112
  store. Do not type the key into a shell command, save it in shell history, or
119
113
  put it in `config.toml`.
@@ -129,9 +123,8 @@ bearer_token_env_var = "XQUIK_API_KEY"
129
123
  Restart Codex, then run `codex mcp list`. Do not run `codex mcp login xquik`
130
124
  while using the API-key configuration.
131
125
 
132
- After your Codex release includes the upstream fix, remove
133
- `bearer_token_env_var` so the entry contains only the MCP URL, then run
134
- `codex mcp login xquik`.
126
+ After upgrading to 0.147.0 or later, remove `bearer_token_env_var`. Leave only
127
+ the MCP URL, then run `codex mcp login xquik`.
135
128
 
136
129
  ### OpenAI Agents SDK
137
130
 
@@ -160,7 +153,7 @@ async def run_xquik(api_key: str) -> str:
160
153
  return str(result.final_output)
161
154
  ```
162
155
 
163
- ## Editors and Terminals
156
+ ## Editor and terminal clients
164
157
 
165
158
  ### Cursor
166
159
 
@@ -275,18 +268,19 @@ save. This interactive path works across Copilot CLI command variants.
275
268
  In an interactive Copilot CLI session, run `/mcp auth xquik`. Enterprise policy
276
269
  may block servers that are not on the organization allowlist.
277
270
 
278
- ## API-Key Fallback
271
+ ## API key fallback
279
272
 
280
273
  Use this only when the client cannot complete OAuth and documents a secure
281
274
  secret-input or environment-variable mechanism. ChatGPT custom apps cannot use
282
- this fallback. Codex uses the `bearer_token_env_var` configuration above.
283
- Client schemas and environment syntax differ, so do not copy a generic header
275
+ this fallback. Older Codex releases use the `bearer_token_env_var` configuration
276
+ above.
277
+ Client schemas and environment syntax differ, so do not copy one header
284
278
  object between clients or place a literal key in a configuration file.
285
279
 
286
280
  Full account keys expose 120 catalog routes. Of these, 119 support JSON or text.
287
281
  Active guest `paid_reads` keys expose 33 eligible GET routes.
288
282
 
289
- ## MCP Server Architecture
283
+ ## MCP server architecture
290
284
 
291
285
  Hosted MCP v2.6.0 exposes 120 catalog routes through 2 structured API tools.
292
286
  Of these, 119 support JSON or text. Binary support downloads use REST.
@@ -296,7 +290,7 @@ Of these, 119 support JSON or text. Binary support downloads use REST.
296
290
  | `explore` | Search the API endpoint catalog (read-only, no network calls) | Included |
297
291
  | `xquik` | Send confirmed Xquik API requests | Varies by endpoint |
298
292
 
299
- `explore` searches the credential-scoped catalog. `xquik` executes authenticated
293
+ `explore` searches the credential-scoped catalog. `xquik` sends authenticated
300
294
  operations with normalized snake_case responses. Authentication is injected, so
301
295
  tool code must never include credentials.
302
296
 
@@ -312,10 +306,10 @@ Private reads, writes, monitors, webhooks, persistent resources, and metered bul
312
306
  jobs require the user's explicit approval. Plan and credit changes stay
313
307
  dashboard-only.
314
308
 
315
- ## After Setup
309
+ ## After setup
316
310
 
317
311
  Use `explore` before unfamiliar operations. Use `xquik` only for the narrowest
318
- confirmed request.
312
+ approved request.
319
313
 
320
314
  | Workflow | Steps |
321
315
  |----------|-------|
@@ -328,7 +322,7 @@ confirmed request.
328
322
  Handle failures from structured error fields:
329
323
 
330
324
  - `401`: reconnect OAuth or replace the revoked API key.
331
- - `402`: report payment options. Never create checkout without confirmation.
325
+ - `402`: explain the account state and direct the user to the dashboard.
332
326
  - `409 coverage_cursor_unavailable`: wait the exact `Retry-After` seconds, then retry the same cursor once.
333
327
  - `410 coverage_cursor_gone`: no `Retry-After`; restart without a cursor and deduplicate by ID.
334
328
  - `429`: honor `Retry-After`.