x-developer 2.5.3 → 2.5.4

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 (57) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/README.md +6 -4
  5. package/context7.json +2 -0
  6. package/openclaw.plugin.json +1 -1
  7. package/package.json +1 -1
  8. package/scripts/release-guard/content-policy.mjs +9 -2
  9. package/server.json +20 -1
  10. package/skills/x-twitter-scraper/SKILL.md +4 -2
  11. package/skills/x-twitter-scraper/metadata.json +1 -1
  12. package/skills/x-twitter-scraper/references/mcp-setup.md +112 -59
  13. package/skills/x-twitter-scraper/references/mcp-tools.md +1 -1
  14. package/skills/x-twitter-scraper/skill-card.md +2 -2
  15. package/skills/x-twitter-scraper/skillspector-report.md +1 -1
  16. package/skills/xquik-social-research/SKILL.md +2 -0
  17. package/stub-server.mjs +1 -1
  18. package/task-guides/check-mutuals.md +1 -1
  19. package/task-guides/clean-followers.md +1 -1
  20. package/task-guides/export-tweets-csv.md +1 -1
  21. package/task-guides/extract-followers.md +1 -1
  22. package/task-guides/find-bangers.md +1 -1
  23. package/task-guides/find-influencers.md +1 -1
  24. package/task-guides/find-viral-tweets.md +1 -1
  25. package/task-guides/follow-unfollow.md +1 -1
  26. package/task-guides/for-you-feed.md +1 -1
  27. package/task-guides/going-viral.md +1 -1
  28. package/task-guides/grow-followers.md +1 -1
  29. package/task-guides/monitor-accounts.md +1 -1
  30. package/task-guides/optimize-tweets.md +1 -1
  31. package/task-guides/post-tweets.md +1 -1
  32. package/task-guides/run-giveaway.md +1 -1
  33. package/task-guides/search-tweets.md +1 -1
  34. package/task-guides/send-dms.md +1 -1
  35. package/task-guides/top-replies.md +1 -1
  36. package/task-guides/track-competitors.md +1 -1
  37. package/task-guides/track-hashtags.md +1 -1
  38. package/task-guides/track-mentions.md +1 -1
  39. package/task-guides/trending-news.md +1 -1
  40. package/task-guides/tweet-analytics.md +1 -1
  41. package/task-guides/tweet-ideas.md +1 -1
  42. package/task-guides/tweet-replies.md +1 -1
  43. package/task-guides/tweet-style.md +1 -1
  44. package/task-guides/tweet-webhooks.md +1 -1
  45. package/task-guides/update-x-profile.md +1 -1
  46. package/task-guides/user-tweets.md +1 -1
  47. package/task-guides/who-liked.md +1 -1
  48. package/task-guides/who-quoted.md +1 -1
  49. package/task-guides/who-retweeted.md +1 -1
  50. package/task-guides/write-threads.md +1 -1
  51. package/task-guides/write-tweets.md +1 -1
  52. package/task-guides/x-articles.md +1 -1
  53. package/task-guides/x-bookmarks.md +1 -1
  54. package/task-guides/x-communities.md +1 -1
  55. package/task-guides/x-lists.md +1 -1
  56. package/task-guides/x-spaces.md +1 -1
  57. package/task-guides/x-trends.md +1 -1
@@ -6,14 +6,14 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Xquik X Twitter scraper API skill for AI agents with 126 REST operations and 118 MCP operations through 2 tools. Not affiliated with X Corp.",
9
- "version": "2.5.3"
9
+ "version": "2.5.4"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "x-twitter-scraper",
14
14
  "source": "./",
15
15
  "description": "126 REST operations, 118 MCP operations through 2 tools, 23 extraction types, SDKs, webhooks, exports, and confirmation-gated writes. Not affiliated with X Corp.",
16
- "version": "2.5.3",
16
+ "version": "2.5.4",
17
17
  "author": {
18
18
  "name": "Xquik"
19
19
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "x-twitter-scraper",
3
- "version": "2.5.3",
3
+ "version": "2.5.4",
4
4
  "description": "Xquik agent skill & plugin bundle. Not affiliated with X Corp. Includes 126 REST operations, 118 MCP operations through 2 tools, SDKs, webhooks, exports & approved X workflows.",
5
5
  "author": {
6
6
  "name": "Xquik",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "x-twitter-scraper",
3
- "version": "2.5.3",
3
+ "version": "2.5.4",
4
4
  "description": "Xquik agent skill & plugin bundle. Not affiliated with X Corp. Includes 126 REST operations, 118 MCP operations through 2 tools, SDKs, webhooks, exports & approved X workflows.",
5
5
  "author": {
6
6
  "name": "Xquik",
package/README.md CHANGED
@@ -25,7 +25,9 @@ The npm package `x-developer` is this agent skill and plugin bundle. The separat
25
25
 
26
26
  Includes 126 REST API operations, HMAC webhooks, 23 extraction tools, SDK pointers, and confirmation-gated writes.
27
27
 
28
- MCP v2.5.3 exposes 118 MCP operations through 2 tools. Add `https://xquik.com/mcp` and complete OAuth 2.1 in the client. API keys remain a fallback. Eight credential or session-bound REST operations remain outside MCP: 3 account API-key operations, saved-payment top-up, account top-up redirect, and 3 guest-wallet credential operations.
28
+ MCP v2.5.4 exposes 118 MCP operations through 2 tools. Add `https://xquik.com/mcp`, then follow the [current client compatibility path](https://docs.xquik.com/mcp/overview#client-compatibility). OAuth-capable clients complete OAuth 2.1; API-key fallback is client-specific; ChatGPT custom apps require OAuth. Eight credential or session-bound REST operations remain outside MCP: 3 account API-key operations, saved-payment top-up, account top-up redirect, and 3 guest-wallet credential operations.
29
+
30
+ > **Codex OAuth compatibility:** Affected Codex releases discard the RFC 9207 `iss` callback value even though Xquik returns it. If Codex reports `Authorization server response missing required issuer: expected https://xquik.com`, use `XQUIK_API_KEY` through the Codex `bearer_token_env_var` setting. Follow the [Codex OAuth troubleshooting guide](https://docs.xquik.com/guides/troubleshooting#codex-oauth-issuer-validation-error) and track [openai/codex#31573](https://github.com/openai/codex/issues/31573).
29
31
 
30
32
  ## Why Teams Use Xquik
31
33
 
@@ -33,7 +35,7 @@ MCP v2.5.3 exposes 118 MCP operations through 2 tools. Add `https://xquik.com/mc
33
35
  - **Ship X data integrations faster** with endpoint routing for tweet search, user lookup, timelines, followers, replies, quotes, retweeters, favoriters, media, lists, communities, articles, trends, and Spaces.
34
36
  - **Build production apps, not just dataset runs** with REST APIs, typed SDKs, OpenAPI, MCP tools, cursor pagination, webhook delivery, and exports.
35
37
  - **Control large jobs before they run** with usage estimates for extractions, draws, monitors, webhooks, and other metered workflows.
36
- - **Keep agents safe around X content** with API-key-only auth, read-only defaults, untrusted-content delimiters, and explicit approval for private reads, writes, persistent resources, and bulk jobs.
38
+ - **Keep agents safe around X content** with OAuth-first MCP, scoped API-key access, read-only defaults, untrusted-content delimiters, and explicit approval for private reads, writes, persistent resources, and bulk jobs.
37
39
  - **Support enterprise-scale X data pipelines** with high-throughput read limits, bulk extraction jobs, exports, event replay, and webhook automation.
38
40
  - **Win high-intent search traffic** for Twitter scraper API, X scraper, X API alternative, tweet search API, Twitter follower export, social listening API, X monitoring, and X automation.
39
41
 
@@ -174,7 +176,7 @@ When installed, this skill gives your AI coding assistant deep knowledge of the
174
176
  - **Tweet composition**: Algorithm-optimized tweet composer with scoring
175
177
  - **Usage guardrails**: Check balance and estimate usage; dashboard handles plan and credit changes
176
178
  - **Support tickets**: Open and manage support tickets via API
177
- - **MCP server**: MCP v2.5.3 exposes 118 operations through 2 tools with OAuth 2.1 discovery
179
+ - **MCP server**: MCP v2.5.4 exposes 118 operations through 2 tools with OAuth 2.1 discovery
178
180
 
179
181
  ## Capabilities
180
182
 
@@ -252,7 +254,7 @@ x-twitter-scraper/
252
254
  │ ├── api-endpoints.md # REST API routing index
253
255
  │ ├── api-endpoints-*.md # Split endpoint sections for targeted agent loading
254
256
  │ ├── mcp-tools.md # MCP tool selection rules and workflow patterns
255
- │ ├── mcp-setup.md # MCP configs for 10 platforms (v2 + v1)
257
+ │ ├── mcp-setup.md # Current MCP client setup and compatibility
256
258
  │ ├── webhooks.md # Webhook setup & verification
257
259
  │ ├── extractions.md # 23 extraction tool types
258
260
  │ ├── types.md # TypeScript type routing index
package/context7.json CHANGED
@@ -24,6 +24,8 @@
24
24
  "rules": [
25
25
  "Use README.md for installation, comparison copy, SDK links, API coverage, and MCP setup.",
26
26
  "Use skills/x-twitter-scraper/SKILL.md as the primary agent operating guide.",
27
+ "Use https://docs.xquik.com/mcp/overview#client-compatibility as the canonical current MCP client matrix. Do not assume every client supports OAuth: Cline and Qwen Code support OAuth; affected Codex and Goose releases need environment-backed API keys; Roo Code's archived final release is API-key-only; Pi has no native MCP client.",
28
+ "If Codex reports Authorization server response missing required issuer: expected https://xquik.com, do not repeat OAuth. Affected Codex releases discard the RFC 9207 iss value even though Xquik returns it. Set XQUIK_API_KEY and bearer_token_env_var = \"XQUIK_API_KEY\" in Codex TOML, then use https://docs.xquik.com/guides/troubleshooting#codex-oauth-issuer-validation-error and track https://github.com/openai/codex/issues/31573.",
27
29
  "Use task-guides/*.md for task-specific workflows such as search, extraction, monitoring, webhooks, posting, and DMs.",
28
30
  "Use commands/*.md for slash-command examples.",
29
31
  "Keep implementation details public-safe; use Xquik API, read service, write service, or browser service wording."
@@ -2,7 +2,7 @@
2
2
  "id": "x-developer",
3
3
  "name": "X Developer API",
4
4
  "description": "Xquik X Twitter scraper API skill with 126 REST operations, 118 MCP operations through 2 tools, SDKs, webhooks, exports, and gated actions. Not affiliated with X Corp.",
5
- "version": "2.5.3",
5
+ "version": "2.5.4",
6
6
  "skills": ["./skills"],
7
7
  "providerAuthEnvVars": {
8
8
  "xquik": ["XQUIK_API_KEY"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "x-developer",
3
- "version": "2.5.3",
3
+ "version": "2.5.4",
4
4
  "description": "Xquik agent skill & plugin bundle for REST, MCP, webhooks, exports & confirmation-gated X workflows. Not affiliated with X Corp.",
5
5
  "author": {
6
6
  "name": "Xquik",
@@ -20,7 +20,7 @@ export const contentChecks = [
20
20
  required: [
21
21
  "126 REST API operations",
22
22
  "118 MCP operations through 2 tools",
23
- "MCP v2.5.3",
23
+ "MCP v2.5.4",
24
24
  "## Agent Safety And Account Boundary",
25
25
  "Plan and credit changes stay in the Xquik dashboard.",
26
26
  "The npm package `x-developer` is this agent skill and plugin bundle. The separate `x-twitter-scraper` package is the typed TypeScript SDK.",
@@ -128,6 +128,13 @@ export const contentChecks = [
128
128
  "OpenAI Agents SDK",
129
129
  "118 operations through 2 structured API tools",
130
130
  "118 of 126 documented REST operations",
131
+ "https://docs.xquik.com/mcp/overview#client-compatibility",
132
+ "gemini mcp add --transport http xquik https://xquik.com/mcp",
133
+ '"type": "http"',
134
+ '"url": "https://xquik.com/mcp"',
135
+ "copilot mcp add --transport http xquik https://xquik.com/mcp",
136
+ "Affected Goose releases need an environment-backed API key",
137
+ "Pi has no native MCP client",
131
138
  "| `explore` | Search the API endpoint catalog (read-only, no network calls) | Included |",
132
139
  ],
133
140
  forbidden: [
@@ -141,7 +148,7 @@ export const contentChecks = [
141
148
  "| `explore` | Search the API endpoint catalog (read-only, no network calls) | Included |",
142
149
  "Included usage flag from endpoint metadata",
143
150
  "Find all included-usage endpoints",
144
- "MCP v2.5.3 exposes 118 of 126 REST operations",
151
+ "MCP v2.5.4 exposes 118 of 126 REST operations",
145
152
  "Saved-payment top-ups",
146
153
  "Dashboard checkout redirects",
147
154
  ],
package/server.json CHANGED
@@ -8,7 +8,26 @@
8
8
  "source": "github"
9
9
  },
10
10
  "websiteUrl": "https://docs.xquik.com/mcp/overview",
11
- "version": "2.5.3",
11
+ "version": "2.5.4",
12
+ "icons": [
13
+ {
14
+ "src": "https://xquik.com/icons/mcp/xquik.png",
15
+ "mimeType": "image/png",
16
+ "sizes": ["48x48", "96x96"],
17
+ "theme": "light"
18
+ },
19
+ {
20
+ "src": "https://xquik.com/logo-square.png",
21
+ "mimeType": "image/png",
22
+ "sizes": ["48x48", "96x96"],
23
+ "theme": "light"
24
+ },
25
+ {
26
+ "src": "https://xquik.com/logo-dark-square-flat.svg",
27
+ "mimeType": "image/svg+xml",
28
+ "theme": "dark"
29
+ }
30
+ ],
12
31
  "remotes": [
13
32
  {
14
33
  "type": "streamable-http",
@@ -3,13 +3,13 @@ name: x-twitter-scraper
3
3
  description: "Use Xquik for X/Twitter REST, MCP, SDKs, search, exports, monitoring & approved publishing. Not affiliated with X Corp. Trigger for tweet search, user lookup, timelines, follower exports, media, webhooks, bulk extraction, giveaways, or MCP setup. Read-only by default. Require explicit approval for writes, private reads, monitors, webhooks & metered bulk jobs."
4
4
  allowed-tools: WebFetch
5
5
  argument-hint: "[Xquik task, target, or setup goal]"
6
- version: "2.5.3"
6
+ version: "2.5.4"
7
7
  author: Xquik <support@xquik.com>
8
8
  license: MIT
9
9
  compatibility: Requires internet access to call the first-party Xquik REST API.
10
10
  tags: [twitter, x, social-media, api-development, scraping]
11
11
  metadata:
12
- version: "2.5.3"
12
+ version: "2.5.4"
13
13
  author: Xquik
14
14
  compatibility: Requires internet access to call the first-party Xquik REST API.
15
15
  tags: [twitter, x, social-media, api-development, scraping]
@@ -337,6 +337,8 @@ See [api endpoints](references/api-endpoints.md), [draws](references/draws.md),
337
337
 
338
338
  The MCP endpoint is the `/mcp` route on the first-party Xquik host. Prefer OAuth 2.1 discovery. Use a scoped API key only when the client cannot complete OAuth.
339
339
 
340
+ Affected Codex releases discard the RFC 9207 `iss` callback value even though Xquik returns it. If Codex reports `Authorization server response missing required issuer: expected https://xquik.com`, use `XQUIK_API_KEY` through the Codex `bearer_token_env_var` setting. Follow the [Codex OAuth troubleshooting guide](https://docs.xquik.com/guides/troubleshooting#codex-oauth-issuer-validation-error) and track [openai/codex#31573](https://github.com/openai/codex/issues/31573).
341
+
340
342
  Available tools:
341
343
 
342
344
  - `explore`: inspect endpoint categories and schemas.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.5.3",
2
+ "version": "2.5.4",
3
3
  "organization": "Xquik",
4
4
  "homepage": "https://docs.xquik.com",
5
5
  "repository": "https://github.com/Xquik-dev/x-twitter-scraper",
@@ -1,15 +1,16 @@
1
1
  # Xquik MCP Server Setup
2
2
 
3
3
  Connect AI agents and IDEs to Xquik through Model Context Protocol. Add the
4
- remote URL and complete OAuth 2.1 in the browser. API keys remain available for
5
- clients that cannot complete OAuth.
4
+ remote URL and complete OAuth 2.1 in the browser. API-key fallback is
5
+ client-specific. ChatGPT custom apps require OAuth and cannot present custom
6
+ API keys.
6
7
 
7
8
  | Setting | Value |
8
9
  |---------|-------|
9
10
  | Protocol | Streamable HTTP |
10
11
  | Endpoint | `https://xquik.com/mcp` |
11
12
  | Authentication | OAuth 2.1 discovery; API key fallback |
12
- | Version | `2.5.3` |
13
+ | Version | `2.5.4` |
13
14
 
14
15
  Xquik publishes these discovery documents:
15
16
 
@@ -18,9 +19,14 @@ Xquik publishes these discovery documents:
18
19
  - MCP registry card: `https://xquik.com/.well-known/mcp.json`
19
20
  - Agent-readable auth guide: `https://xquik.com/auth.md`
20
21
 
21
- OAuth clients should prefer Client ID Metadata Documents (CIMD). Dynamic Client
22
- Registration (DCR) remains available as a compatibility fallback. Both use
23
- Authorization Code with S256 PKCE and the `mcp:tools` scope.
22
+ Xquik supports Client ID Metadata Documents (CIMD) and Dynamic Client
23
+ Registration (DCR). Let each client use its documented registration flow. Both
24
+ use Authorization Code with S256 PKCE and the `mcp:tools` scope.
25
+
26
+ Use the [canonical client compatibility matrix](https://docs.xquik.com/mcp/overview#client-compatibility)
27
+ for current per-client support. Cline and Qwen Code support OAuth. Affected
28
+ Affected Goose releases need an environment-backed API key, Roo Code's archived final
29
+ release is API-key-only, and Pi has no native MCP client.
24
30
 
25
31
  > **Security:** Start OAuth from the MCP client. Do not open Xquik login routes
26
32
  > directly. Do not proxy Xquik credentials through local bridge packages or
@@ -31,13 +37,16 @@ Authorization Code with S256 PKCE and the `mcp:tools` scope.
31
37
 
32
38
  ### Claude.ai
33
39
 
34
- 1. Open **Customize > Connectors**.
40
+ 1. Open [Claude Connectors](https://claude.ai/settings/connectors) or **Customize > Connectors**.
35
41
  2. Select **+**, then **Add custom connector**.
36
42
  3. Enter `https://xquik.com/mcp`.
37
- 4. Select **Connect** and approve Xquik access.
43
+ 4. Select **Add**.
44
+ 5. In a chat, select **+ > Connectors**, enable Xquik, then select **Connect** and approve access.
38
45
 
39
- Leave advanced client ID and client secret fields empty. Claude can use Xquik's
40
- CIMD or DCR registration path.
46
+ Leave advanced client ID and client secret fields empty. Free accounts can add
47
+ 1 custom connector. On Team and Enterprise plans, an Owner or Primary Owner
48
+ must first add the Web connector under **Organization settings > Connectors >
49
+ Add > Custom**. The feature is currently beta.
41
50
 
42
51
  ### Claude Desktop
43
52
 
@@ -56,61 +65,91 @@ Run `/mcp`, select `xquik`, then authenticate.
56
65
 
57
66
  ### ChatGPT
58
67
 
59
- 1. Open **Settings > Security and login**.
60
- 2. Enable **Developer mode**.
61
- 3. Open **Settings > Plugins** or `https://chatgpt.com/plugins`.
62
- 4. Select **+** and create a developer-mode app.
63
- 5. Enter `https://xquik.com/mcp` as the server URL.
64
- 6. Complete Xquik authorization.
68
+ 1. In ChatGPT on the web, open **Settings > Apps > Advanced settings** and enable **Developer mode**.
69
+ 2. Open **Settings > Apps > Create**. Workspace administrators may instead use **Workspace settings > Apps > Create**.
70
+ 3. Enter `https://xquik.com/mcp`, choose OAuth, then select **Scan tools**.
71
+ 4. Complete Xquik authorization and select **Create**.
65
72
 
66
- Do not paste an API key into the app definition.
73
+ ChatGPT cannot present a custom API key. Business and Enterprise/Edu
74
+ workspaces support full MCP, including write tools. Pro supports read and fetch
75
+ tools only. Custom MCP apps are web-only.
67
76
 
68
77
  ### Codex CLI
69
78
 
79
+ Current Codex releases affected by
80
+ [openai/codex#31573](https://github.com/openai/codex/issues/31573) must use the
81
+ environment-backed API-key configuration in **Codex Config** below. Do not run
82
+ `codex mcp login xquik` while that configuration is active.
83
+
84
+ After your Codex release includes the upstream issuer fix, remove
85
+ `bearer_token_env_var`, then run:
86
+
70
87
  ```bash
71
88
  codex mcp add xquik --url https://xquik.com/mcp
72
89
  codex mcp login xquik
73
90
  codex mcp list
74
91
  ```
75
92
 
93
+ Affected releases discard the RFC 9207 `iss` callback value and fail before
94
+ token exchange. If login reports
95
+ `Authorization server response missing required issuer: expected https://xquik.com`,
96
+ Xquik already returns the required issuer. Follow the [Xquik troubleshooting guide](https://docs.xquik.com/guides/troubleshooting#codex-oauth-issuer-validation-error).
97
+
76
98
  ### Codex Desktop
77
99
 
78
- 1. Open **Settings > MCP servers**.
79
- 2. Select **Add server**.
80
- 3. Choose **Streamable HTTP**.
81
- 4. Enter `https://xquik.com/mcp`.
82
- 5. Save, select **Authenticate**, then restart.
100
+ Current affected releases use the environment-backed API-key configuration
101
+ below through the shared `config.toml`, then restart Codex Desktop. After your
102
+ release includes the upstream fix, open **Settings > MCP servers**, add
103
+ `https://xquik.com/mcp` as Streamable HTTP, select **Authenticate**, then
104
+ restart.
83
105
 
84
106
  ### Codex Config
85
107
 
86
- Add to `~/.codex/config.toml`:
108
+ Current affected releases need an environment-backed API key instead of OAuth.
109
+ Load `XQUIK_API_KEY` from your password manager or operating-system secret
110
+ store. Do not type the key into a shell command, save it in shell history, or
111
+ put it in `config.toml`.
112
+
113
+ Use this `~/.codex/config.toml` entry:
87
114
 
88
115
  ```toml
89
116
  [mcp_servers.xquik]
90
117
  url = "https://xquik.com/mcp"
118
+ bearer_token_env_var = "XQUIK_API_KEY"
91
119
  ```
92
120
 
93
- Then run `codex mcp login xquik`.
121
+ Restart Codex, then run `codex mcp list`. Do not run `codex mcp login xquik`
122
+ while using the API-key configuration.
123
+
124
+ After your Codex release includes the upstream fix, remove
125
+ `bearer_token_env_var` so the entry contains only the MCP URL, then run
126
+ `codex mcp login xquik`.
94
127
 
95
128
  ### OpenAI Agents SDK
96
129
 
97
130
  Use the OpenAI Agents SDK for programmatic access. When the runtime cannot open
98
- OAuth, inject an API key from its secret store:
131
+ OAuth, pass an API key into the connection function from its secret store:
99
132
 
100
133
  ```python
134
+ from agents import Agent, Runner
101
135
  from agents.mcp import MCPServerStreamableHttp
102
136
 
103
- def load_secret(name: str) -> str:
104
- raise RuntimeError(f"Configure {name} in your secret store.")
105
-
106
- api_key = load_secret("XQUIK_API_KEY")
107
137
 
108
- async with MCPServerStreamableHttp(
109
- url="https://xquik.com/mcp",
110
- headers={"Authorization": f"Bearer {api_key}"},
111
- params={},
112
- ) as xquik:
113
- pass
138
+ async def run_xquik(api_key: str) -> str:
139
+ async with MCPServerStreamableHttp(
140
+ name="Xquik",
141
+ params={
142
+ "url": "https://xquik.com/mcp",
143
+ "headers": {"Authorization": f"Bearer {api_key}"},
144
+ },
145
+ ) as server:
146
+ agent = Agent(
147
+ name="Xquik agent",
148
+ instructions="Use Xquik to inspect the API catalog.",
149
+ mcp_servers=[server],
150
+ )
151
+ result = await Runner.run(agent, "List the endpoint categories.")
152
+ return str(result.final_output)
114
153
  ```
115
154
 
116
155
  ## Editors and Terminals
@@ -164,7 +203,8 @@ Add to `~/.codeium/windsurf/mcp_config.json`:
164
203
  ```
165
204
 
166
205
  Enable the server in **Windsurf Settings > Cascade > MCP Servers**, then
167
- complete OAuth.
206
+ complete OAuth. Enterprise users must enable MCP manually. Team policies may
207
+ disable MCP or restrict servers to an allowlist.
168
208
 
169
209
  ### OpenCode
170
210
 
@@ -190,44 +230,57 @@ opencode mcp list
190
230
 
191
231
  ### Gemini CLI
192
232
 
193
- Add to Gemini CLI settings:
233
+ Add the remote server:
234
+
235
+ ```bash
236
+ gemini mcp add --transport http xquik https://xquik.com/mcp
237
+ ```
238
+
239
+ Or add it to `~/.gemini/settings.json` for user scope or
240
+ `.gemini/settings.json` for project scope:
194
241
 
195
242
  ```json
196
243
  {
197
- "mcpServers": {
198
- "xquik": {
199
- "httpUrl": "https://xquik.com/mcp"
200
- }
201
- }
244
+ "mcpServers": {
245
+ "xquik": {
246
+ "type": "http",
247
+ "url": "https://xquik.com/mcp"
248
+ }
249
+ }
202
250
  }
203
251
  ```
204
252
 
205
- Run `/mcp auth xquik` to complete OAuth.
253
+ Older Gemini CLI builds also accept the legacy `httpUrl` field.
206
254
 
207
- ## API-Key Fallback
255
+ Run `/mcp auth xquik` to complete OAuth.
208
256
 
209
- Use this only when the client cannot complete OAuth and can store secrets
210
- securely:
257
+ ### GitHub Copilot CLI
211
258
 
212
- ```json
213
- {
214
- "mcpServers": {
215
- "xquik": {
216
- "url": "https://xquik.com/mcp",
217
- "headers": {
218
- "Authorization": "Bearer ${XQUIK_API_KEY}"
219
- }
220
- }
221
- }
222
- }
259
+ ```bash
260
+ copilot mcp add --transport http xquik https://xquik.com/mcp
223
261
  ```
224
262
 
263
+ If your installed CLI does not recognize those flags, start `copilot`, run
264
+ `/mcp add`, choose HTTP, name the server `xquik`, enter the endpoint above, and
265
+ save. This interactive path works across Copilot CLI command variants.
266
+
267
+ In an interactive Copilot CLI session, run `/mcp auth xquik`. Enterprise policy
268
+ may block servers that are not on the organization allowlist.
269
+
270
+ ## API-Key Fallback
271
+
272
+ Use this only when the client cannot complete OAuth and documents a secure
273
+ secret-input or environment-variable mechanism. ChatGPT custom apps cannot use
274
+ this fallback. Codex uses the `bearer_token_env_var` configuration above.
275
+ Client schemas and environment syntax differ, so do not copy a generic header
276
+ object between clients or place a literal key in a configuration file.
277
+
225
278
  Full account keys expose 118 operations. Active guest `paid_reads` keys expose
226
279
  33 eligible GET routes.
227
280
 
228
281
  ## MCP Server Architecture
229
282
 
230
- The MCP server (v2.5.3) at `https://xquik.com/mcp` exposes 118 operations through 2 structured API tools:
283
+ The MCP server (v2.5.4) at `https://xquik.com/mcp` exposes 118 operations through 2 structured API tools:
231
284
 
232
285
  | Tool | Description | Usage |
233
286
  |------|-------------|------|
@@ -238,7 +291,7 @@ The MCP server (v2.5.3) at `https://xquik.com/mcp` exposes 118 operations throug
238
291
  operations with normalized snake_case responses. Authentication is injected, so
239
292
  tool code must never include credentials.
240
293
 
241
- MCP v2.5.3 exposes 118 of 126 documented REST operations. These 8 credential or
294
+ MCP v2.5.4 exposes 118 of 126 documented REST operations. These 8 credential or
242
295
  session-bound operations remain direct REST or dashboard workflows:
243
296
 
244
297
  - API key creation, listing, and revocation
@@ -157,7 +157,7 @@ Use `POST /api/v1/extractions` ONLY for bulk data that simpler endpoints cannot
157
157
 
158
158
  ## REST-only operations
159
159
 
160
- MCP v2.5.3 exposes 118 of 126 REST operations. These 8 credential or session-bound operations remain outside MCP:
160
+ MCP v2.5.4 exposes 118 of 126 REST operations. These 8 credential or session-bound operations remain outside MCP:
161
161
 
162
162
  - API key creation
163
163
  - API key listing
@@ -53,7 +53,7 @@ Mitigation: Verify unfamiliar endpoint details against `https://docs.xquik.com`
53
53
  - NVIDIA signing guidance: `https://docs.nvidia.com/skills/signing-agent-skills`
54
54
  - NVIDIA skill card guidance: `https://docs.nvidia.com/skills/skill-cards`
55
55
  - NVIDIA release checklist: `https://docs.nvidia.com/skills/release-checklist`
56
- - Scan evidence: `skillspector-report.md` records a static SkillSpector v2.3.7 scan from 2026-07-10 with 0 findings. Refresh it after each `SKILL.md` change.
56
+ - Scan evidence: `skillspector-report.md` records a static SkillSpector v2.3.7 scan from 2026-07-16 with 0 findings. Refresh it after each skill directory change.
57
57
  - Signing evidence: pending `skill.oms.sig` for signed release artifacts.
58
58
  - Evaluation evidence: pending Tier-3 evaluation data and `BENCHMARK.md` for NVIDIA-Verified release.
59
59
 
@@ -69,7 +69,7 @@ Other properties: The skill performs no shell execution, no local file access, n
69
69
 
70
70
  ## Skill Version
71
71
 
72
- 2.5.3
72
+ 2.5.4
73
73
 
74
74
  ## Ethical Considerations
75
75
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Skill:** x-twitter-scraper
4
4
  **Source:** `skills/x-twitter-scraper`
5
- **Scanned:** 2026-07-10 18:54:50 UTC
5
+ **Scanned:** 2026-07-16 13:37:35 UTC
6
6
 
7
7
  ## Static Scan
8
8
 
@@ -57,6 +57,8 @@ Use Xquik MCP when an agent should inspect live endpoint metadata first.
57
57
 
58
58
  Connect through `https://xquik.com/mcp` using the documented remote setup.
59
59
 
60
+ If Codex reports `Authorization server response missing required issuer: expected https://xquik.com`, do not repeat OAuth. Affected Codex releases discard the RFC 9207 `iss` value even though Xquik returns it. Use `XQUIK_API_KEY` through the Codex `bearer_token_env_var` setting, then follow the [Codex OAuth troubleshooting guide](https://docs.xquik.com/guides/troubleshooting#codex-oauth-issuer-validation-error). Track the client fix in [openai/codex#31573](https://github.com/openai/codex/issues/31573).
61
+
60
62
  Prefer REST when writing application code, backend jobs, or data pipelines.
61
63
 
62
64
  ## Safety Gates
package/stub-server.mjs CHANGED
@@ -8,7 +8,7 @@ import { createInterface } from "node:readline";
8
8
 
9
9
  const SERVER_INFO = {
10
10
  name: "xquik",
11
- version: "2.5.3",
11
+ version: "2.5.4",
12
12
  };
13
13
 
14
14
  const CAPABILITIES = {
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env:
@@ -5,7 +5,7 @@ license: MIT
5
5
  metadata:
6
6
  internal: true
7
7
  author: Xquik
8
- version: "2.5.3"
8
+ version: "2.5.4"
9
9
  openclaw:
10
10
  requires:
11
11
  env: