twitterapi-io-mcp 1.3.1 → 1.4.0

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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # twitterapi-io-mcp
2
2
 
3
- > Offline TwitterAPI.io documentation for Claude and AI assistants via MCP. 58 endpoints (with full method/params/body), 32 guides, 24 blog posts. No API key needed.
3
+ > Offline TwitterAPI.io documentation for Claude and AI assistants via MCP. 65 endpoints (with full method/params/body), 32 guides, 24 blog posts. No API key needed.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/twitterapi-io-mcp.svg)](https://www.npmjs.com/package/twitterapi-io-mcp)
6
6
  [![npm downloads](https://img.shields.io/npm/dm/twitterapi-io-mcp.svg)](https://www.npmjs.com/package/twitterapi-io-mcp)
@@ -17,7 +17,7 @@ claude mcp add twitterapi-io -- npx -y twitterapi-io-mcp
17
17
 
18
18
  An MCP server that gives Claude, Cursor, VS Code Copilot, and other AI assistants **instant, offline access** to [TwitterAPI.io](https://twitterapi.io) documentation.
19
19
 
20
- - **58 API endpoints** with full HTTP method, body/query parameters, cURL examples, and response schemas
20
+ - **65 API endpoints** with full HTTP method, body/query parameters, cURL examples, and response schemas
21
21
  - **32 guide pages** covering pricing, authentication, rate limits, webhooks, streaming
22
22
  - **24 blog posts** with tutorials and use cases
23
23
  - **All v2 write endpoints** documented with `login_cookies`, `proxy`, and body params
@@ -178,7 +178,7 @@ Here are real prompts that work well with this MCP server:
178
178
  - *"How do I upload media and create a tweet?"* — triggers sequential `get_twitterapi_endpoint` calls
179
179
 
180
180
  <details>
181
- <summary><strong>All 58 endpoints by category</strong></summary>
181
+ <summary><strong>All 65 endpoints by category</strong></summary>
182
182
 
183
183
  | Category | Count | Endpoints |
184
184
  |----------|-------|-----------|
@@ -238,7 +238,7 @@ Restart your MCP client after adding the server config. Most clients (Claude Des
238
238
  │ Claude / │ ◄──────────────────► │ twitterapi-io-mcp│
239
239
  │ Cursor / │ │ │
240
240
  │ VS Code │ │ Bundled docs │
241
- └─────────────┘ │ (58 endpoints) │
241
+ └─────────────┘ │ (65 endpoints) │
242
242
  └──────────────────┘
243
243
  No network needed
244
244
  ```
@@ -273,7 +273,7 @@ npm run scrape # Update docs snapshot from twitterapi.io
273
273
 
274
274
  ## Not using MCP?
275
275
 
276
- If your AI tool doesn't support MCP (like OpenClaw), use the **skill version** instead — a single markdown file with all 58 endpoints:
276
+ If your AI tool doesn't support MCP (like OpenClaw), use the **skill version** instead — a single markdown file with all 65 endpoints:
277
277
 
278
278
  👉 **[twitterapi-io-skill](https://github.com/dorukardahan/twitterapi-io-skill)** — works with OpenClaw, Claude, GPT, Gemini, and any LLM.
279
279
 
package/data/docs.json CHANGED
@@ -2253,7 +2253,33 @@
2253
2253
  "code_snippets": [
2254
2254
  "curl --request POST \\\n --url 'https://api.twitterapi.io/twitter/delete_community_v2' \\\n --header 'X-API-Key: <api-key>' \\\n --header 'Content-Type: application/json'"
2255
2255
  ],
2256
- "raw_text": "Delete a community.You must set the login_cookie.You can get the login_cookie from /twitter/user_login_v2.Trial operation price: $0.003 per call. login_cookie: The login cookie of the user.You can get the login_cookie from /twitter/user_login_v2.Must be set community_id: The id of the community to join.Must be set community_name: The name of the community to delete.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 . You can get proxy from: https://www.webshare.io/?referral_code=4e0q1n00a504"
2256
+ "raw_text": "Delete a community.You must set the login_cookie.You can get the login_cookie from /twitter/user_login_v2.Trial operation price: $0.003 per call. login_cookie: The login cookie of the user.You can get the login_cookie from /twitter/user_login_v2.Must be set community_id: The id of the community to join.Must be set community_name: The name of the community to delete.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 . You can get proxy from: https://www.webshare.io/?referral_code=4e0q1n00a504",
2257
+ "parameters": [
2258
+ {
2259
+ "name": "login_cookies",
2260
+ "type": "string",
2261
+ "required": true,
2262
+ "description": "Base64 encoded login cookies from /twitter/user_login_v2"
2263
+ },
2264
+ {
2265
+ "name": "community_id",
2266
+ "type": "string",
2267
+ "required": true,
2268
+ "description": "The community ID to delete"
2269
+ },
2270
+ {
2271
+ "name": "community_name",
2272
+ "type": "string",
2273
+ "required": true,
2274
+ "description": "The community name"
2275
+ },
2276
+ {
2277
+ "name": "proxy",
2278
+ "type": "string",
2279
+ "required": true,
2280
+ "description": "Residential proxy URL"
2281
+ }
2282
+ ]
2257
2283
  },
2258
2284
  "join_community_v2": {
2259
2285
  "name": "join_community_v2",
@@ -2682,7 +2708,35 @@
2682
2708
  "code_snippets": [
2683
2709
  "curl --request POST \\\n --url 'https://api.twitterapi.io/oapi/tweet_filter/update_rule' \\\n --header 'X-API-Key: <api-key>' \\\n --header 'Content-Type: application/json'"
2684
2710
  ],
2685
- "raw_text": "Update a tweet filter rule. You must set all parameters. rule_id: ID of the rule to update.Must be set tag: Custom tag to identify the rule.Must be set.Max length is 255 value: Rule to filter tweets.eg \"from:elonmusk OR from:kaitoeasyapi\".Must be set.Max length is 255 interval_seconds: Interval to check tweets.Must be set.Min value is 0.1.Max value is 86400 () is_effect: Whether the rule is effective.Must be set.1 means effective, 0 means not effective.Default value is 0"
2711
+ "raw_text": "Update a tweet filter rule. You must set all parameters. rule_id: ID of the rule to update.Must be set tag: Custom tag to identify the rule.Must be set.Max length is 255 value: Rule to filter tweets.eg \"from:elonmusk OR from:kaitoeasyapi\".Must be set.Max length is 255 interval_seconds: Interval to check tweets.Must be set.Min value is 0.1.Max value is 86400 () is_effect: Whether the rule is effective.Must be set.1 means effective, 0 means not effective.Default value is 0",
2712
+ "parameters": [
2713
+ {
2714
+ "name": "rule_id",
2715
+ "type": "string",
2716
+ "required": true
2717
+ },
2718
+ {
2719
+ "name": "tag",
2720
+ "type": "string",
2721
+ "required": true
2722
+ },
2723
+ {
2724
+ "name": "value",
2725
+ "type": "string",
2726
+ "required": true
2727
+ },
2728
+ {
2729
+ "name": "interval_seconds",
2730
+ "type": "number",
2731
+ "required": true
2732
+ },
2733
+ {
2734
+ "name": "is_effect",
2735
+ "type": "integer",
2736
+ "required": false,
2737
+ "description": "0=inactive, 1=active"
2738
+ }
2739
+ ]
2686
2740
  },
2687
2741
  "delete_webhook_rule": {
2688
2742
  "name": "delete_webhook_rule",
@@ -2724,7 +2778,14 @@
2724
2778
  "code_snippets": [
2725
2779
  "curl --request DELETE \\\n --url 'https://api.twitterapi.io/oapi/tweet_filter/delete_rule' \\\n --header 'X-API-Key: <api-key>' \\\n --header 'Content-Type: application/json'"
2726
2780
  ],
2727
- "raw_text": "Delete a tweet filter rule. You must set all parameters. rule_id: ID of the rule to delete.Must be set"
2781
+ "raw_text": "Delete a tweet filter rule. You must set all parameters. rule_id: ID of the rule to delete.Must be set",
2782
+ "parameters": [
2783
+ {
2784
+ "name": "rule_id",
2785
+ "type": "string",
2786
+ "required": false
2787
+ }
2788
+ ]
2728
2789
  },
2729
2790
  "get_community_by_id": {
2730
2791
  "name": "get_community_by_id",
@@ -3587,6 +3648,277 @@
3587
3648
  "curl --request GET \\\n --url 'https://api.twitterapi.io/twitter/list/tweets?listId=LIST_ID&cursor=CURSOR' \\\n --header 'X-API-Key: <api-key>'"
3588
3649
  ],
3589
3650
  "raw_text": "Get tweets by list id. Each page returns exactly 20 tweets. Use cursor for pagination. listId: list id sinceTime: unix timestamp untilTime: unix timestamp includeReplies: include replies cursor: pagination cursor"
3651
+ },
3652
+ "user_login_v3": {
3653
+ "name": "user_login_v3",
3654
+ "url": "https://docs.twitterapi.io/api-reference/endpoint/user_login_v3",
3655
+ "scraped_at": "2026-03-20T20:06:00.000Z",
3656
+ "title": "V3 Login API",
3657
+ "description": "V3 Login API - Log in using your email, username, password, and 2FA code. This is an asynchronous login method. After calling this API, the system will process your login request in the background.",
3658
+ "method": "POST",
3659
+ "path": "/twitter/user_login_v3",
3660
+ "parameters": [],
3661
+ "requestBody": {
3662
+ "contentType": "application/json",
3663
+ "schema": {
3664
+ "type": "object",
3665
+ "properties": {
3666
+ "user_name": {
3667
+ "type": "string",
3668
+ "description": "Twitter username. Must be set.",
3669
+ "required": true
3670
+ },
3671
+ "email": {
3672
+ "type": "string",
3673
+ "description": "Email address associated with the account. Must be set if cookie is empty.",
3674
+ "required": false
3675
+ },
3676
+ "password": {
3677
+ "type": "string",
3678
+ "description": "The password of the user. Must be set if cookie is empty.",
3679
+ "required": false
3680
+ },
3681
+ "totp_code": {
3682
+ "type": "string",
3683
+ "description": "The TOTP secret key for 2FA authentication. It is a 10-character string.",
3684
+ "required": false
3685
+ },
3686
+ "cookie": {
3687
+ "type": "string",
3688
+ "description": "Optional. Pre-existing cookie string to resume a previous session.",
3689
+ "required": false
3690
+ },
3691
+ "proxy": {
3692
+ "type": "string",
3693
+ "description": "The proxy to use. Must use high-quality residential proxies.",
3694
+ "required": true
3695
+ }
3696
+ },
3697
+ "required": [
3698
+ "user_name",
3699
+ "proxy"
3700
+ ]
3701
+ }
3702
+ },
3703
+ "curl": "curl -s -X POST \"https://api.twitterapi.io/twitter/user_login_v3\" -H \"X-API-Key: $TWITTERAPI_IO_KEY\" -H \"Content-Type: application/json\" -d '{\"user_name\": \"USERNAME\", \"email\": \"EMAIL\", \"password\": \"PASSWORD\", \"proxy\": \"http://user:pass@host:port\"}'"
3704
+ },
3705
+ "send_tweet_v3": {
3706
+ "name": "send_tweet_v3",
3707
+ "url": "https://docs.twitterapi.io/api-reference/endpoint/send_tweet_v3",
3708
+ "scraped_at": "2026-03-20T20:06:00.000Z",
3709
+ "title": "V3 Send Tweet API",
3710
+ "description": "V3 Send Tweet API - Send a tweet using your username. This is an asynchronous method that queues your tweet for posting. You must have logged in via user_login_v3 first.",
3711
+ "method": "POST",
3712
+ "path": "/twitter/send_tweet_v3",
3713
+ "parameters": [],
3714
+ "requestBody": {
3715
+ "contentType": "application/json",
3716
+ "schema": {
3717
+ "type": "object",
3718
+ "properties": {
3719
+ "user_name": {
3720
+ "type": "string",
3721
+ "description": "Twitter username. Must be set.",
3722
+ "required": true
3723
+ },
3724
+ "text": {
3725
+ "type": "string",
3726
+ "description": "The text content of the tweet. Must be set.",
3727
+ "required": true
3728
+ },
3729
+ "media_data_base64": {
3730
+ "type": "string",
3731
+ "description": "Optional. Base64 encoded media data.",
3732
+ "required": false
3733
+ },
3734
+ "media_type": {
3735
+ "type": "string",
3736
+ "description": "Optional. MIME type: image/jpeg, image/png, image/gif, video/mp4",
3737
+ "required": false
3738
+ },
3739
+ "community_id": {
3740
+ "type": "string",
3741
+ "description": "Optional. Community ID to post to.",
3742
+ "required": false
3743
+ }
3744
+ },
3745
+ "required": [
3746
+ "user_name",
3747
+ "text"
3748
+ ]
3749
+ }
3750
+ },
3751
+ "curl": "curl -s -X POST \"https://api.twitterapi.io/twitter/send_tweet_v3\" -H \"X-API-Key: $TWITTERAPI_IO_KEY\" -H \"Content-Type: application/json\" -d '{\"user_name\": \"USERNAME\", \"text\": \"Hello world!\"}'"
3752
+ },
3753
+ "like_tweet_v3": {
3754
+ "name": "like_tweet_v3",
3755
+ "url": "https://docs.twitterapi.io/api-reference/endpoint/like_tweet_v3",
3756
+ "scraped_at": "2026-03-20T20:06:00.000Z",
3757
+ "title": "V3 Like Tweet API",
3758
+ "description": "V3 Like Tweet API - Like a tweet using your username. You must have logged in via user_login_v3 first. Trial operation price: $0.002 per call.",
3759
+ "method": "POST",
3760
+ "path": "/twitter/like_tweet_v3",
3761
+ "parameters": [],
3762
+ "requestBody": {
3763
+ "contentType": "application/json",
3764
+ "schema": {
3765
+ "type": "object",
3766
+ "properties": {
3767
+ "user_name": {
3768
+ "type": "string",
3769
+ "description": "Twitter username. Must be set.",
3770
+ "required": true
3771
+ },
3772
+ "tweet_id": {
3773
+ "type": "string",
3774
+ "description": "The ID of the tweet to like. Must be set.",
3775
+ "required": true
3776
+ }
3777
+ },
3778
+ "required": [
3779
+ "user_name",
3780
+ "tweet_id"
3781
+ ]
3782
+ }
3783
+ },
3784
+ "curl": "curl -s -X POST \"https://api.twitterapi.io/twitter/like_tweet_v3\" -H \"X-API-Key: $TWITTERAPI_IO_KEY\" -H \"Content-Type: application/json\" -d '{\"user_name\": \"USERNAME\", \"tweet_id\": \"TWEET_ID\"}'"
3785
+ },
3786
+ "retweet_v3": {
3787
+ "name": "retweet_v3",
3788
+ "url": "https://docs.twitterapi.io/api-reference/endpoint/retweet_v3",
3789
+ "scraped_at": "2026-03-20T20:06:00.000Z",
3790
+ "title": "V3 Retweet API",
3791
+ "description": "V3 Retweet API - Retweet a tweet using your username. You must have logged in via user_login_v3 first. Trial operation price: $0.002 per call.",
3792
+ "method": "POST",
3793
+ "path": "/twitter/retweet_v3",
3794
+ "parameters": [],
3795
+ "requestBody": {
3796
+ "contentType": "application/json",
3797
+ "schema": {
3798
+ "type": "object",
3799
+ "properties": {
3800
+ "user_name": {
3801
+ "type": "string",
3802
+ "description": "Twitter username. Must be set.",
3803
+ "required": true
3804
+ },
3805
+ "tweet_id": {
3806
+ "type": "string",
3807
+ "description": "The ID of the tweet to retweet. Must be set.",
3808
+ "required": true
3809
+ }
3810
+ },
3811
+ "required": [
3812
+ "user_name",
3813
+ "tweet_id"
3814
+ ]
3815
+ }
3816
+ },
3817
+ "curl": "curl -s -X POST \"https://api.twitterapi.io/twitter/retweet_v3\" -H \"X-API-Key: $TWITTERAPI_IO_KEY\" -H \"Content-Type: application/json\" -d '{\"user_name\": \"USERNAME\", \"tweet_id\": \"TWEET_ID\"}'"
3818
+ },
3819
+ "update_profile_v3": {
3820
+ "name": "update_profile_v3",
3821
+ "url": "https://docs.twitterapi.io/api-reference/endpoint/update_profile_v3",
3822
+ "scraped_at": "2026-03-20T20:06:00.000Z",
3823
+ "title": "V3 Update Profile API",
3824
+ "description": "V3 Update Profile API - Update your X profile information. Only non-empty fields will be updated. You must have logged in via user_login_v3 first.",
3825
+ "method": "PUT",
3826
+ "path": "/twitter/update_profile_v3",
3827
+ "parameters": [],
3828
+ "requestBody": {
3829
+ "contentType": "application/json",
3830
+ "schema": {
3831
+ "type": "object",
3832
+ "properties": {
3833
+ "user_name": {
3834
+ "type": "string",
3835
+ "description": "Twitter username. Must be set.",
3836
+ "required": true
3837
+ },
3838
+ "name": {
3839
+ "type": "string",
3840
+ "description": "Optional. Display name.",
3841
+ "required": false
3842
+ },
3843
+ "bio": {
3844
+ "type": "string",
3845
+ "description": "Optional. Profile bio/description.",
3846
+ "required": false
3847
+ },
3848
+ "location": {
3849
+ "type": "string",
3850
+ "description": "Optional. Location.",
3851
+ "required": false
3852
+ },
3853
+ "website": {
3854
+ "type": "string",
3855
+ "description": "Optional. Website URL.",
3856
+ "required": false
3857
+ },
3858
+ "avatar": {
3859
+ "type": "string",
3860
+ "description": "Optional. Avatar image (base64 or URL).",
3861
+ "required": false
3862
+ },
3863
+ "banner": {
3864
+ "type": "string",
3865
+ "description": "Optional. Banner image (base64 or URL).",
3866
+ "required": false
3867
+ }
3868
+ },
3869
+ "required": [
3870
+ "user_name"
3871
+ ]
3872
+ }
3873
+ },
3874
+ "curl": "curl -s -X PUT \"https://api.twitterapi.io/twitter/update_profile_v3\" -H \"X-API-Key: $TWITTERAPI_IO_KEY\" -H \"Content-Type: application/json\" -d '{\"user_name\": \"USERNAME\", \"name\": \"Display Name\", \"bio\": \"Bio text\"}'"
3875
+ },
3876
+ "delete_my_x_account_v3": {
3877
+ "name": "delete_my_x_account_v3",
3878
+ "url": "https://docs.twitterapi.io/api-reference/endpoint/delete_my_x_account_v3",
3879
+ "scraped_at": "2026-03-20T20:06:00.000Z",
3880
+ "title": "V3 Delete Account API",
3881
+ "description": "Remove your X account cookie from the system. This will delete the account data that was logged in via user_login_v3.",
3882
+ "method": "DELETE",
3883
+ "path": "/twitter/delete_my_x_account_v3",
3884
+ "parameters": [],
3885
+ "requestBody": {
3886
+ "contentType": "application/json",
3887
+ "schema": {
3888
+ "type": "object",
3889
+ "properties": {
3890
+ "user_name": {
3891
+ "type": "string",
3892
+ "description": "Twitter username. Must be set.",
3893
+ "required": true
3894
+ }
3895
+ },
3896
+ "required": [
3897
+ "user_name"
3898
+ ]
3899
+ }
3900
+ },
3901
+ "curl": "curl -s -X DELETE \"https://api.twitterapi.io/twitter/delete_my_x_account_v3\" -H \"X-API-Key: $TWITTERAPI_IO_KEY\" -H \"Content-Type: application/json\" -d '{\"user_name\": \"USERNAME\"}'"
3902
+ },
3903
+ "get_my_x_account_detail_v3": {
3904
+ "name": "get_my_x_account_detail_v3",
3905
+ "url": "https://docs.twitterapi.io/api-reference/endpoint/get_my_x_account_detail_v3",
3906
+ "scraped_at": "2026-03-20T20:06:00.000Z",
3907
+ "title": "V3 Get Account Detail API",
3908
+ "description": "V3 Get Account Detail API - Get the details of your X account that was logged in via user_login_v3. Once status is Active, then you can use the account to post tweets, etc.",
3909
+ "method": "GET",
3910
+ "path": "/twitter/get_my_x_account_detail_v3",
3911
+ "parameters": [
3912
+ {
3913
+ "name": "user_name",
3914
+ "in": "query",
3915
+ "type": "string",
3916
+ "format": "string",
3917
+ "required": true,
3918
+ "description": "Twitter username. Must be set. The user must have been logged in via user_login_v3."
3919
+ }
3920
+ ],
3921
+ "curl": "curl -s \"https://api.twitterapi.io/twitter/get_my_x_account_detail_v3?user_name=USERNAME\" -H \"X-API-Key: $TWITTERAPI_IO_KEY\""
3590
3922
  }
3591
3923
  },
3592
3924
  "pages": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twitterapi-io-mcp",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
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",