twitterapi-io-mcp 1.5.0 → 1.5.6

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 (3) hide show
  1. package/CHANGELOG.md +555 -0
  2. package/data/docs.json +229 -16
  3. package/package.json +2 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,555 @@
1
+ ## [1.5.6](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.5.5...v1.5.6) (2026-04-14)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **ci:** remove npm audit from prepublishOnly (transitive CVEs block publish) ([cd9945d](https://github.com/dorukardahan/twitterapi-io-mcp/commit/cd9945d09a7e9c5ac398de031e1bf3d639980f3e))
7
+
8
+ ## [1.5.5](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.5.4...v1.5.5) (2026-04-14)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **ci:** remove broken npm upgrade step on Node 22.22.2 toolcache ([fdc39f9](https://github.com/dorukardahan/twitterapi-io-mcp/commit/fdc39f954719b1bfa636f37e5ba421c0715cea41))
14
+
15
+ ## [1.5.4](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.5.3...v1.5.4) (2026-04-14)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * **ci:** use npm@latest instead of npm@11 to avoid MODULE_NOT_FOUND promise-retry ([1ce75ce](https://github.com/dorukardahan/twitterapi-io-mcp/commit/1ce75cefcbaf7a30fe4baa25872654f989bf6732))
21
+
22
+ ## [1.5.3](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.5.2...v1.5.3) (2026-04-14)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * recommend since_time/until_time over since/until in advanced_search ([3ec2d5a](https://github.com/dorukardahan/twitterapi-io-mcp/commit/3ec2d5a268f8d54711d1ae8550ff2669ca40592c))
28
+
29
+ ## [1.5.2](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.5.1...v1.5.2) (2026-04-13)
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * tighten release hygiene ([96c5826](https://github.com/dorukardahan/twitterapi-io-mcp/commit/96c5826c937fa77cb1a42c6f2d76c4e65e33f505))
35
+
36
+ ## 1.5.2
37
+
38
+ - fix: add audit to prepublishOnly and include CHANGELOG.md in package files
39
+ - fix: relax CI npm upgrade from pinned npm@11.6.0 to npm@11
40
+
41
+ ## [1.5.1](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.5.0...v1.5.1) (2026-04-11)
42
+
43
+
44
+ ### Bug Fixes
45
+
46
+ * add missing body/parameters docs for 9 endpoints ([a38ab91](https://github.com/dorukardahan/twitterapi-io-mcp/commit/a38ab9133e8f282d82573cd87b8b4b8b4903210e))
47
+
48
+ # [1.5.0](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.4.1...v1.5.0) (2026-04-10)
49
+
50
+
51
+ ### Features
52
+
53
+ * add 9 active openapi endpoints ([7cd9646](https://github.com/dorukardahan/twitterapi-io-mcp/commit/7cd964644e05fe0fd4ea1c3d01ef7de951ce98c0))
54
+
55
+ ## [1.4.1](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.4.0...v1.4.1) (2026-03-21)
56
+
57
+
58
+ ### Bug Fixes
59
+
60
+ * remove offline V3 endpoints ([1741ede](https://github.com/dorukardahan/twitterapi-io-mcp/commit/1741edea7dca70f6538eb4fe850a3b5b014443b2))
61
+
62
+ # [1.4.0](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.3.2...v1.4.0) (2026-03-20)
63
+
64
+
65
+ ### Features
66
+
67
+ * remove 7 offline endpoints from docs.json (58 total) ([215dea6](https://github.com/dorukardahan/twitterapi-io-mcp/commit/215dea6e78eb143e90903ace90cc09fd19e15c69))
68
+
69
+ ## [1.3.2](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.3.1...v1.3.2) (2026-03-17)
70
+
71
+
72
+ ### Bug Fixes
73
+
74
+ * add missing params for delete_community, update_rule, delete_rule in docs.json ([9988259](https://github.com/dorukardahan/twitterapi-io-mcp/commit/9988259565558fb7cb9925f7f7b107d7ad55f526))
75
+
76
+ ## [1.3.1](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.3.0...v1.3.1) (2026-03-17)
77
+
78
+
79
+ ### Bug Fixes
80
+
81
+ * correct avatar/banner to multipart/form-data upload, add update_profile params and bug note ([4284789](https://github.com/dorukardahan/twitterapi-io-mcp/commit/4284789b87348ea9079594c113d9d706e5ac2fb2))
82
+
83
+ # [1.3.0](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.2.0...v1.3.0) (2026-03-17)
84
+
85
+
86
+ ### Features
87
+
88
+ * add 4 missing endpoints to docs.json, update README count to 58 ([6b0b9a9](https://github.com/dorukardahan/twitterapi-io-mcp/commit/6b0b9a909f4b07f9321cdc40b71e59f202f6a318))
89
+
90
+ # [1.2.0](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.1.8...v1.2.0) (2026-03-16)
91
+
92
+
93
+ ### Features
94
+
95
+ * rewrite scraper to OpenAPI-first approach (v3.0) ([19a7992](https://github.com/dorukardahan/twitterapi-io-mcp/commit/19a7992c8602a67557dae7cd000470bc3f2b6c8f))
96
+
97
+ ## [1.1.8](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.1.7...v1.1.8) (2026-03-15)
98
+
99
+
100
+ ### Bug Fixes
101
+
102
+ * correct package version to 1.1.7 and update npm README ([0a6e2e6](https://github.com/dorukardahan/twitterapi-io-mcp/commit/0a6e2e644a2def3a451afe470e863c57a298b090))
103
+
104
+ # 1.0.0 (2026-03-15)
105
+
106
+
107
+ ### Bug Fixes
108
+
109
+ * add CI/CD notes to CLAUDE.md for token expiry awareness ([d945b99](https://github.com/dorukardahan/twitterapi-io-mcp/commit/d945b99250bad0dd65b003b3850741a3ec0ebb38))
110
+ * add npm upgrade step for automation token compatibility ([6b8e926](https://github.com/dorukardahan/twitterapi-io-mcp/commit/6b8e92602ce1d23c233522523acf9610f8e29809))
111
+ * run MCP registry publish after npm publish to avoid 404 race condition ([85cb9ee](https://github.com/dorukardahan/twitterapi-io-mcp/commit/85cb9ee00deeb85f47eaaf8fa63c8c4bcf8e62cd))
112
+ * unified release pipeline — semantic-release handles npm + registry + GitHub release ([da9e0e1](https://github.com/dorukardahan/twitterapi-io-mcp/commit/da9e0e15f133f4189a87915065e0c1687bb2f7da))
113
+ * update dependencies to resolve security vulnerabilities ([0280f4a](https://github.com/dorukardahan/twitterapi-io-mcp/commit/0280f4a96dc420f7683c14a7e4aa0fac2ccbb7ae))
114
+ * update npm package README with correct endpoint table and version info ([f4eb7ea](https://github.com/dorukardahan/twitterapi-io-mcp/commit/f4eb7ea683cfceab4088dc2bb4a8bd742014a412))
115
+ * update server.json version to 1.1.0 for MCP registry publish ([372fdab](https://github.com/dorukardahan/twitterapi-io-mcp/commit/372fdabda7974b93fd28bbfee56e33e3b7104ed2))
116
+ * use NPM_TOKEN for npm publish instead of OIDC (2FA-protected account) ([3e9573f](https://github.com/dorukardahan/twitterapi-io-mcp/commit/3e9573f06401f70122b3e187b82148f680f96921))
117
+
118
+
119
+ ### Features
120
+
121
+ * add semantic-release for automated versioning and publishing ([5c07067](https://github.com/dorukardahan/twitterapi-io-mcp/commit/5c07067649ffff3c362d7f39ffe0bdb57d7431bd))
122
+ * add Twitter platform advisory for search operator degradation (v1.0.23) ([0c99ab2](https://github.com/dorukardahan/twitterapi-io-mcp/commit/0c99ab209a195f1f4d5b31d5426f8935c65f4ba2))
123
+ * sync endpoints with live API docs — add 2 new, remove 7 deprecated ([838d453](https://github.com/dorukardahan/twitterapi-io-mcp/commit/838d4533044e032170a06a8cc112bd61839f45e8))
124
+
125
+ # 1.0.0 (2026-03-15)
126
+
127
+
128
+ ### Bug Fixes
129
+
130
+ * add CI/CD notes to CLAUDE.md for token expiry awareness ([d945b99](https://github.com/dorukardahan/twitterapi-io-mcp/commit/d945b99250bad0dd65b003b3850741a3ec0ebb38))
131
+ * add npm upgrade step for automation token compatibility ([6b8e926](https://github.com/dorukardahan/twitterapi-io-mcp/commit/6b8e92602ce1d23c233522523acf9610f8e29809))
132
+ * run MCP registry publish after npm publish to avoid 404 race condition ([85cb9ee](https://github.com/dorukardahan/twitterapi-io-mcp/commit/85cb9ee00deeb85f47eaaf8fa63c8c4bcf8e62cd))
133
+ * unified release pipeline — semantic-release handles npm + registry + GitHub release ([da9e0e1](https://github.com/dorukardahan/twitterapi-io-mcp/commit/da9e0e15f133f4189a87915065e0c1687bb2f7da))
134
+ * update dependencies to resolve security vulnerabilities ([0280f4a](https://github.com/dorukardahan/twitterapi-io-mcp/commit/0280f4a96dc420f7683c14a7e4aa0fac2ccbb7ae))
135
+ * update server.json version to 1.1.0 for MCP registry publish ([372fdab](https://github.com/dorukardahan/twitterapi-io-mcp/commit/372fdabda7974b93fd28bbfee56e33e3b7104ed2))
136
+ * use NPM_TOKEN for npm publish instead of OIDC (2FA-protected account) ([3e9573f](https://github.com/dorukardahan/twitterapi-io-mcp/commit/3e9573f06401f70122b3e187b82148f680f96921))
137
+
138
+
139
+ ### Features
140
+
141
+ * add semantic-release for automated versioning and publishing ([5c07067](https://github.com/dorukardahan/twitterapi-io-mcp/commit/5c07067649ffff3c362d7f39ffe0bdb57d7431bd))
142
+ * add Twitter platform advisory for search operator degradation (v1.0.23) ([0c99ab2](https://github.com/dorukardahan/twitterapi-io-mcp/commit/0c99ab209a195f1f4d5b31d5426f8935c65f4ba2))
143
+ * sync endpoints with live API docs — add 2 new, remove 7 deprecated ([838d453](https://github.com/dorukardahan/twitterapi-io-mcp/commit/838d4533044e032170a06a8cc112bd61839f45e8))
144
+
145
+ # 1.0.0 (2026-03-15)
146
+
147
+
148
+ ### Bug Fixes
149
+
150
+ * add CI/CD notes to CLAUDE.md for token expiry awareness ([d945b99](https://github.com/dorukardahan/twitterapi-io-mcp/commit/d945b99250bad0dd65b003b3850741a3ec0ebb38))
151
+ * add npm upgrade step for automation token compatibility ([6b8e926](https://github.com/dorukardahan/twitterapi-io-mcp/commit/6b8e92602ce1d23c233522523acf9610f8e29809))
152
+ * run MCP registry publish after npm publish to avoid 404 race condition ([85cb9ee](https://github.com/dorukardahan/twitterapi-io-mcp/commit/85cb9ee00deeb85f47eaaf8fa63c8c4bcf8e62cd))
153
+ * unified release pipeline — semantic-release handles npm + registry + GitHub release ([da9e0e1](https://github.com/dorukardahan/twitterapi-io-mcp/commit/da9e0e15f133f4189a87915065e0c1687bb2f7da))
154
+ * update dependencies to resolve security vulnerabilities ([0280f4a](https://github.com/dorukardahan/twitterapi-io-mcp/commit/0280f4a96dc420f7683c14a7e4aa0fac2ccbb7ae))
155
+ * update server.json version to 1.1.0 for MCP registry publish ([372fdab](https://github.com/dorukardahan/twitterapi-io-mcp/commit/372fdabda7974b93fd28bbfee56e33e3b7104ed2))
156
+ * use NPM_TOKEN for npm publish instead of OIDC (2FA-protected account) ([3e9573f](https://github.com/dorukardahan/twitterapi-io-mcp/commit/3e9573f06401f70122b3e187b82148f680f96921))
157
+
158
+
159
+ ### Features
160
+
161
+ * add semantic-release for automated versioning and publishing ([5c07067](https://github.com/dorukardahan/twitterapi-io-mcp/commit/5c07067649ffff3c362d7f39ffe0bdb57d7431bd))
162
+ * add Twitter platform advisory for search operator degradation (v1.0.23) ([0c99ab2](https://github.com/dorukardahan/twitterapi-io-mcp/commit/0c99ab209a195f1f4d5b31d5426f8935c65f4ba2))
163
+ * sync endpoints with live API docs — add 2 new, remove 7 deprecated ([838d453](https://github.com/dorukardahan/twitterapi-io-mcp/commit/838d4533044e032170a06a8cc112bd61839f45e8))
164
+
165
+ ## [1.1.6](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.1.5...v1.1.6) (2026-03-14)
166
+
167
+
168
+ ### Bug Fixes
169
+
170
+ * run MCP registry publish after npm publish to avoid 404 race condition ([d043d29](https://github.com/dorukardahan/twitterapi-io-mcp/commit/d043d29097dd72147a3fce573ba3540d7d1d1a51))
171
+
172
+ ## [1.1.5](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.1.4...v1.1.5) (2026-03-14)
173
+
174
+
175
+ ### Bug Fixes
176
+
177
+ * add CI/CD notes to CLAUDE.md for token expiry awareness ([8ddc15d](https://github.com/dorukardahan/twitterapi-io-mcp/commit/8ddc15d62386203460d3b57bb87de3ee7831f3cf))
178
+
179
+ ## [1.1.4](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.1.3...v1.1.4) (2026-03-14)
180
+
181
+
182
+ ### Bug Fixes
183
+
184
+ * add npm upgrade step for automation token compatibility ([12b3eed](https://github.com/dorukardahan/twitterapi-io-mcp/commit/12b3eede2e4ad39601ffb870a022278e2f8870ea))
185
+
186
+ ## [1.1.3](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.1.2...v1.1.3) (2026-03-14)
187
+
188
+
189
+ ### Bug Fixes
190
+
191
+ * use NPM_TOKEN for npm publish instead of OIDC (2FA-protected account) ([89c549b](https://github.com/dorukardahan/twitterapi-io-mcp/commit/89c549bb40939a87548a7c1bb3d41efef0f7e7d6))
192
+
193
+ ## [1.1.2](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.1.1...v1.1.2) (2026-03-14)
194
+
195
+
196
+ ### Bug Fixes
197
+
198
+ * unified release pipeline — semantic-release handles npm + registry + GitHub release ([5f272c7](https://github.com/dorukardahan/twitterapi-io-mcp/commit/5f272c7a4896e65fbee7abe578460d1f59862648))
199
+
200
+ ## [1.1.1](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.1.0...v1.1.1) (2026-03-14)
201
+
202
+
203
+ ### Bug Fixes
204
+
205
+ * update server.json version to 1.1.0 for MCP registry publish ([60008cc](https://github.com/dorukardahan/twitterapi-io-mcp/commit/60008cc994565b1c7a985d8ec6d6e2afea644c9a))
206
+
207
+ # [1.1.0](https://github.com/dorukardahan/twitterapi-io-mcp/compare/v1.0.22...v1.1.0) (2026-03-14)
208
+
209
+
210
+ ### Bug Fixes
211
+
212
+ * handle 409 Conflict in MCP Registry publish (idempotent re-releases) ([476b270](https://github.com/dorukardahan/twitterapi-io-mcp/commit/476b270ce89e0256b1cc67cbdec5666556b198ec))
213
+ * update dependencies to resolve security vulnerabilities ([d61013e](https://github.com/dorukardahan/twitterapi-io-mcp/commit/d61013ea4845f0441a0f902059eed839d3bca3dd))
214
+
215
+
216
+ ### Features
217
+
218
+ * add semantic-release for automated versioning and publishing ([f9aa0d4](https://github.com/dorukardahan/twitterapi-io-mcp/commit/f9aa0d4c5b4eccc0bf1b29cf96754baad1617dc5))
219
+ * add Twitter platform advisory for search operator degradation (v1.0.23) ([7c2b784](https://github.com/dorukardahan/twitterapi-io-mcp/commit/7c2b784071f10d700fe2823a05f34ec0d6da79a1))
220
+ * sync endpoints with live API docs — add 2 new, remove 7 deprecated ([b9d0d37](https://github.com/dorukardahan/twitterapi-io-mcp/commit/b9d0d370a9290e723317e09b10b43f4bbb7f3980))
221
+
222
+ # Changelog
223
+
224
+ All notable changes to this project will be documented in this file.
225
+
226
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
227
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
228
+
229
+ ## [1.0.24] - 2026-03-14
230
+
231
+ ### Added
232
+ - `list_timeline` - Get List Tweet TimeLine
233
+ - `get_user_timeline` - Get User TimeLine
234
+
235
+ ### Removed
236
+ - 6 deprecated V1 endpoints: `create_tweet`, `like_tweet`, `retweet_tweet`, `login_by_email_or_username`, `login_by_2fa`, `upload_tweet_image`
237
+ - `get_dm_history_by_user_id` removed from live docs
238
+
239
+ ### Changed
240
+ - Total endpoints: 59 → 54
241
+
242
+ ### Fixed
243
+ - Security: updated hono 4.11.9 → 4.12.8 (5 CVEs), @hono/node-server → 1.19.11, ajv → 8.18.0, express-rate-limit → 8.3.1
244
+
245
+ ### Infrastructure
246
+ - Added semantic-release for automated versioning, changelog, and GitHub releases
247
+ - Added `.releaserc.json` configuration
248
+ - Added `.github/workflows/release.yml` — triggers on push to main
249
+
250
+ ## [1.0.23] - 2026-03-08
251
+
252
+ ### Added
253
+ - Platform advisory document: `docs/platform-advisory-2026-03.md`
254
+ - Twitter disabled `since:` / `until:` search operators (~Mar 5, 2026)
255
+ - Search pagination broken (returns same page repeatedly)
256
+ - Documented working workaround: `since_time:UNIX` / `until_time:UNIX` format
257
+ - Documented `within_time:Nh` relative time filter
258
+ - Webhook URL not auto-restored after API key rotation warning
259
+ - Timeline of events (Mar 3-8, 2026)
260
+
261
+ ## [1.0.22] - 2026-02-21
262
+
263
+ ### Added
264
+ - 7 new endpoints (52 → 59 total):
265
+ - `get_space_detail` — Twitter Spaces detail
266
+ - `get_tweet_replies_v2` — Tweet replies V2 with sort options (Relevance/Latest/Likes)
267
+ - `get_user_about` — User profile about section
268
+ - `get_user_to_monitor_tweet` — List monitored users
269
+ - `update_avatar_v2` — Update profile avatar
270
+ - `update_banner_v2` — Update profile banner
271
+ - `update_profile_v2` — Update profile info
272
+
273
+ ### Changed
274
+ - Fresh rescrape from docs.twitterapi.io (Feb 21, 2026)
275
+ - All 59 endpoints now match official llms.txt index
276
+
277
+ ## [1.0.19] - 2026-02-09
278
+
279
+ ### Fixed
280
+ - All 56 endpoints now have explicit HTTP method field (was missing for most)
281
+ - Search tool crash on object-format parameters (`normalizeParams()`)
282
+ - Parameter display in `get_twitterapi_endpoint` for both array and object formats
283
+ - Scraper post-processing: method, body params, and query params now auto-extracted from curl/raw_text
284
+
285
+ ### Added
286
+ - Body parameters for all 26 write endpoints (POST/PATCH/DELETE)
287
+ - Query parameters for 27 GET endpoints
288
+ - Deprecation notices for 4 legacy v1 endpoints (create_tweet, like_tweet, login_by_2fa, login_by_email_or_username)
289
+ - `get_trends` endpoint parameters (woeid, count)
290
+ - Post-processing step in scraper for automatic method/body/params extraction
291
+
292
+ ### Changed
293
+ - Fresh rescrape of all 56 endpoints, 32 pages, 24 blog posts from docs.twitterapi.io
294
+ - `upload_media_v2` correctly documented as multipart/form-data (not JSON)
295
+
296
+ ## [1.0.18] - 2026-02-02
297
+
298
+ ### Fixed
299
+ - Legacy wrapper CI publish step now includes NPM_TOKEN fallback for token-based authentication
300
+
301
+ ### Added
302
+ - Comprehensive 5-client migration guide in legacy wrapper README (Claude Code, Claude Desktop, Cursor, VS Code, Windsurf)
303
+ - Deprecated legacy wrapper entry in `server.json` packages array
304
+ - Linux config path for Claude Desktop in legacy wrapper README
305
+ - "Previously published as twitterapi-docs-mcp" note in root README
306
+
307
+ ### Changed
308
+ - **README full rewrite**: New structure matching top MCP server best practices
309
+ - Added installation blocks for Cursor, VS Code, and Windsurf (was only Claude Code + Claude Desktop)
310
+ - Added "Best for" column to Available Tools table
311
+ - Added "What can you ask?" section with real prompt examples and expected tool triggers
312
+ - Wrapped 59-endpoint category table in collapsible `<details>` to reduce scroll
313
+ - Added Troubleshooting / FAQ section (npx issues, Node version, missing tools)
314
+ - Merged "Technical Details" into "How it works" section
315
+ - Removed excessive horizontal rules (12 down to 0)
316
+ - Humanized "Why I built this" section with more personality
317
+ - Added Docker installation option
318
+
319
+ ### Added
320
+ - Smithery badge and GitHub stars badge
321
+ - `llms.txt` file for LLM discoverability (not included in npm package)
322
+ - 7 new npm keywords: `mcp-server`, `claude-desktop`, `tweet-search`, `social-media-api`, `twitter-data`, `cursor-mcp`, `windsurf-mcp`
323
+
324
+ ### Removed
325
+ - Node.js badge from README header (info moved to "How it works" table)
326
+ - MCP Registry badge (replaced with Smithery badge)
327
+
328
+ ---
329
+
330
+ ## [1.0.17] - 2026-02-02
331
+
332
+ ### Fixed
333
+ - **Critical**: `getEndpointMethod()` now checks `endpoint.type` field in addition to `endpoint.method` - fixes PATCH/DELETE methods being misreported as GET for `update_avatar_v2`, `update_banner_v2`, `update_profile_v2`
334
+ - **Critical**: `get_twitterapi_auth` tool handler had undefined variable references (`header`, `baseUrl`, `dashboardUrl`) causing runtime errors - now correctly references `auth.header`, `auth.baseUrl`, `auth.dashboardUrl`
335
+ - Added `method` field to v1.0.15 endpoints that only had `type` field
336
+
337
+ ### Added
338
+ - Support team guidance for `user_login_v2`: `totp_secret` must be a 16-character string (not numbers) for reliable cookie generation
339
+ - Troubleshooting note for `create_tweet_v2`: 400 errors commonly caused by faulty cookies from incorrect `totp_secret`
340
+ - Missing cURL examples for `update_avatar_v2`, `update_banner_v2`, `update_profile_v2`, `get_tweet_replies_v2`, `get_user_to_monitor_tweet`
341
+
342
+ ### Changed
343
+ - `formatEndpointMarkdown()` also updated to check `endpoint.type` for correct method display
344
+
345
+ ---
346
+
347
+ ## [1.0.16] - 2026-01-26
348
+
349
+ ### Improved
350
+ - Complete README restructure for better readability
351
+ - Added TL;DR and quick install command at top
352
+ - Added "For AI Assistants" section with tool usage guide
353
+ - Added architecture diagram
354
+ - Fixed GitHub homepage URL (was pointing to deprecated package)
355
+
356
+ ### SEO
357
+ - Added GitHub topics: `offline-docs`, `twitter-api`, `api-reference`
358
+ - Added npm keywords: `twitter-api`, `x-api`, `claude-mcp`, `twitter-docs`
359
+
360
+ ---
361
+
362
+ ## [1.0.15] - 2026-01-26
363
+
364
+ ### Added
365
+ - 5 new endpoints: `update_avatar_v2`, `update_banner_v2`, `update_profile_v2`, `get_tweet_replies_v2`, `get_user_to_monitor_tweet`
366
+ - Deprecation notices for legacy endpoints (visible in endpoint data)
367
+
368
+ ### Changed
369
+ - Total endpoints: 54 → 59
370
+ - Legacy endpoints (`login_by_2fa`, `login_by_email_or_username`, `create_tweet`, `like_tweet`, `retweet_tweet`, `upload_tweet_image`) now include deprecation notices pointing to v2 alternatives
371
+
372
+ ---
373
+
374
+ ## [1.0.14] - 2026-01-26
375
+
376
+ ### Security
377
+ - Upgraded `@modelcontextprotocol/sdk` from 1.24.3 to 1.25.3 (fixes ReDoS vulnerability GHSA-8r9q-7v3j-jr4g)
378
+ - Upgraded `qs` from 6.14.0 to 6.14.1 (fixes arrayLimit bypass DoS GHSA-6rw7-vpxm-498p)
379
+
380
+ ---
381
+
382
+ ## [1.0.10] - 2025-12-26
383
+
384
+ ### Added
385
+ - Auth metadata attached to `get_twitterapi_endpoint` outputs (`auth.header`, `auth.base_url`, etc.)
386
+ - Context7/README quick recipes for changelog, tweets lookup, auth, URL fallback, and search refine
387
+
388
+ ### Changed
389
+ - Expanded disambiguation + retry guidance for `search_twitterapi_docs`
390
+ - Clarified canonical `get_twitterapi_guide` usage for “Changelogs”
391
+
392
+ ---
393
+
394
+ ## [1.0.9] - 2025-12-14
395
+
396
+ ### Added
397
+ - New canonical npm package: `twitterapi-io-mcp`
398
+ - Legacy wrapper package: `packages/twitterapi-docs-mcp/` (keeps `twitterapi-docs-mcp` working)
399
+ - Optional `NPM_TOKEN` bootstrap path in publish workflow for first-time publish of `twitterapi-io-mcp`
400
+
401
+ ### Changed
402
+ - MCP Registry manifest now points to `twitterapi-io-mcp` (`server.json`)
403
+ - README + contributor docs updated to recommend `twitterapi-io-mcp`
404
+ - Publish workflow now uses Node 22 + `npm@11.6.0` for stable OIDC trusted publishing
405
+
406
+ ---
407
+
408
+ ## [1.0.8] - 2025-12-13
409
+
410
+ ### Added
411
+ - Blog key support in `get_twitterapi_url` (e.g., `blog_pricing_2025`)
412
+ - URL conveniences in `get_twitterapi_url`: accepts `http://` and `www.twitterapi.io` and normalizes to HTTPS
413
+ - Manual trigger (`workflow_dispatch`) for the npm publish workflow
414
+
415
+ ### Changed
416
+ - npm publish workflow now uses provenance attestation (`npm publish --provenance`)
417
+
418
+ ---
419
+
420
+ ## [1.0.7] - 2025-12-13
421
+
422
+ ### Added
423
+ - SEO-focused keywords for discoverability (`twitterapi.io`, `twitterapi-io-mcp`)
424
+
425
+ ### Changed
426
+ - GitHub repo renamed to `dorukardahan/twitterapi-io-mcp` (old URLs redirect)
427
+ - Updated repository links across docs and metadata
428
+ - `context7.json` now targets `https://context7.com/dorukardahan/twitterapi-io-mcp`
429
+ - MCP Registry identifier updated to `io.github.dorukardahan/twitterapi-io-mcp`
430
+
431
+ ---
432
+
433
+ ## [1.0.6] - 2025-12-13
434
+
435
+ ### Added
436
+ - Internal link crawling in `scrape-all.cjs` to capture non-sitemap pages (e.g., `terms`, `acceptable_use`, `dashboard`)
437
+ - URL conveniences in `get_twitterapi_url`: accepts page keys (e.g., `qps_limits`) and bare paths (e.g., `pricing`)
438
+ - Offline aliases for common docs redirects (`https://docs.twitterapi.io/`, `/api-reference`)
439
+
440
+ ### Changed
441
+ - Improved HTML extraction in the scraper to handle nested tags more reliably
442
+ - Updated bundled snapshot (`data/docs.json`) to include more site pages and blog posts
443
+
444
+ ### Fixed
445
+ - Scraper now fails fast on HTTP 4xx/5xx instead of saving error pages
446
+
447
+ ---
448
+
449
+ ## [1.0.5] - 2025-12-13
450
+
451
+ ### Added
452
+ - `context7.json` for Context7 library ownership claim
453
+ - `get_twitterapi_url` tool to fetch any `twitterapi.io` / `docs.twitterapi.io` URL (snapshot-first, optional live fetch)
454
+ - Expanded snapshot coverage via `sitemap.xml` + blog index crawl (site pages + more blog posts)
455
+ - Additional resource aliases (`twitterapi://endpoints/list`, `twitterapi://status/freshness`)
456
+ - MCP protocol integration test to prevent `outputSchema` regressions
457
+
458
+ ### Fixed
459
+ - MCP SDK compatibility: tools now return `structuredContent` when `outputSchema` is declared
460
+ - Scraper redirect handling for relative `Location` headers
461
+
462
+ ### Changed
463
+ - `get_twitterapi_guide` now validates against dynamic page keys from `data/docs.json`
464
+
465
+ ---
466
+
467
+ ## [1.0.4] - 2025-12-05
468
+
469
+ ### Added
470
+ - Dockerfile for container deployments (Glama.ai, Docker Hub)
471
+ - `.dockerignore` for optimized Docker builds
472
+ - MCP `completions` capability for mcp-proxy compatibility
473
+ - `build` script in package.json for CI/CD compatibility
474
+
475
+ ### Fixed
476
+ - Glama.ai deployment compatibility (completions handler, build script)
477
+
478
+ ---
479
+
480
+ ## [1.0.3] - 2025-12-05
481
+
482
+ ### Added
483
+ - `mcpName` field in package.json for MCP Registry compatibility
484
+ - MCP Registry support (`io.github.dorukardahan/twitterapi-docs-mcp`)
485
+
486
+ ---
487
+
488
+ ## [1.0.2] - 2025-12-05
489
+
490
+ ### Added
491
+ - GitHub Actions workflow for automated npm publishing
492
+ - npm Trusted Publishing (OIDC) - token-free secure publishing
493
+ - Provenance attestation for supply chain security
494
+
495
+ ### Changed
496
+ - Upgraded workflow to Node.js 24 (npm 11.6.0+ required for OIDC)
497
+ - Fixed test command for CI compatibility
498
+ - Cleaned up version strings in startup logs
499
+
500
+ ---
501
+
502
+ ## [1.0.0] - 2025-12-05
503
+
504
+ ### Added
505
+
506
+ First public release. Previously developed internally as v3.3.0.
507
+
508
+ #### Tools (6 total)
509
+ - `search_twitterapi_docs` - Full-text search across all documentation with configurable `max_results` (1-10)
510
+ - `get_twitterapi_endpoint` - Get detailed info for a specific API endpoint
511
+ - `list_twitterapi_endpoints` - List all endpoints with optional category filter
512
+ - `get_twitterapi_guide` - Get guide pages (pricing, qps_limits, tweet_filter_rules, changelog, introduction, authentication, readme)
513
+ - `get_twitterapi_pricing` - Quick access to pricing information
514
+ - `get_twitterapi_auth` - Quick access to authentication guide
515
+
516
+ #### Resources (9 total)
517
+ - `twitterapi://guides/pricing` - Pricing guide
518
+ - `twitterapi://guides/qps-limits` - QPS limits guide
519
+ - `twitterapi://guides/filter-rules` - Tweet filter rules guide
520
+ - `twitterapi://guides/changelog` - API changelog
521
+ - `twitterapi://guides/introduction` - Introduction guide
522
+ - `twitterapi://guides/authentication` - Authentication guide
523
+ - `twitterapi://guides/readme` - README guide
524
+ - `twitterapi://endpoints/list` - Full endpoint listing
525
+ - `twitterapi://status/freshness` - Data freshness status
526
+
527
+ #### Features
528
+ - Advanced tokenization with camelCase/PascalCase support
529
+ - N-gram fuzzy matching for search
530
+ - Hybrid caching (memory + disk) with 24-hour TTL
531
+ - SLO latency tracking (<50ms target)
532
+ - Data freshness monitoring
533
+ - Structured logging with metrics
534
+ - Input validation with helpful error messages
535
+ - 48 unit tests
536
+
537
+ #### Documentation Coverage
538
+ - 52 API endpoints
539
+ - 8 guide pages
540
+ - 5 blog articles
541
+ - Offline-first design (no network required)
542
+
543
+ ### Technical Details
544
+ - Pure ES Modules (no build step required)
545
+ - Node.js 18.18.0+ required
546
+ - Single dependency: @modelcontextprotocol/sdk
547
+
548
+ ---
549
+
550
+ ## Pre-1.0 Development History
551
+
552
+ Internal development versions (v1.0.0 - v3.3.0) included iterative improvements:
553
+
554
+ - **Phase 1**: Basic tools, search functionality, caching
555
+ - **Phase 2**: MCP Resources, advanced search, SLO tracking, data freshness monitoring
package/data/docs.json CHANGED
@@ -1286,8 +1286,8 @@
1286
1286
  "name": "tweet_advanced_search",
1287
1287
  "url": "https://docs.twitterapi.io/api-reference/endpoint/tweet_advanced_search",
1288
1288
  "scraped_at": "2026-03-16T02:37:54.444Z",
1289
- "title": "Advanced search for tweets.Each page returns up to 20 replies(Sometimes less than 20,because we will filter out ads or other not tweets). Use cursor for pagination.",
1290
- "description": "Advanced search for tweets.Each page returns up to 20 replies(Sometimes less than 20,because we will filter out ads or other not tweets). Use cursor for pagination.",
1289
+ "title": "Advanced search for tweets. Each page returns up to 20 replies (sometimes less, ads filtered). Use cursor for pagination. IMPORTANT for date filtering: use since_time:UNIX_TIMESTAMP and until_time:UNIX_TIMESTAMP instead of since:DATE/until:DATE (date format is currently degraded on Twitter). Convert your dates to Unix timestamps for correct results.",
1290
+ "description": "Advanced search for tweets. Each page returns up to 20 replies (sometimes less, ads filtered). Use cursor for pagination. IMPORTANT for date filtering: use since_time:UNIX_TIMESTAMP and until_time:UNIX_TIMESTAMP instead of since:DATE/until:DATE (date format is currently degraded on Twitter). Convert your dates to Unix timestamps for correct results.",
1291
1291
  "method": "GET",
1292
1292
  "path": "/twitter/tweet/advanced_search",
1293
1293
  "parameters": [
@@ -1297,7 +1297,7 @@
1297
1297
  "type": "string",
1298
1298
  "format": "string",
1299
1299
  "required": true,
1300
- "description": "The query to search for.eg. \"AI\" OR \"Twitter\" from:elonmusk since:2021-12-31_23:59:59_UTC . Get more examples from https://github.com/igorbrigadir/twitter-advanced-search "
1300
+ "description": "The query to search for. eg. \"AI\" OR \"Twitter\" from:elonmusk since_time:1640995200 until_time:1641081600 . IMPORTANT: Use since_time/until_time with Unix timestamps instead of since/until date format (since/until is currently degraded on Twitter). Get more examples from https://github.com/igorbrigadir/twitter-advanced-search"
1301
1301
  },
1302
1302
  {
1303
1303
  "name": "queryType",
@@ -1336,11 +1336,11 @@
1336
1336
  "description": "Cursor for fetching the next page of results"
1337
1337
  }
1338
1338
  },
1339
- "curl_example": "curl --request GET \\\n --url 'https://api.twitterapi.io/twitter/tweet/advanced_search?query=QUERY&queryType=QUERYTYPE&cursor=CURSOR' \\\n --header 'X-API-Key: <api-key>'",
1339
+ "curl_example": "curl --request GET \\\n --url 'https://api.twitterapi.io/twitter/tweet/advanced_search?query=from%3Aelonmusk%20since_time%3A1640995200%20until_time%3A1641081600&queryType=Latest' \\\n --header 'X-API-Key: <api-key>'",
1340
1340
  "code_snippets": [
1341
- "curl --request GET \\\n --url 'https://api.twitterapi.io/twitter/tweet/advanced_search?query=QUERY&queryType=QUERYTYPE&cursor=CURSOR' \\\n --header 'X-API-Key: <api-key>'"
1341
+ "curl --request GET \\\n --url 'https://api.twitterapi.io/twitter/tweet/advanced_search?query=from%3Aelonmusk%20since_time%3A1640995200%20until_time%3A1641081600&queryType=Latest' \\\n --header 'X-API-Key: <api-key>'"
1342
1342
  ],
1343
- "raw_text": "Advanced search for tweets.Each page returns up to 20 replies(Sometimes less than 20,because we will filter out ads or other not tweets). Use cursor for pagination. query: The query to search for.eg. \"AI\" OR \"Twitter\" from:elonmusk since:2021-12-31_23:59:59_UTC . Get more examples from https://github.com/igorbrigadir/twitter-advanced-search queryType: The query type to search for.eg. \"Latest\" OR \"Top\" cursor: The cursor to paginate through the results. First page is \"\"."
1343
+ "raw_text": "Advanced search for tweets. Each page returns up to 20 replies (sometimes less, ads filtered). Use cursor for pagination. IMPORTANT for date filtering: use since_time:UNIX_TIMESTAMP and until_time:UNIX_TIMESTAMP instead of since:DATE/until:DATE (date format is currently degraded on Twitter). Convert your dates to Unix timestamps for correct results. query: The query to search for. eg. \"AI\" OR \"Twitter\" from:elonmusk since_time:1640995200 until_time:1641081600 . IMPORTANT: Use since_time/until_time with Unix timestamps instead of since/until date format (since/until is currently degraded on Twitter). Get more examples from https://github.com/igorbrigadir/twitter-advanced-search queryType: \"Latest\" or \"Top\" cursor: pagination cursor, first page is empty string."
1344
1344
  },
1345
1345
  "list_timeline": {
1346
1346
  "name": "list_timeline",
@@ -1673,7 +1673,51 @@
1673
1673
  "code_snippets": [
1674
1674
  "curl --request POST \\\n --url 'https://api.twitterapi.io/twitter/upload_media_v2' \\\n --header 'X-API-Key: <api-key>'"
1675
1675
  ],
1676
- "raw_text": "Upload media to twitter.You must set the login_cookie.You can get the login_cookie from /twitter/user_login_v2.Trial operation price: $0.003 per call. "
1676
+ "raw_text": "Upload media to twitter.You must set the login_cookie.You can get the login_cookie from /twitter/user_login_v2.Trial operation price: $0.003 per call. ",
1677
+ "body": {
1678
+ "file": {
1679
+ "type": "file",
1680
+ "required": true,
1681
+ "description": "The media file to upload (image/video). Use multipart/form-data."
1682
+ },
1683
+ "login_cookies": {
1684
+ "type": "string",
1685
+ "required": true,
1686
+ "description": "The login cookies from /twitter/user_login_v2"
1687
+ },
1688
+ "proxy": {
1689
+ "type": "string",
1690
+ "required": true,
1691
+ "description": "Residential proxy URL. Example: http://username:password@ip:port"
1692
+ },
1693
+ "is_long_video": {
1694
+ "type": "boolean",
1695
+ "required": false,
1696
+ "description": "Set to true for videos longer than 2:20 (Premium only)"
1697
+ }
1698
+ },
1699
+ "body_parameters": {
1700
+ "file": {
1701
+ "type": "file",
1702
+ "required": true,
1703
+ "description": "The media file to upload (image/video). Use multipart/form-data."
1704
+ },
1705
+ "login_cookies": {
1706
+ "type": "string",
1707
+ "required": true,
1708
+ "description": "The login cookies from /twitter/user_login_v2"
1709
+ },
1710
+ "proxy": {
1711
+ "type": "string",
1712
+ "required": true,
1713
+ "description": "Residential proxy URL. Example: http://username:password@ip:port"
1714
+ },
1715
+ "is_long_video": {
1716
+ "type": "boolean",
1717
+ "required": false,
1718
+ "description": "Set to true for videos longer than 2:20 (Premium only)"
1719
+ }
1720
+ }
1677
1721
  },
1678
1722
  "like_tweet_v2": {
1679
1723
  "name": "like_tweet_v2",
@@ -2444,7 +2488,8 @@
2444
2488
  "code_snippets": [
2445
2489
  "curl --request GET \\\n --url 'https://api.twitterapi.io/oapi/tweet_filter/get_rules' \\\n --header 'X-API-Key: <api-key>'"
2446
2490
  ],
2447
- "raw_text": "Get all tweet filter rules.Rule can be used in webhook and websocket.You can also modify the rule in our web page."
2491
+ "raw_text": "Get all tweet filter rules.Rule can be used in webhook and websocket.You can also modify the rule in our web page.",
2492
+ "parameters": {}
2448
2493
  },
2449
2494
  "add_user_to_monitor_tweet": {
2450
2495
  "name": "add_user_to_monitor_tweet",
@@ -2560,7 +2605,8 @@
2560
2605
  "code_snippets": [
2561
2606
  "curl --request GET \\\n --url 'https://api.twitterapi.io/oapi/x_user_stream/get_user_to_monitor_tweet' \\\n --header 'X-API-Key: <api-key>'"
2562
2607
  ],
2563
- "raw_text": "Get the list of users being monitored for real-time tweets. Returns all users that have been added for tweet monitoring. Please ref:https://twitterapi.io/twitter-stream"
2608
+ "raw_text": "Get the list of users being monitored for real-time tweets. Returns all users that have been added for tweet monitoring. Please ref:https://twitterapi.io/twitter-stream",
2609
+ "parameters": {}
2564
2610
  },
2565
2611
  "add_webhook_rule": {
2566
2612
  "name": "add_webhook_rule",
@@ -3165,7 +3211,8 @@
3165
3211
  "code_snippets": [
3166
3212
  "curl --request GET \\\n --url 'https://api.twitterapi.io/oapi/my/info' \\\n --header 'X-API-Key: <api-key>'"
3167
3213
  ],
3168
- "raw_text": "Get my info"
3214
+ "raw_text": "Get my info",
3215
+ "parameters": {}
3169
3216
  },
3170
3217
  "update_avatar_v2": {
3171
3218
  "name": "update_avatar_v2",
@@ -3501,7 +3548,34 @@
3501
3548
  "code_snippets": [
3502
3549
  "curl --request POST \\\n --url 'https://api.twitterapi.io/twitter/list/add_member' \\\n --header 'X-API-Key: <api-key>' \\\n --header 'Content-Type: application/json' \\\n --data '{\"auth_session\": \"SESSION\", \"list_id\": \"LIST_ID\", \"user_name\": \"USERNAME\", \"proxy\": \"http://user:pass@host:port\"}'"
3503
3550
  ],
3504
- "raw_text": "Add member to a list. Need to login first. auth_session: login session list_id: list id user_id: user id user_name: username proxy: proxy URL"
3551
+ "raw_text": "Add member to a list. Need to login first. auth_session: login session list_id: list id user_id: user id user_name: username proxy: proxy URL",
3552
+ "body": {
3553
+ "auth_session": {
3554
+ "type": "string",
3555
+ "required": true,
3556
+ "description": "The session from /twitter/login_by_2fa"
3557
+ },
3558
+ "list_id": {
3559
+ "type": "string",
3560
+ "required": true,
3561
+ "description": "The id of the list"
3562
+ },
3563
+ "user_id": {
3564
+ "type": "string",
3565
+ "required": false,
3566
+ "description": "The id of the user to add. user_id and user_name must be set at least one."
3567
+ },
3568
+ "user_name": {
3569
+ "type": "string",
3570
+ "required": false,
3571
+ "description": "The name of the user to add. user_id and user_name must be set at least one."
3572
+ },
3573
+ "proxy": {
3574
+ "type": "string",
3575
+ "required": true,
3576
+ "description": "Residential proxy URL"
3577
+ }
3578
+ }
3505
3579
  },
3506
3580
  "remove_list_member": {
3507
3581
  "name": "remove_list_member",
@@ -3557,7 +3631,34 @@
3557
3631
  "code_snippets": [
3558
3632
  "curl --request POST \\\n --url 'https://api.twitterapi.io/twitter/list/remove_member' \\\n --header 'X-API-Key: <api-key>' \\\n --header 'Content-Type: application/json' \\\n --data '{\"auth_session\": \"SESSION\", \"list_id\": \"LIST_ID\", \"user_name\": \"USERNAME\", \"proxy\": \"http://user:pass@host:port\"}'"
3559
3633
  ],
3560
- "raw_text": "Remove member from a list. Need to login first. auth_session: login session list_id: list id user_id: user id user_name: username proxy: proxy URL"
3634
+ "raw_text": "Remove member from a list. Need to login first. auth_session: login session list_id: list id user_id: user id user_name: username proxy: proxy URL",
3635
+ "body": {
3636
+ "auth_session": {
3637
+ "type": "string",
3638
+ "required": true,
3639
+ "description": "The session from /twitter/login_by_2fa"
3640
+ },
3641
+ "list_id": {
3642
+ "type": "string",
3643
+ "required": true,
3644
+ "description": "The id of the list"
3645
+ },
3646
+ "user_id": {
3647
+ "type": "string",
3648
+ "required": false,
3649
+ "description": "The id of the user to remove. user_id and user_name must be set at least one."
3650
+ },
3651
+ "user_name": {
3652
+ "type": "string",
3653
+ "required": false,
3654
+ "description": "The name of the user to remove. user_id and user_name must be set at least one."
3655
+ },
3656
+ "proxy": {
3657
+ "type": "string",
3658
+ "required": true,
3659
+ "description": "Residential proxy URL"
3660
+ }
3661
+ }
3561
3662
  },
3562
3663
  "get_list_tweets": {
3563
3664
  "name": "get_list_tweets",
@@ -3689,7 +3790,41 @@
3689
3790
  "code_snippets": [
3690
3791
  "curl --request POST \\\n --url 'https://api.twitterapi.io/twitter/bookmark_tweet_v2' \\\n --header 'X-API-Key: <api-key>' \\\n --header 'Content-Type: application/json'"
3691
3792
  ],
3692
- "raw_text": "Bookmark a tweet. You must set the login_cookie. You can get the login_cookie from /twitter/user_login_v2. Trial operation price: $0.002 per call. login_cookies: The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set tweet_id: The id of the tweet to bookmark. Must be set proxy: The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port"
3793
+ "raw_text": "Bookmark a tweet. You must set the login_cookie. You can get the login_cookie from /twitter/user_login_v2. Trial operation price: $0.002 per call. login_cookies: The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set tweet_id: The id of the tweet to bookmark. Must be set proxy: The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port",
3794
+ "body": {
3795
+ "login_cookies": {
3796
+ "type": "string",
3797
+ "required": true,
3798
+ "description": "The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set"
3799
+ },
3800
+ "tweet_id": {
3801
+ "type": "string",
3802
+ "required": true,
3803
+ "description": "The id of the tweet to bookmark. Must be set"
3804
+ },
3805
+ "proxy": {
3806
+ "type": "string",
3807
+ "required": true,
3808
+ "description": "The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port"
3809
+ }
3810
+ },
3811
+ "body_parameters": {
3812
+ "login_cookies": {
3813
+ "type": "string",
3814
+ "required": true,
3815
+ "description": "The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set"
3816
+ },
3817
+ "tweet_id": {
3818
+ "type": "string",
3819
+ "required": true,
3820
+ "description": "The id of the tweet to bookmark. Must be set"
3821
+ },
3822
+ "proxy": {
3823
+ "type": "string",
3824
+ "required": true,
3825
+ "description": "The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port"
3826
+ }
3827
+ }
3693
3828
  },
3694
3829
  "bookmarks_v2": {
3695
3830
  "name": "bookmarks_v2",
@@ -3739,7 +3874,51 @@
3739
3874
  "code_snippets": [
3740
3875
  "curl --request POST \\\n --url 'https://api.twitterapi.io/twitter/bookmarks_v2' \\\n --header 'X-API-Key: <api-key>' \\\n --header 'Content-Type: application/json'"
3741
3876
  ],
3742
- "raw_text": "Get the bookmarks list of the logged-in user. You must set the login_cookie. You can get the login_cookie from /twitter/user_login_v2. Returns tweets in the same format as other tweet endpoints. Use cursor for pagination. login_cookies: The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set proxy: The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port count: Number of bookmarks to return per page. Default is 20 cursor: Cursor for pagination. Use next_cursor from previous response to get next page"
3877
+ "raw_text": "Get the bookmarks list of the logged-in user. You must set the login_cookie. You can get the login_cookie from /twitter/user_login_v2. Returns tweets in the same format as other tweet endpoints. Use cursor for pagination. login_cookies: The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set proxy: The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port count: Number of bookmarks to return per page. Default is 20 cursor: Cursor for pagination. Use next_cursor from previous response to get next page",
3878
+ "body": {
3879
+ "login_cookies": {
3880
+ "type": "string",
3881
+ "required": true,
3882
+ "description": "The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set"
3883
+ },
3884
+ "proxy": {
3885
+ "type": "string",
3886
+ "required": true,
3887
+ "description": "The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port"
3888
+ },
3889
+ "count": {
3890
+ "type": "integer",
3891
+ "required": false,
3892
+ "description": "Number of bookmarks to return per page. Default is 20"
3893
+ },
3894
+ "cursor": {
3895
+ "type": "string",
3896
+ "required": false,
3897
+ "description": "Cursor for pagination. Use next_cursor from previous response to get next page"
3898
+ }
3899
+ },
3900
+ "body_parameters": {
3901
+ "login_cookies": {
3902
+ "type": "string",
3903
+ "required": true,
3904
+ "description": "The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set"
3905
+ },
3906
+ "proxy": {
3907
+ "type": "string",
3908
+ "required": true,
3909
+ "description": "The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port"
3910
+ },
3911
+ "count": {
3912
+ "type": "integer",
3913
+ "required": false,
3914
+ "description": "Number of bookmarks to return per page. Default is 20"
3915
+ },
3916
+ "cursor": {
3917
+ "type": "string",
3918
+ "required": false,
3919
+ "description": "Cursor for pagination. Use next_cursor from previous response to get next page"
3920
+ }
3921
+ }
3743
3922
  },
3744
3923
  "unbookmark_tweet_v2": {
3745
3924
  "name": "unbookmark_tweet_v2",
@@ -3781,7 +3960,41 @@
3781
3960
  "code_snippets": [
3782
3961
  "curl --request POST \\\n --url 'https://api.twitterapi.io/twitter/unbookmark_tweet_v2' \\\n --header 'X-API-Key: <api-key>' \\\n --header 'Content-Type: application/json'"
3783
3962
  ],
3784
- "raw_text": "Remove a tweet from bookmarks. You must set the login_cookie. You can get the login_cookie from /twitter/user_login_v2. Trial operation price: $0.002 per call. login_cookies: The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set tweet_id: The id of the tweet to unbookmark. Must be set proxy: The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port"
3963
+ "raw_text": "Remove a tweet from bookmarks. You must set the login_cookie. You can get the login_cookie from /twitter/user_login_v2. Trial operation price: $0.002 per call. login_cookies: The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set tweet_id: The id of the tweet to unbookmark. Must be set proxy: The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port",
3964
+ "body": {
3965
+ "login_cookies": {
3966
+ "type": "string",
3967
+ "required": true,
3968
+ "description": "The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set"
3969
+ },
3970
+ "tweet_id": {
3971
+ "type": "string",
3972
+ "required": true,
3973
+ "description": "The id of the tweet to unbookmark. Must be set"
3974
+ },
3975
+ "proxy": {
3976
+ "type": "string",
3977
+ "required": true,
3978
+ "description": "The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port"
3979
+ }
3980
+ },
3981
+ "body_parameters": {
3982
+ "login_cookies": {
3983
+ "type": "string",
3984
+ "required": true,
3985
+ "description": "The login cookies of the user. You can get the login_cookie from /twitter/user_login_v2. Must be set"
3986
+ },
3987
+ "tweet_id": {
3988
+ "type": "string",
3989
+ "required": true,
3990
+ "description": "The id of the tweet to unbookmark. Must be set"
3991
+ },
3992
+ "proxy": {
3993
+ "type": "string",
3994
+ "required": true,
3995
+ "description": "The proxy to use. Please use high-quality residential proxies and avoid free proxies. Required. Example: http://username:password@ip:port"
3996
+ }
3997
+ }
3785
3998
  },
3786
3999
  "login_by_2fa": {
3787
4000
  "name": "login_by_2fa",
@@ -14116,4 +14329,4 @@
14116
14329
  }
14117
14330
  }
14118
14331
  }
14119
- }
14332
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twitterapi-io-mcp",
3
- "version": "1.5.0",
3
+ "version": "1.5.6",
4
4
  "mcpName": "io.github.dorukardahan/twitterapi-io-mcp",
5
5
  "description": "TwitterAPI.io MCP server providing offline access to docs (endpoints, pages, blogs) for Claude and other AI assistants",
6
6
  "main": "index.js",
@@ -60,6 +60,7 @@
60
60
  "index.js",
61
61
  "data/docs.json",
62
62
  "README.md",
63
+ "CHANGELOG.md",
63
64
  "LICENSE"
64
65
  ],
65
66
  "dependencies": {