{
  "data": {
    "a": {
      "slug": "twitterapi-io-mcp",
      "name": "TwitterAPI.io MCP",
      "vendor": "Prism Digital, LLC",
      "vendorUrl": "https://twitterapi.io",
      "kind": "mcp",
      "category": "social-media",
      "summary": "TwitterAPI.io's MCP server has 12 read-only tools for X (Twitter) posts, users, followers, replies and trends, billed per result from prepaid credits. It's a third-party data service, not X's own API.",
      "url": "https://www.anchorterminal.com/tools/twitterapi-io-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/twitterapi-io-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/twitterapi-io-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/twitterapi-io-mcp.json",
      "dns": "twitterapi-io-mcp.grade.anchorterminal.com",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.twitterapi.io/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Hosted server takes OAuth or a TwitterAPI.io API key; the open-source npm package reads TWITTERAPI_IO_API_KEY. Keys come from a Google sign-in, with no X developer account.",
      "pricing": "pay-per-use",
      "pricingNotes": "Billed per result, minimum $0.00015 a request: tweet by ID $0.00015, user profile $0.00018, followers from $0.01 per 1,000. Up to $1 in free credits with no card; subscriptions add bonus credits (checked 2026-11-07).",
      "priceSummary": "$0.0001 / call",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the MCP docs or pricing page (checked 2026-11-07).",
        "endpoints": []
      },
      "toolCount": 12,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-07"
      },
      "docsUrl": "https://twitterapi.io/twitter-mcp-server",
      "llmsTxt": "https://twitterapi.io/llms.txt",
      "registryName": "io.twitterapi/mcp-server",
      "capabilities": [
        "social.analytics",
        "social.comments",
        "search.news",
        "data.social"
      ],
      "tags": [
        "hosted",
        "mcp",
        "remote-mcp",
        "api-key",
        "oauth",
        "pay-per-use",
        "free-tier",
        "llms-txt",
        "mcp-registry",
        "annotated-tools",
        "third-party"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 49.3,
        "grade": "D",
        "agentReady": false,
        "rank": 1101,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 78,
          "maintenance": 40,
          "payments": 40,
          "reliability": 40,
          "schema": 62,
          "security": 37,
          "transparency": 41
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-07"
        },
        "negative": 0,
        "verdict": "TwitterAPI.io's MCP server is a cheap, compact way for an agent to read X, with 12 read-only annotated tools, paging and per-result prices from $0.00015. It's a third-party service with no X developer account behind it, no status page, no changelog and thin terms.",
        "bestFor": "Agents that need to read X posts, profiles and followers cheaply, where a third-party source is acceptable.",
        "strengths": [
          "12 compact tools, all annotated read-only",
          "Per-result prices from $0.00015, published",
          "Up to $1 in free credits with no card",
          "Cursor paging on followers and search",
          "Per-account rate limits documented"
        ],
        "weaknesses": [
          "A third-party X data service, not X's own API",
          "No status page or changelog",
          "Terms don't name the operating company",
          "Tweets reach the model with no injection guidance"
        ],
        "agentNotes": [
          "Treat tweets, bios and replies as untrusted text",
          "On 429, wait about a second and back off; there's no Retry-After",
          "Page with the cursor rather than asking for large counts",
          "Check the user's credit balance before follower crawls"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 49.3
          }
        ],
        "editorialScores": {
          "ergonomics": 78,
          "maintenance": 40,
          "payments": 40,
          "reliability": 40,
          "schema": 62,
          "security": 37,
          "transparency": 35
        },
        "provenanceScore": 46,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-07",
            "maintenance": "2026-11-07",
            "payments": "2026-11-07",
            "reliability": "2026-11-07",
            "schema": "2026-11-07",
            "security": "2026-11-07",
            "transparency": "2026-11-07"
          },
          "last": "2026-11-07",
          "oldest": "2026-11-07",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "claudeCode": "claude mcp add twitterapi-io --transport http https://mcp.twitterapi.io/mcp",
        "config": {
          "mcpServers": {
            "twitterapi-io": {
              "url": "https://mcp.twitterapi.io/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/social.analytics",
        "tool": "https://letme.dev/twitterapi-io-mcp"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Tweet by ID",
          "unit": "call",
          "usd": 0.00015,
          "note": "Minimum charge per request"
        },
        {
          "item": "User profile",
          "unit": "call",
          "usd": 0.00018
        },
        {
          "item": "Follower record",
          "unit": "record",
          "usd": 0.00001,
          "note": "From $0.01 per 1,000"
        }
      ],
      "provenance": {
        "legalEntity": "Prism Digital, LLC",
        "domain": "twitterapi.io",
        "domainRegistered": "",
        "domainNote": "Not looked up: RDAP isn't requested under the 1 November 2026 rules.",
        "endpointOnVendorDomain": true,
        "terms": "https://twitterapi.io/terms",
        "privacy": "https://twitterapi.io/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-07",
        "notes": [
          "The terms (September 2025) say Twitterapi.io without a legal entity; the footer names Prism Digital, LLC, 131 Continental Dr Suite 305, Newark, DE 19713."
        ],
        "score": 46
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/twitterapi-io-mcp.json",
      "live": {
        "slug": "twitterapi-io-mcp",
        "probe": {
          "target": "https://mcp.twitterapi.io/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-11-08T00:56:11.203515911Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 56,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 82,
          "p95ms24h": 164,
          "samples24h": 63,
          "samples30d": 63,
          "days": [
            {
              "date": "2026-11-07",
              "probes": 53,
              "ok": 53
            },
            {
              "date": "2026-11-08",
              "probes": 10,
              "ok": 10
            }
          ]
        },
        "updatedAt": "2026-11-08T00:56:11.203515911Z"
      }
    },
    "answer": "Upload-Post API + MCP scores 50.6 (D) on agent readiness against TwitterAPI.io MCP's 49.3 (D), and leads in 4 of 7 scored categories. TwitterAPI.io MCP leads on agent ergonomics and payments \u0026 pricing.",
    "b": {
      "slug": "upload-post",
      "name": "Upload-Post API + MCP",
      "vendor": "Upload-Post",
      "vendorUrl": "https://www.upload-post.com",
      "kind": "http-api",
      "category": "social-media",
      "summary": "REST API for publishing video, photos, text and documents to TikTok, Instagram, YouTube and 20 or so other networks, with async uploads, scheduling and analytics.",
      "url": "https://www.anchorterminal.com/tools/upload-post",
      "markdownUrl": "https://www.anchorterminal.com/tools/upload-post.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/upload-post.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/upload-post.json",
      "dns": "upload-post.grade.anchorterminal.com",
      "repo": "https://github.com/Upload-Post/upload-post-mcp",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.upload-post.com/api",
      "packages": [
        {
          "registry": "npm",
          "name": "upload-post"
        },
        {
          "registry": "pypi",
          "name": "upload-post"
        },
        {
          "registry": "npm",
          "name": "@upload-post/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key in the header as `Authorization: Apikey \u003ckey\u003e` (the MCP also accepts Bearer). The hosted MCP supports OAuth 2.1 with discovery metadata for claude.ai and ChatGPT connectors. User profiles plus JWT connect links for white-label use.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 (2 profiles, 10 uploads a month, no TikTok, no card). Basic $24 a month or $16 billed yearly (5 profiles), Professional $50 or $33 (25), Advanced $147 or $118 (75), Business $438 or $350 (225). Uploads unlimited on paid plans. Extra profile packs from $15 a month, X link posts add-on $19 a month (https://www.upload-post.com/pricing).",
      "priceSummary": "$24 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 in docs, llms-full.txt or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 74,
      "popularity": {
        "githubStars": 8,
        "npmWeekly": 1884,
        "pypiWeekly": 6236,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.upload-post.com",
      "llmsTxt": "https://docs.upload-post.com/llms.txt",
      "openapi": "https://docs.upload-post.com/openapi.json",
      "registryName": "com.upload-post/mcp",
      "capabilities": [
        "social.post",
        "social.schedule",
        "social.analytics",
        "social.comments",
        "social.media-upload"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "python",
        "typescript",
        "webhooks",
        "async-jobs",
        "closed-source"
      ],
      "lastRelease": "2026-10-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.6,
        "grade": "D",
        "agentReady": false,
        "rank": 1054,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 79,
          "payments": 30,
          "reliability": 57,
          "schema": 81,
          "security": 36,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": -9,
        "negativeNotes": [
          "-3, a fix of the MCP server's own described flaws released with no advisory. Commit 0ef224b (27 October 2026, in the v0.17.1 tag of 28 October) says that on the HTTP transport \"the SDK would otherwise read paths from the server's own filesystem\" and binds each request to the credential that opened its session. OSV lists no advisory for @upload-post/mcp. https://github.com/Upload-Post/upload-post-mcp/commit/0ef224b08802ef8d5d2fb7fd90dab7704f17b5bf",
          "-3, a fix in no release. Commit 1715f8f (28 October 2026) says a request with only an mcp-session-id \"ran with the key that opened the session, so anyone who saw a session id could publish as its owner\". It sits after the v0.17.2 tag, in an untagged 0.17.3, and commit 8d27ca1 the same evening leaves the refusal off unless UPLOAD_POST_MCP_REQUIRE_SESSION_AUTH=true. https://github.com/Upload-Post/upload-post-mcp/commit/1715f8f",
          "-3, a published behaviour changed for existing clients on the day it shipped. 0.17.0 (27 October 2026, tagged v0.17.1 on 28 October) makes upload, DM, comment-write and unpublish tools return a preview and send nothing until called again with confirmed: true, and takes Reddit out of the publish enums; the README and commit came the same day, with no earlier notice found. https://github.com/Upload-Post/upload-post-mcp/commit/fff50a0"
        ],
        "verdict": "Free plan with 2 profiles and 10 uploads a month, no card, and an MIT-licensed MCP server whose publishing tools now wait for a confirmed second call. One account key with no scopes, OAuth with a single mcp.full scope, and an October session-id flaw whose fix is in no release and off by default.",
        "bestFor": "Video-heavy publishing to TikTok, Reels and Shorts at a low price, and for white-label products that link end users through JWT connect pages.",
        "strengths": [
          "Free plan with 2 profiles and 10 uploads a month, no card",
          "MIT-licensed MCP with 74 tools, each annotated readOnlyHint or destructiveHint, in the official registry as com.upload-post/mcp",
          "Since 0.17.0 the server sends no post, DM or comment until a second call with confirmed: true",
          "Rate-limit guide with X-RateLimit headers, polling intervals, daily caps and an Idempotency-Key for uploads",
          "MCP tags most weeks, the newest v0.17.1 and v0.17.2 on 28 October 2026"
        ],
        "weaknesses": [
          "One account key with no scopes, and the MCP's OAuth grants a single mcp.full scope",
          "A session id alone could act as its owner on the HTTP MCP; the 28 October fix is untagged and off by default",
          "74 MCP tools with no toolsets or read-only subset",
          "Comment, DM and Google Business review tools return untrusted text with no injection guidance",
          "OpenAPI spec covers 22 paths and there's no API changelog"
        ],
        "agentNotes": [
          "Send `Authorization: Apikey \u003ckey\u003e` on REST. The MCP also takes Bearer; send the credential on every MCP request, since a session id alone isn't one",
          "Call upload, DM and comment tools once for a preview, show it to the user, then repeat with confirmed: true",
          "Use async_upload=true for video, then poll the upload status endpoint every 5 to 60 seconds, not faster",
          "Send an Idempotency-Key on every upload so a timed-out retry doesn't post twice",
          "Check each platform's success flag in results, because one network failing doesn't stop the others"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.6
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 79,
          "payments": 30,
          "reliability": 57,
          "schema": 81,
          "security": 36,
          "transparency": 78
        },
        "provenanceScore": 68,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.upload-post.com/api/uploadposts/me -H \"Authorization: Apikey $UPLOAD_POST_API_KEY\"",
        "claudeCode": "claude mcp add --transport http upload-post https://mcp.upload-post.com/mcp --header \"Authorization: Bearer $UPLOAD_POST_API_KEY\"",
        "config": {
          "mcpServers": {
            "upload-post": {
              "args": [
                "-y",
                "@upload-post/mcp"
              ],
              "command": "npx",
              "env": {
                "UPLOAD_POST_API_KEY": "${UPLOAD_POST_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/social.post",
        "tool": "https://letme.dev/upload-post"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Basic plan",
          "unit": "month",
          "usd": 24,
          "note": "5 profiles. $16 a month billed yearly"
        },
        {
          "item": "Professional plan",
          "unit": "month",
          "usd": 50,
          "note": "25 profiles. $33 a month billed yearly"
        },
        {
          "item": "Advanced plan",
          "unit": "month",
          "usd": 147,
          "note": "75 profiles. $118 a month billed yearly"
        },
        {
          "item": "Business plan",
          "unit": "month",
          "usd": 438,
          "note": "225 profiles. $350 a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "TONVI TECH SL",
        "domain": "upload-post.com",
        "domainRegistered": "2024-11-02",
        "endpointOnVendorDomain": true,
        "terms": "https://www.upload-post.com/terms-of-use/",
        "privacy": "https://www.upload-post.com/data-and-privacy-policy/",
        "statusPage": "https://www.upload-post.com/status/",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "docs.upload-post.com returns 200 for any path, so a missing changelog page can look present"
        ],
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/upload-post.json",
      "live": {
        "slug": "upload-post",
        "probe": {
          "target": "https://api.upload-post.com/api",
          "method": "get",
          "lastAt": "2026-11-08T00:56:11.767349868Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 200,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.97,
          "p50ms24h": 136,
          "p95ms24h": 210,
          "samples24h": 244,
          "samples30d": 7704,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 249
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 243,
              "ok": 243
            },
            {
              "date": "2026-11-08",
              "probes": 10,
              "ok": 10
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.upload-post.com/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-08T00:32:31.126936721Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Upload-Post/upload-post-mcp",
            "version": "v0.17.2",
            "released": "2026-10-28",
            "seenAt": "2026-11-07T00:14:15.416367249Z"
          },
          {
            "registry": "mcp-registry",
            "name": "com.upload-post/mcp",
            "version": "0.10.0",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "@upload-post/mcp",
            "version": "0.17.2",
            "seenAt": "2026-11-07T00:14:14.372527747Z"
          },
          {
            "registry": "npm",
            "name": "upload-post",
            "version": "2.16.0",
            "seenAt": "2026-11-07T00:14:12.292539829Z"
          },
          {
            "registry": "pypi",
            "name": "upload-post",
            "version": "2.14.0",
            "released": "2026-10-28",
            "seenAt": "2026-11-07T00:14:14.070954549Z"
          }
        ],
        "githubStars": 16,
        "npmWeekly": 1380,
        "pypiWeekly": 7524,
        "securityTxt": {
          "url": "https://upload-post.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:40.147517528Z"
        },
        "llmsTxt": {
          "url": "https://docs.upload-post.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:34:14.58453628Z"
        },
        "domain": {
          "domain": "upload-post.com",
          "registered": "2024-11-02",
          "source": "https://rdap.verisign.com/com/v1/domain/upload-post.com",
          "checkedAt": "2026-11-01T14:20:31.962225539Z"
        },
        "pages": [
          {
            "url": "https://www.upload-post.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-07T14:36:18.772325187Z",
            "changedAt": "2026-11-03T08:12:36.960177015Z",
            "fingerprint": "c856535f7377"
          },
          {
            "url": "https://www.upload-post.com/data-and-privacy-policy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-07T14:36:16.557502746Z",
            "changedAt": "2026-11-02T07:39:14.511870024Z",
            "fingerprint": "e18217af5032"
          },
          {
            "url": "https://www.upload-post.com/terms-of-use/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:36:20.699302663Z",
            "changedAt": "2026-11-02T07:39:18.829542139Z",
            "fingerprint": "c8a3239966d8"
          }
        ],
        "mcpTools": {
          "url": "https://mcp.upload-post.com/mcp",
          "checkedAt": "2026-11-07T01:48:53.341459729Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:48:53.341459729Z"
        },
        "github": {
          "repo": "upload-post/upload-post-mcp",
          "checkedAt": "2026-11-02T09:34:18.083182158Z",
          "stars": 13,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-11-01T20:10:10Z",
          "openIssues": 3,
          "openPRs": 0,
          "issuesOpened90d": 5,
          "issuesClosed90d": 2,
          "prsMerged90d": 8,
          "replies": {
            "sampled": 7,
            "unanswered": 3,
            "medianDays": 56.3
          }
        },
        "updatedAt": "2026-11-08T00:56:11.767349868Z"
      }
    },
    "edges": [
      {
        "by": 39,
        "category": "maintenance",
        "leads": "upload-post",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Registry entry io.twitterapi/mcp-server updated 6 November 2026 (30). No dated changelog (0). Support channel not checked (0 of 15). Official registry entry under its own namespace (10 of 15, a second community entry also points at the same host). No package health read (0). 30 + 0 + 0 + 10 + 0 = 40. Registry presence read from Anchor Terminal's own daily import of the official MCP registry (/api/v1/registry.json, 6 November 2026), not the registry's API.",
          "b": "MCP tags v0.17.1 and v0.17.2 on 28 October 2026, 7 days before this check (30). In the 90 days from 6 August, MCP tags v0.8.0 and v0.10.0 (31 August), v0.11.0 (7 September), v0.11.1 (9 September), v0.11.2 (25 September), v0.11.3 and v0.11.4 (27 September), v0.17.1 and v0.17.2 (28 October) (20). Commits landed in every week of October, under five author names. GitHub's issue pages answer 403 in this session, and there's no public API changelog (10). Official registry entry com.upload-post/mcp, carried from the 1 October reading; server.json in the repository declares that name at 0.17.3 (15). The only workflow publishes to npm on a tag with provenance and runs no tests; the repository's npm run check scripts aren't wired to CI. Versions 0.11.5 to 0.17.0 and 0.17.3 were bumped in package.json without tags, and npm couldn't be read to say which were published (4)."
        },
        "scores": {
          "a": 40,
          "b": 79
        }
      },
      {
        "by": 32,
        "category": "transparency",
        "leads": "upload-post",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The MCP package is MIT on npm; the service is closed under terms from September 2025 that don't name the company, which appears in the footer as Prism Digital, LLC of Newark, Delaware (15). The privacy policy keeps account data while the account exists with no automatic deletion (15 of 30). No deprecation policy (0). Subprocessors not listed in the pages read (5 of 20). 15 + 15 + 0 + 5 = 35.",
          "b": "Closed API under clear terms from TONVI TECH SL (CIF B-19780394, Málaga), version 2.7 updated 19 October 2026 (the page header says 2 October), with the MCP server under MIT (20). Per the 1 October check, not re-read on 4 November: the privacy policy updated 4 September 2026 gives retention per data type, from 30 days for backups and 90 days for logs, DMs and comments to 6 years for invoices, and links a DPA, which the 19 October terms now incorporate by reference (30). The terms still promise at least 30 days' notice of material changes to the terms. No API deprecation policy (8). Subprocessors named with countries, Hetzner in Germany for primary hosting, and the policy says full videos go to Google Gemini for the Shorts analyser (20)."
        },
        "scores": {
          "a": 41,
          "b": 73
        }
      },
      {
        "by": 19,
        "category": "schema",
        "leads": "upload-post",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "12 tools read from tools/list with JSON Schema inputs (25). llms.txt (10). Short descriptions of what each returns (10 of 20). Typed inputs with two enums (10 of 15). Examples on the docs page, errors described only as 429 (7 of 15). No changelog found (404); registry version 1.0.1 (0). 25 + 10 + 10 + 10 + 7 + 0 = 62.",
          "b": "Per the 1 October check, not re-read on 4 November (docs host paused under the terms): OpenAPI 3.0.1 at docs.upload-post.com/openapi.json with 22 paths, fewer than the API's documented surface. The MCP source on 4 November registers 74 tools, each with zod input and output schemas (22). llms.txt indexing about 80 pages, plus llms-full.txt (10). Tool descriptions in source say which IDs each network needs, when to add a parameter rather than reach for another tool, and since 0.17.0 which calls need the user's approval (17). Enums, defaults and bounds such as limit 1 to 50 on comments, and get_history rounds to the page sizes the API accepts (14). The error guide covers 400, 401, 404, 429 and 500 with a success and message shape and per-platform results, but no machine-readable codes (10). No API changelog. The MCP repo cuts GitHub releases with generated notes from tags (8)."
        },
        "scores": {
          "a": 62,
          "b": 81
        }
      },
      {
        "by": 17,
        "category": "reliability",
        "leads": "upload-post",
        "name": "Reliability",
        "reasons": {
          "a": "No status page found (0). No incident history (5). Per-account QPS limits documented by tier (15). 'Hitting the ceiling returns an HTTP 429 (no Retry-After header is sent). Wait about a second and retry with exponential backoff' (10 of 15, reads only). No SLA; the terms disclaim uninterrupted service (0). Not labelled beta (10). 0 + 5 + 15 + 10 + 0 + 10 = 40.",
          "b": "Upload-Post's terms (version 2.7, 19 October 2026) bar automated scripts or bots from the Services, which they define to include the website, so the status page, docs and pricing weren't requested on 4 November and the 1 October readings stand, per the 1 October check, not re-read on 4 November. An own status page at upload-post.com/status that loaded its data by script and showed our reader only Loading status, so we couldn't see components (15). No readable incident history (5). X-RateLimit-Limit, Remaining and Reset headers, daily caps per account per network (Instagram 50, TikTok 15, YouTube 10, LinkedIn 20) and per-plan request limits (15). The rate-limits guide says to wait for X-RateLimit-Reset, back off exponentially and send an Idempotency-Key on every upload, though the error guide and spec don't mention the key and there's no Retry-After (12). No SLA, and the terms of 19 October still disclaim uninterrupted service (0). GA (10)."
        },
        "scores": {
          "a": 40,
          "b": 57
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "twitterapi-io-mcp",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No machine payment protocol (0). Per-result prices public (20). Up to $1 in free credits, no card (20). A Google sign-in in a browser gets the key (0). 0 + 20 + 20 + 0 = 40.",
          "b": "Per the 1 October check, not re-read on 4 November (pricing page on a host paused under the terms). No x402 or other machine payment (0). Plan prices are public, with FFmpeg minutes and Shorts analyses per plan and a $19 a month X link add-on, but no per-call price (10). Free plan of 2 profiles and 10 uploads a month without TikTok, no card (20). A person has to sign up in a browser for the key, or approve OAuth in a client (0)."
        },
        "scores": {
          "a": 40,
          "b": 30
        }
      },
      {
        "by": 6,
        "category": "ergonomics",
        "leads": "twitterapi-io-mcp",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "12 compact tools, about 12 KB (15). Cursor-based paging on followers and search (18 of 20). 429 handling documented (10 of 20). All 12 annotated read-only (20). Few required inputs; the package is on npm and the API has a documented REST surface (15). 15 + 18 + 10 + 20 + 15 = 78.",
          "b": "74 MCP tools in source on 4 November (59 on 1 October), with no toolsets or dynamic loading; 0.13.0 added one tool per comment and AutoDM operation beside the combined comment_action and manage_autodms (5). Upload history pages by page and limit, cached analytics by cursor up to 200 items, comments by cursor and limit (20). Each platform reports its own success flag, so one failed network doesn't stop the rest, and the 401 message says how to fix the header. No error codes (14). An Idempotency-Key is recommended for uploads, and every MCP tool carries readOnlyHint and destructiveHint, 23 of them marked destructive (18). Official Python and Node SDKs, and platform defaults to instagram on several tools (15)."
        },
        "scores": {
          "a": 78,
          "b": 72
        }
      }
    ],
    "facts": [
      {
        "a": "MCP server",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Prism Digital, LLC",
        "b": "Upload-Post",
        "name": "Vendor"
      },
      {
        "a": "https://mcp.twitterapi.io/mcp",
        "b": "https://api.upload-post.com/api",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "pay-per-use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "MIT",
        "name": "Licence"
      },
      {
        "a": "12",
        "b": "74",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.twitterapi/mcp-server",
        "b": "com.upload-post/mcp",
        "name": "MCP registry"
      },
      {
        "a": "none",
        "b": "2026-10-28",
        "name": "Last release"
      },
      {
        "a": "not read yet",
        "b": "2026-10-02",
        "name": "Terms last updated"
      },
      {
        "a": "not read yet",
        "b": "2026-09-04",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "8 stars, 1.9k npm/wk, 6.2k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Upload-Post API + MCP scores 50.6 (D) on agent readiness against TwitterAPI.io MCP's 49.3 (D), and leads in 4 of 7 scored categories. TwitterAPI.io MCP leads on agent ergonomics and payments \u0026 pricing.",
        "question": "Which is better for AI agents, TwitterAPI.io MCP or Upload-Post API + MCP?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do TwitterAPI.io MCP and Upload-Post API + MCP need an API key?"
      },
      {
        "answer": "Yes. TwitterAPI.io MCP has a hosted endpoint at https://mcp.twitterapi.io/mcp and Upload-Post API + MCP at https://api.upload-post.com/api.",
        "question": "Can an agent call TwitterAPI.io MCP and Upload-Post API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 78 against 72",
          "Payments \u0026 pricing, 40 against 30"
        ],
        "also": [
          "No incidents deducted, where Upload-Post API + MCP loses 9 points for them"
        ],
        "goodFor": "Agents that need to read X posts, profiles and followers cheaply, where a third-party source is acceptable.",
        "slug": "twitterapi-io-mcp",
        "watchFor": "A third-party X data service, not X's own API"
      },
      {
        "aheadOn": [
          "Reliability, 57 against 40",
          "Schema \u0026 documentation, 81 against 62",
          "Maintenance \u0026 community, 79 against 40",
          "Transparency \u0026 trust, 73 against 41"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "Video-heavy publishing to TikTok, Reels and Shorts at a low price, and for white-label products that link end users through JWT connect pages.",
        "slug": "upload-post",
        "watchFor": "One account key with no scopes, and the MCP's OAuth grants a single mcp.full scope"
      }
    ],
    "history": {
      "twitterapi-io-mcp": null,
      "upload-post": [
        {
          "causes": [
            "security",
            "product"
          ],
          "date": "2026-11-04",
          "delta": -8.3,
          "from": 58.9,
          "fromGrade": "C",
          "to": 50.6,
          "toGrade": "D"
        },
        {
          "causes": [
            "time"
          ],
          "date": "2026-11-03",
          "delta": 0.2,
          "from": 58.7,
          "fromGrade": "C",
          "to": 58.9,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0,
          "from": 58.7,
          "fromGrade": "C",
          "to": 58.7,
          "toGrade": "C"
        }
      ]
    },
    "job": {
      "capability": "social.analytics",
      "name": "Social analytics"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/ayrshare-vs-upload-post.json",
        "title": "Ayrshare API + MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/ayrshare-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blotato-vs-upload-post.json",
        "title": "Blotato vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/blotato-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buffer-vs-upload-post.json",
        "title": "Buffer API + MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/buffer-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-upload-post.json",
        "title": "bundle.social vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/late-vs-upload-post.json",
        "title": "Zernio (formerly Late) API + MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/late-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-upload-post.json",
        "title": "Metricool API + MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mixpost-vs-upload-post.json",
        "title": "Mixpost API + MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/mixpost-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oneup-vs-upload-post.json",
        "title": "OneUp API + MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/oneup-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/post-bridge-vs-upload-post.json",
        "title": "Post Bridge API + MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/post-bridge-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postiz-vs-upload-post.json",
        "title": "Postiz API + MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/postiz-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/publer-vs-upload-post.json",
        "title": "Publer API + MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/publer-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/repostit-vs-upload-post.json",
        "title": "Repostit vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/repostit-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/typefully-vs-upload-post.json",
        "title": "Typefully vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/typefully-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ayrshare-vs-twitterapi-io-mcp.json",
        "title": "Ayrshare API + MCP vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/ayrshare-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blotato-vs-twitterapi-io-mcp.json",
        "title": "Blotato vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/blotato-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buffer-vs-twitterapi-io-mcp.json",
        "title": "Buffer API + MCP vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/buffer-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-twitterapi-io-mcp.json",
        "title": "bundle.social vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/late-vs-twitterapi-io-mcp.json",
        "title": "Zernio (formerly Late) API + MCP vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/late-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-twitterapi-io-mcp.json",
        "title": "Metricool API + MCP vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mixpost-vs-twitterapi-io-mcp.json",
        "title": "Mixpost API + MCP vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/mixpost-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oneup-vs-twitterapi-io-mcp.json",
        "title": "OneUp API + MCP vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/oneup-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/post-bridge-vs-twitterapi-io-mcp.json",
        "title": "Post Bridge API + MCP vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/post-bridge-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postiz-vs-twitterapi-io-mcp.json",
        "title": "Postiz API + MCP vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/postiz-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/publer-vs-twitterapi-io-mcp.json",
        "title": "Publer API + MCP vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/publer-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/socialcannon-vs-twitterapi-io-mcp.json",
        "title": "SocialCannon vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/socialcannon-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sprout-social-vs-twitterapi-io-mcp.json",
        "title": "Sprout Social API vs TwitterAPI.io MCP",
        "url": "https://www.anchorterminal.com/compare/sprout-social-vs-twitterapi-io-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sprout-social-vs-upload-post.json",
        "title": "Sprout Social API vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/sprout-social-vs-upload-post"
      },
      {
        "json": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-x-mcp.json",
        "title": "TwitterAPI.io MCP vs X MCP",
        "url": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-x-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-xpoz-mcp.json",
        "title": "TwitterAPI.io MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/upload-post-vs-x-mcp.json",
        "title": "Upload-Post API + MCP vs X MCP",
        "url": "https://www.anchorterminal.com/compare/upload-post-vs-x-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/upload-post-vs-xpoz-mcp.json",
        "title": "Upload-Post API + MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/upload-post-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/socialcannon-vs-upload-post.json",
        "title": "SocialCannon vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/socialcannon-vs-upload-post"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 17,
        "edge": "upload-post",
        "key": "reliability",
        "name": "Reliability",
        "twitterapi-io-mcp": 40,
        "upload-post": 57,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 19,
        "edge": "upload-post",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "twitterapi-io-mcp": 62,
        "upload-post": 81,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "twitterapi-io-mcp",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "twitterapi-io-mcp": 78,
        "upload-post": 72,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "twitterapi-io-mcp",
        "key": "security",
        "name": "Security \u0026 auth",
        "twitterapi-io-mcp": 37,
        "upload-post": 36,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "twitterapi-io-mcp",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "twitterapi-io-mcp": 40,
        "upload-post": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 39,
        "edge": "upload-post",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "twitterapi-io-mcp": 40,
        "upload-post": 79,
        "weight": 7
      },
      {
        "by": 32,
        "edge": "upload-post",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "twitterapi-io-mcp": 41,
        "upload-post": 73,
        "weight": 7
      }
    ],
    "summary": "Upload-Post API + MCP scores 50.6 (D) on agent readiness against TwitterAPI.io MCP's 49.3 (D), and leads in 4 of 7 scored categories. TwitterAPI.io MCP leads on agent ergonomics and payments \u0026 pricing. Both do social analytics.",
    "tasks": null,
    "tutorials": [
      {
        "title": "Schedule a LinkedIn announcement with Upload-Post",
        "tool": "upload-post",
        "url": "https://www.anchorterminal.com/tutorials/upload-post/"
      }
    ],
    "verdicts": {
      "twitterapi-io-mcp": "TwitterAPI.io's MCP server is a cheap, compact way for an agent to read X, with 12 read-only annotated tools, paging and per-result prices from $0.00015. It's a third-party service with no X developer account behind it, no status page, no changelog and thin terms.",
      "upload-post": "Free plan with 2 profiles and 10 uploads a month, no card, and an MIT-licensed MCP server whose publishing tools now wait for a confirmed second call. One account key with no scopes, OAuth with a single mcp.full scope, and an October session-id flaw whose fix is in no release and off by default."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-upload-post",
    "json": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-upload-post.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-upload-post.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-upload-post.min.md"
  },
  "markdown": "Upload-Post API + MCP scores 50.6 (D) on agent readiness against TwitterAPI.io MCP's 49.3 (D), and leads in 4 of 7 scored categories. TwitterAPI.io MCP leads on agent ergonomics and payments \u0026 pricing. Both do social analytics.\n\n- TwitterAPI.io MCP: grade D, 49.3/100, rank #1101 of 1510. Markdown https://www.anchorterminal.com/tools/twitterapi-io-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/twitterapi-io-mcp.json\n- Upload-Post API + MCP: grade D, 50.6/100, rank #1054 of 1510. Markdown https://www.anchorterminal.com/tools/upload-post.md · JSON https://www.anchorterminal.com/api/v1/tools/upload-post.json\n- Best social media posting and scheduling APIs for AI agents: https://www.anchorterminal.com/best/social-media/index.md\n- All 163 social comparisons: https://www.anchorterminal.com/compare/social-media/index.md\n\n## Which one, for what\n\n### TwitterAPI.io MCP (D)\n\nGood for: Agents that need to read X posts, profiles and followers cheaply, where a third-party source is acceptable.\n\nAhead on:\n- Agent ergonomics, 78 against 72\n- Payments \u0026 pricing, 40 against 30\n\nAlso in its favour:\n- No incidents deducted, where Upload-Post API + MCP loses 9 points for them\n\nWatch for: A third-party X data service, not X's own API\n\n### Upload-Post API + MCP (D)\n\nGood for: Video-heavy publishing to TikTok, Reels and Shorts at a low price, and for white-label products that link end users through JWT connect pages.\n\nAhead on:\n- Reliability, 57 against 40\n- Schema \u0026 documentation, 81 against 62\n- Maintenance \u0026 community, 79 against 40\n- Transparency \u0026 trust, 73 against 41\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: One account key with no scopes, and the MCP's OAuth grants a single mcp.full scope\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Upload-Post API + MCP +39\n\n- TwitterAPI.io MCP (40): Registry entry io.twitterapi/mcp-server updated 6 November 2026 (30). No dated changelog (0). Support channel not checked (0 of 15). Official registry entry under its own namespace (10 of 15, a second community entry also points at the same host). No package health read (0). 30 + 0 + 0 + 10 + 0 = 40. Registry presence read from Anchor Terminal's own daily import of the official MCP registry (/api/v1/registry.json, 6 November 2026), not the registry's API.\n- Upload-Post API + MCP (79): MCP tags v0.17.1 and v0.17.2 on 28 October 2026, 7 days before this check (30). In the 90 days from 6 August, MCP tags v0.8.0 and v0.10.0 (31 August), v0.11.0 (7 September), v0.11.1 (9 September), v0.11.2 (25 September), v0.11.3 and v0.11.4 (27 September), v0.17.1 and v0.17.2 (28 October) (20). Commits landed in every week of October, under five author names. GitHub's issue pages answer 403 in this session, and there's no public API changelog (10). Official registry entry com.upload-post/mcp, carried from the 1 October reading; server.json in the repository declares that name at 0.17.3 (15). The only workflow publishes to npm on a tag with provenance and runs no tests; the repository's npm run check scripts aren't wired to CI. Versions 0.11.5 to 0.17.0 and 0.17.3 were bumped in package.json without tags, and npm couldn't be read to say which were published (4).\n\n### Transparency \u0026 trust: Upload-Post API + MCP +32\n\n- TwitterAPI.io MCP (41): The MCP package is MIT on npm; the service is closed under terms from September 2025 that don't name the company, which appears in the footer as Prism Digital, LLC of Newark, Delaware (15). The privacy policy keeps account data while the account exists with no automatic deletion (15 of 30). No deprecation policy (0). Subprocessors not listed in the pages read (5 of 20). 15 + 15 + 0 + 5 = 35.\n- Upload-Post API + MCP (73): Closed API under clear terms from TONVI TECH SL (CIF B-19780394, Málaga), version 2.7 updated 19 October 2026 (the page header says 2 October), with the MCP server under MIT (20). Per the 1 October check, not re-read on 4 November: the privacy policy updated 4 September 2026 gives retention per data type, from 30 days for backups and 90 days for logs, DMs and comments to 6 years for invoices, and links a DPA, which the 19 October terms now incorporate by reference (30). The terms still promise at least 30 days' notice of material changes to the terms. No API deprecation policy (8). Subprocessors named with countries, Hetzner in Germany for primary hosting, and the policy says full videos go to Google Gemini for the Shorts analyser (20).\n\n### Schema \u0026 documentation: Upload-Post API + MCP +19\n\n- TwitterAPI.io MCP (62): 12 tools read from tools/list with JSON Schema inputs (25). llms.txt (10). Short descriptions of what each returns (10 of 20). Typed inputs with two enums (10 of 15). Examples on the docs page, errors described only as 429 (7 of 15). No changelog found (404); registry version 1.0.1 (0). 25 + 10 + 10 + 10 + 7 + 0 = 62.\n- Upload-Post API + MCP (81): Per the 1 October check, not re-read on 4 November (docs host paused under the terms): OpenAPI 3.0.1 at docs.upload-post.com/openapi.json with 22 paths, fewer than the API's documented surface. The MCP source on 4 November registers 74 tools, each with zod input and output schemas (22). llms.txt indexing about 80 pages, plus llms-full.txt (10). Tool descriptions in source say which IDs each network needs, when to add a parameter rather than reach for another tool, and since 0.17.0 which calls need the user's approval (17). Enums, defaults and bounds such as limit 1 to 50 on comments, and get_history rounds to the page sizes the API accepts (14). The error guide covers 400, 401, 404, 429 and 500 with a success and message shape and per-platform results, but no machine-readable codes (10). No API changelog. The MCP repo cuts GitHub releases with generated notes from tags (8).\n\n### Reliability: Upload-Post API + MCP +17\n\n- TwitterAPI.io MCP (40): No status page found (0). No incident history (5). Per-account QPS limits documented by tier (15). 'Hitting the ceiling returns an HTTP 429 (no Retry-After header is sent). Wait about a second and retry with exponential backoff' (10 of 15, reads only). No SLA; the terms disclaim uninterrupted service (0). Not labelled beta (10). 0 + 5 + 15 + 10 + 0 + 10 = 40.\n- Upload-Post API + MCP (57): Upload-Post's terms (version 2.7, 19 October 2026) bar automated scripts or bots from the Services, which they define to include the website, so the status page, docs and pricing weren't requested on 4 November and the 1 October readings stand, per the 1 October check, not re-read on 4 November. An own status page at upload-post.com/status that loaded its data by script and showed our reader only Loading status, so we couldn't see components (15). No readable incident history (5). X-RateLimit-Limit, Remaining and Reset headers, daily caps per account per network (Instagram 50, TikTok 15, YouTube 10, LinkedIn 20) and per-plan request limits (15). The rate-limits guide says to wait for X-RateLimit-Reset, back off exponentially and send an Idempotency-Key on every upload, though the error guide and spec don't mention the key and there's no Retry-After (12). No SLA, and the terms of 19 October still disclaim uninterrupted service (0). GA (10).\n\n### Payments \u0026 pricing: TwitterAPI.io MCP +10\n\n- TwitterAPI.io MCP (40): No machine payment protocol (0). Per-result prices public (20). Up to $1 in free credits, no card (20). A Google sign-in in a browser gets the key (0). 0 + 20 + 20 + 0 = 40.\n- Upload-Post API + MCP (30): Per the 1 October check, not re-read on 4 November (pricing page on a host paused under the terms). No x402 or other machine payment (0). Plan prices are public, with FFmpeg minutes and Shorts analyses per plan and a $19 a month X link add-on, but no per-call price (10). Free plan of 2 profiles and 10 uploads a month without TikTok, no card (20). A person has to sign up in a browser for the key, or approve OAuth in a client (0).\n\n### Agent ergonomics: TwitterAPI.io MCP +6\n\n- TwitterAPI.io MCP (78): 12 compact tools, about 12 KB (15). Cursor-based paging on followers and search (18 of 20). 429 handling documented (10 of 20). All 12 annotated read-only (20). Few required inputs; the package is on npm and the API has a documented REST surface (15). 15 + 18 + 10 + 20 + 15 = 78.\n- Upload-Post API + MCP (72): 74 MCP tools in source on 4 November (59 on 1 October), with no toolsets or dynamic loading; 0.13.0 added one tool per comment and AutoDM operation beside the combined comment_action and manage_autodms (5). Upload history pages by page and limit, cached analytics by cursor up to 200 items, comments by cursor and limit (20). Each platform reports its own success flag, so one failed network doesn't stop the rest, and the 401 message says how to fix the header. No error codes (14). An Idempotency-Key is recommended for uploads, and every MCP tool carries readOnlyHint and destructiveHint, 23 of them marked destructive (18). Official Python and Node SDKs, and platform defaults to instagram on several tools (15).\n\n## Score by category\n\n| Category | Weight | TwitterAPI.io MCP | Upload-Post API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 40 | 57 | Upload-Post API + MCP +17 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 62 | 81 | Upload-Post API + MCP +19 |\n| Agent ergonomics | 13% (16.2 this run) | 78 | 72 | TwitterAPI.io MCP +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 37 | 36 | TwitterAPI.io MCP +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | TwitterAPI.io MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 40 | 79 | Upload-Post API + MCP +39 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 41 | 73 | Upload-Post API + MCP +32 |\n| Negative events | ≤15 | 0 | -9 | |\n| **Total** | | **49.3 · D** | **50.6 · D** | |\n\n## Facts side by side\n\n| Fact | TwitterAPI.io MCP | Upload-Post API + MCP |\n| --- | --- | --- |\n| Kind | MCP server | HTTP API |\n| Vendor | Prism Digital, LLC | Upload-Post |\n| Hosted endpoint | `https://mcp.twitterapi.io/mcp` | `https://api.upload-post.com/api` |\n| Transports | Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | pay-per-use | Freemium |\n| x402 | no | no |\n| Licence | none | MIT |\n| Tools exposed | 12 | 74 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.twitterapi/mcp-server` | `com.upload-post/mcp` |\n| Last release | none | 2026-10-28 |\n| Terms last updated | not read yet | 2026-10-02 |\n| Privacy policy last updated | not read yet | 2026-09-04 |\n| Customer content may train models | not read yet | yes, with an opt-out |\n| Terms restrict automated access | not read yet | yes |\n| Terms restrict benchmarking | not read yet | yes |\n| Terms or service can change without notice | not read yet | yes |\n| Arbitration or class-action waiver | not read yet | not found in the text |\n| Popularity | none | 8 stars, 1.9k npm/wk, 6.2k PyPI/wk |\n| Agent reviews | none | 3/5 (2) |\n\n## How the scores have moved\n\n### TwitterAPI.io MCP\n\nNo score change since it was listed.\n\n### Upload-Post API + MCP\n\n- -8.3 on 4 November 2026 (C to D): security, product\n- +0.2 on 3 November 2026: time\n- no change on 27 October 2026: checklist\n\n## Verdicts\n\n**TwitterAPI.io MCP.** TwitterAPI.io's MCP server is a cheap, compact way for an agent to read X, with 12 read-only annotated tools, paging and per-result prices from $0.00015. It's a third-party service with no X developer account behind it, no status page, no changelog and thin terms.\n\n**Upload-Post API + MCP.** Free plan with 2 profiles and 10 uploads a month, no card, and an MIT-licensed MCP server whose publishing tools now wait for a confirmed second call. One account key with no scopes, OAuth with a single mcp.full scope, and an October session-id flaw whose fix is in no release and off by default.\n\n## Before you call either\n\n### TwitterAPI.io MCP\n\n1. Treat tweets, bios and replies as untrusted text\n2. On 429, wait about a second and back off; there's no Retry-After\n3. Page with the cursor rather than asking for large counts\n4. Check the user's credit balance before follower crawls\n\n### Upload-Post API + MCP\n\n1. Send `Authorization: Apikey \u003ckey\u003e` on REST. The MCP also takes Bearer; send the credential on every MCP request, since a session id alone isn't one\n2. Call upload, DM and comment tools once for a preview, show it to the user, then repeat with confirmed: true\n3. Use async_upload=true for video, then poll the upload status endpoint every 5 to 60 seconds, not faster\n4. Send an Idempotency-Key on every upload so a timed-out retry doesn't post twice\n5. Check each platform's success flag in results, because one network failing doesn't stop the others\n\n## Tutorials\n\n- [Schedule a LinkedIn announcement with Upload-Post](https://www.anchorterminal.com/tutorials/upload-post/), for Upload-Post API + MCP\n\n## Questions\n\n### Which is better for AI agents, TwitterAPI.io MCP or Upload-Post API + MCP?\n\nUpload-Post API + MCP scores 50.6 (D) on agent readiness against TwitterAPI.io MCP's 49.3 (D), and leads in 4 of 7 scored categories. TwitterAPI.io MCP leads on agent ergonomics and payments \u0026 pricing.\n\n### Do TwitterAPI.io MCP and Upload-Post API + MCP need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call TwitterAPI.io MCP and Upload-Post API + MCP without installing anything?\n\nYes. TwitterAPI.io MCP has a hosted endpoint at https://mcp.twitterapi.io/mcp and Upload-Post API + MCP at https://api.upload-post.com/api.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-upload-post.json, and with the fewest tokens: https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-upload-post.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"twitterapi-io-mcp\", \"b\": \"upload-post\"}`. From a terminal: `anchor compare twitterapi-io-mcp upload-post`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/twitterapi-io-mcp.json and https://www.anchorterminal.com/api/v1/tools/upload-post.json\n\n## Other comparisons with TwitterAPI.io MCP or Upload-Post API + MCP\n\n- [Ayrshare API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/ayrshare-vs-upload-post.md)\n- [Blotato vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/blotato-vs-upload-post.md)\n- [Buffer API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/buffer-vs-upload-post.md)\n- [bundle.social vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/bundle-social-vs-upload-post.md)\n- [Zernio (formerly Late) API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/late-vs-upload-post.md)\n- [Metricool API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/metricool-vs-upload-post.md)\n- [Mixpost API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/mixpost-vs-upload-post.md)\n- [OneUp API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/oneup-vs-upload-post.md)\n- [Post Bridge API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/post-bridge-vs-upload-post.md)\n- [Postiz API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/postiz-vs-upload-post.md)\n- [Publer API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/publer-vs-upload-post.md)\n- [Repostit vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/repostit-vs-upload-post.md)\n- [Typefully vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/typefully-vs-upload-post.md)\n- [Ayrshare API + MCP vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/ayrshare-vs-twitterapi-io-mcp.md)\n- [Blotato vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/blotato-vs-twitterapi-io-mcp.md)\n- [Buffer API + MCP vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/buffer-vs-twitterapi-io-mcp.md)\n- [bundle.social vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/bundle-social-vs-twitterapi-io-mcp.md)\n- [Zernio (formerly Late) API + MCP vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/late-vs-twitterapi-io-mcp.md)\n- [Metricool API + MCP vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/metricool-vs-twitterapi-io-mcp.md)\n- [Mixpost API + MCP vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/mixpost-vs-twitterapi-io-mcp.md)\n- [OneUp API + MCP vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/oneup-vs-twitterapi-io-mcp.md)\n- [Post Bridge API + MCP vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/post-bridge-vs-twitterapi-io-mcp.md)\n- [Postiz API + MCP vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/postiz-vs-twitterapi-io-mcp.md)\n- [Publer API + MCP vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/publer-vs-twitterapi-io-mcp.md)\n- [SocialCannon vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/socialcannon-vs-twitterapi-io-mcp.md)\n- [Sprout Social API vs TwitterAPI.io MCP](https://www.anchorterminal.com/compare/sprout-social-vs-twitterapi-io-mcp.md)\n- [Sprout Social API vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/sprout-social-vs-upload-post.md)\n- [TwitterAPI.io MCP vs X MCP](https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-x-mcp.md)\n- [TwitterAPI.io MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-xpoz-mcp.md)\n- [Upload-Post API + MCP vs X MCP](https://www.anchorterminal.com/compare/upload-post-vs-x-mcp.md)\n- [Upload-Post API + MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/upload-post-vs-xpoz-mcp.md)\n- [SocialCannon vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/socialcannon-vs-upload-post.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "TwitterAPI.io MCP vs Upload-Post API + MCP",
        "url": ""
      }
    ],
    "description": "Upload-Post scores 50.6 (D) to TwitterAPI.io MCP's 49.3 (D) for social analytics. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "TwitterAPI.io MCP D 49.3",
      "Upload-Post API + MCP D 50.6",
      "scores"
    ],
    "h1": "TwitterAPI.io MCP vs Upload-Post API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/twitterapi-io-mcp-vs-upload-post",
    "published": "2026-10-01",
    "section": "tools",
    "title": "TwitterAPI.io MCP vs Upload-Post for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-upload-post"
  },
  "tokens": {
    "markdown": 4650,
    "slim": 2580
  },
  "version": 1
}
