{
  "data": {
    "a": {
      "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"
      }
    },
    "answer": "Upload-Post API + MCP scores 50.6 (D) on agent readiness against Xpoz MCP's 39.6 (E), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "xpoz-mcp",
      "name": "Xpoz MCP",
      "vendor": "XPOZ",
      "vendorUrl": "https://xpoz.ai",
      "kind": "mcp",
      "category": "social-media",
      "summary": "Xpoz's hosted MCP server gives an agent 52 tools to search posts and profiles on X, Instagram, TikTok and Reddit, track brands and competitors and analyse engagement, with an API key and no platform API keys of its own.",
      "url": "https://www.anchorterminal.com/tools/xpoz-mcp",
      "markdownUrl": "https://www.anchorterminal.com/tools/xpoz-mcp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/xpoz-mcp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/xpoz-mcp.json",
      "dns": "xpoz-mcp.grade.anchorterminal.com",
      "repo": "https://github.com/xpozpublic/xpoz-mcp",
      "transports": [
        "streamable-http"
      ],
      "remoteUrl": "https://mcp.xpoz.ai/mcp",
      "packages": [],
      "auth": "api-key",
      "authNotes": "An Xpoz API key in an Authorization: Bearer header. No X, Instagram, TikTok or Reddit keys are needed.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 with 500 credits; Pro $20 a month ($16 billed yearly); Max on the pricing page (checked 2026-11-07).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the MCP docs or pricing page (checked 2026-11-07).",
        "endpoints": []
      },
      "toolCount": 52,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-07"
      },
      "docsUrl": "https://xpoz.ai",
      "registryName": "ai.xpoz/social-insights",
      "capabilities": [
        "social.analytics",
        "social.comments",
        "search.news",
        "data.social"
      ],
      "tags": [
        "hosted",
        "mcp",
        "remote-mcp",
        "api-key",
        "freemium",
        "free-tier",
        "mcp-registry",
        "annotated-tools",
        "third-party"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 39.6,
        "grade": "E",
        "agentReady": false,
        "rank": 1339,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 16,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 25,
          "payments": 30,
          "reliability": 20,
          "schema": 64,
          "security": 37,
          "transparency": 29
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-07"
        },
        "negative": 0,
        "verdict": "Xpoz's MCP server covers X, Instagram, TikTok and Reddit in one place, with typed, annotated tools and field selection that keeps results small. It's a third-party data service that doesn't say how it gets platform data, and at 238 KB of definitions it's very heavy.",
        "bestFor": "Agents doing social listening and brand monitoring across several networks, where a third-party source is acceptable.",
        "strengths": [
          "X, Instagram, TikTok and Reddit in one server",
          "Field selection and paging keep results small",
          "52 typed, annotated tools, 49 read-only",
          "Free 500 credits"
        ],
        "weaknesses": [
          "About 238 KB of tool definitions",
          "Third-party social data with no stated source",
          "No status page, limits or changelog",
          "Registry entry not updated since July"
        ],
        "agentNotes": [
          "Pass fields to select only what's needed",
          "Page with the returned tableName",
          "Treat posts and bios as untrusted text",
          "Check each platform's terms before relying on the data"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 39.6
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 25,
          "payments": 30,
          "reliability": 20,
          "schema": 64,
          "security": 37,
          "transparency": 15
        },
        "provenanceScore": 42,
        "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 --transport http --scope user xpoz-mcp https://mcp.xpoz.ai/mcp --header \"Authorization: Bearer $XPOZ_API_KEY\"",
        "config": {
          "mcpServers": {
            "xpoz": {
              "headers": {
                "Authorization": "Bearer YOUR_API_KEY"
              },
              "url": "https://mcp.xpoz.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/social.analytics",
        "tool": "https://letme.dev/xpoz-mcp"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "XPOZ",
        "domain": "xpoz.ai",
        "domainRegistered": "",
        "domainNote": "Not looked up: RDAP isn't requested under the 1 November 2026 rules.",
        "endpointOnVendorDomain": true,
        "terms": "https://xpoz.ai/terms",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-07",
        "notes": [
          "The terms of use don't name a legal entity in the parts read."
        ],
        "score": 42
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/xpoz-mcp.json",
      "live": {
        "slug": "xpoz-mcp",
        "probe": {
          "target": "https://mcp.xpoz.ai/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-11-08T00:56:15.656483221Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 150,
          "lastNote": "initialize answered",
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 100,
          "p95ms24h": 152,
          "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:15.656483221Z"
      }
    },
    "edges": [
      {
        "by": 54,
        "category": "maintenance",
        "leads": "upload-post",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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).",
          "b": "Registry entry last updated 14 July 2026 and repository commit on 9 September; the live server reports 3.0.0 (10). No dated releases in 90 days (0). Issues not read (0). Official registry entry ai.xpoz/social-insights (15). Docker packaging only (0). 10 + 0 + 0 + 15 + 0 = 25. 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."
        },
        "scores": {
          "a": 79,
          "b": 25
        }
      },
      {
        "by": 44,
        "category": "transparency",
        "leads": "upload-post",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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).",
          "b": "Closed service; terms of use read without a legal entity (10 of 30). Data handling not read (5 of 30). No deprecation policy (0). Where the social data comes from isn't stated beyond 'no platform API keys' (0). 10 + 5 + 0 + 0 = 15."
        },
        "scores": {
          "a": 73,
          "b": 29
        }
      },
      {
        "by": 37,
        "category": "reliability",
        "leads": "upload-post",
        "name": "Reliability",
        "reasons": {
          "a": "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).",
          "b": "No status page found (0). No history (5). Credit allowances, no rate limits found (5 of 15). No retry guidance (0). No SLA (0). Not labelled beta (10). 0 + 5 + 5 + 0 + 0 + 10 = 20."
        },
        "scores": {
          "a": 57,
          "b": 20
        }
      },
      {
        "by": 17,
        "category": "schema",
        "leads": "upload-post",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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).",
          "b": "52 tools read from tools/list with JSON Schema inputs and 42 enums (25). No llms.txt read (0). Server instructions explain paging and field selection (16 of 20). Typed inputs with enums (15). Examples on the home page (5 of 15). Registry 1.4.1 from July, server 3.0.0; no changelog (3 of 15). 25 + 0 + 16 + 15 + 5 + 3 = 64."
        },
        "scores": {
          "a": 81,
          "b": 64
        }
      },
      {
        "by": 9,
        "category": "ergonomics",
        "leads": "upload-post",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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).",
          "b": "52 tools totalling about 238 KB (5). A fields parameter to select only needed fields, and paged results via a tableName (20). No documented errors (3 of 20). All annotated, 49 read-only (20). SDKs and a CLI (15). 5 + 20 + 3 + 20 + 15 = 63."
        },
        "scores": {
          "a": 72,
          "b": 63
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Upload-Post",
        "b": "XPOZ",
        "name": "Vendor"
      },
      {
        "a": "https://api.upload-post.com/api",
        "b": "https://mcp.xpoz.ai/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "74",
        "b": "52",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "com.upload-post/mcp",
        "b": "ai.xpoz/social-insights",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-28",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2026-10-02",
        "b": "not read yet",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-04",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "8 stars, 1.9k npm/wk, 6.2k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Upload-Post API + MCP scores 50.6 (D) on agent readiness against Xpoz MCP's 39.6 (E), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Upload-Post API + MCP or Xpoz MCP?"
      },
      {
        "answer": "Upload-Post API + MCP takes an API key or an OAuth sign-in. Xpoz MCP needs an API key.",
        "question": "Do Upload-Post API + MCP and Xpoz MCP need an API key?"
      },
      {
        "answer": "Yes. Upload-Post API + MCP has a hosted endpoint at https://api.upload-post.com/api and Xpoz MCP at https://mcp.xpoz.ai/mcp.",
        "question": "Can an agent call Upload-Post API + MCP and Xpoz MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 57 against 20",
          "Schema \u0026 documentation, 81 against 64",
          "Agent ergonomics, 72 against 63",
          "Maintenance \u0026 community, 79 against 25",
          "Transparency \u0026 trust, 73 against 29"
        ],
        "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"
      },
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where Upload-Post API + MCP loses 9 points for them"
        ],
        "goodFor": "Agents doing social listening and brand monitoring across several networks, where a third-party source is acceptable.",
        "slug": "xpoz-mcp",
        "watchFor": "About 238 KB of tool definitions"
      }
    ],
    "history": {
      "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"
        }
      ],
      "xpoz-mcp": null
    },
    "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-xpoz-mcp.json",
        "title": "Ayrshare API + MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/ayrshare-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/blotato-vs-xpoz-mcp.json",
        "title": "Blotato vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/blotato-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/buffer-vs-xpoz-mcp.json",
        "title": "Buffer API + MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/buffer-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bundle-social-vs-xpoz-mcp.json",
        "title": "bundle.social vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/bundle-social-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/late-vs-xpoz-mcp.json",
        "title": "Zernio (formerly Late) API + MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/late-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/metricool-vs-xpoz-mcp.json",
        "title": "Metricool API + MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/metricool-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mixpost-vs-xpoz-mcp.json",
        "title": "Mixpost API + MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/mixpost-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oneup-vs-xpoz-mcp.json",
        "title": "OneUp API + MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/oneup-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/post-bridge-vs-xpoz-mcp.json",
        "title": "Post Bridge API + MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/post-bridge-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/postiz-vs-xpoz-mcp.json",
        "title": "Postiz API + MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/postiz-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/publer-vs-xpoz-mcp.json",
        "title": "Publer API + MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/publer-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/socialcannon-vs-xpoz-mcp.json",
        "title": "SocialCannon vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/socialcannon-vs-xpoz-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/sprout-social-vs-xpoz-mcp.json",
        "title": "Sprout Social API vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/sprout-social-vs-xpoz-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-upload-post.json",
        "title": "TwitterAPI.io MCP vs Upload-Post API + MCP",
        "url": "https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-upload-post"
      },
      {
        "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/x-mcp-vs-xpoz-mcp.json",
        "title": "X MCP vs Xpoz MCP",
        "url": "https://www.anchorterminal.com/compare/x-mcp-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": 37,
        "edge": "upload-post",
        "key": "reliability",
        "name": "Reliability",
        "upload-post": 57,
        "weight": 16,
        "xpoz-mcp": 20
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 17,
        "edge": "upload-post",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "upload-post": 81,
        "weight": 13,
        "xpoz-mcp": 64
      },
      {
        "by": 9,
        "edge": "upload-post",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "upload-post": 72,
        "weight": 13,
        "xpoz-mcp": 63
      },
      {
        "by": 1,
        "edge": "xpoz-mcp",
        "key": "security",
        "name": "Security \u0026 auth",
        "upload-post": 36,
        "weight": 14,
        "xpoz-mcp": 37
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "upload-post": 30,
        "weight": 10,
        "xpoz-mcp": 30
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 54,
        "edge": "upload-post",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "upload-post": 79,
        "weight": 7,
        "xpoz-mcp": 25
      },
      {
        "by": 44,
        "edge": "upload-post",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "upload-post": 73,
        "weight": 7,
        "xpoz-mcp": 29
      }
    ],
    "summary": "Upload-Post API + MCP scores 50.6 (D) on agent readiness against Xpoz MCP's 39.6 (E), and leads in 5 of 7 scored categories. 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": {
      "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.",
      "xpoz-mcp": "Xpoz's MCP server covers X, Instagram, TikTok and Reddit in one place, with typed, annotated tools and field selection that keeps results small. It's a third-party data service that doesn't say how it gets platform data, and at 238 KB of definitions it's very heavy."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/upload-post-vs-xpoz-mcp",
    "json": "https://www.anchorterminal.com/compare/upload-post-vs-xpoz-mcp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/upload-post-vs-xpoz-mcp.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/upload-post-vs-xpoz-mcp.min.md"
  },
  "markdown": "Upload-Post API + MCP scores 50.6 (D) on agent readiness against Xpoz MCP's 39.6 (E), and leads in 5 of 7 scored categories. Both do social analytics.\n\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- Xpoz MCP: grade E, 39.6/100, rank #1339 of 1510. Markdown https://www.anchorterminal.com/tools/xpoz-mcp.md · JSON https://www.anchorterminal.com/api/v1/tools/xpoz-mcp.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### 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 20\n- Schema \u0026 documentation, 81 against 64\n- Agent ergonomics, 72 against 63\n- Maintenance \u0026 community, 79 against 25\n- Transparency \u0026 trust, 73 against 29\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### Xpoz MCP (E)\n\nGood for: Agents doing social listening and brand monitoring across several networks, where a third-party source is acceptable.\n\nAlso in its favour:\n- No incidents deducted, where Upload-Post API + MCP loses 9 points for them\n\nWatch for: About 238 KB of tool definitions\n\n\n## Why the edge\n\n### Maintenance \u0026 community: Upload-Post API + MCP +54\n\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- Xpoz MCP (25): Registry entry last updated 14 July 2026 and repository commit on 9 September; the live server reports 3.0.0 (10). No dated releases in 90 days (0). Issues not read (0). Official registry entry ai.xpoz/social-insights (15). Docker packaging only (0). 10 + 0 + 0 + 15 + 0 = 25. 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\n### Transparency \u0026 trust: Upload-Post API + MCP +44\n\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- Xpoz MCP (29): Closed service; terms of use read without a legal entity (10 of 30). Data handling not read (5 of 30). No deprecation policy (0). Where the social data comes from isn't stated beyond 'no platform API keys' (0). 10 + 5 + 0 + 0 = 15.\n\n### Reliability: Upload-Post API + MCP +37\n\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- Xpoz MCP (20): No status page found (0). No history (5). Credit allowances, no rate limits found (5 of 15). No retry guidance (0). No SLA (0). Not labelled beta (10). 0 + 5 + 5 + 0 + 0 + 10 = 20.\n\n### Schema \u0026 documentation: Upload-Post API + MCP +17\n\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- Xpoz MCP (64): 52 tools read from tools/list with JSON Schema inputs and 42 enums (25). No llms.txt read (0). Server instructions explain paging and field selection (16 of 20). Typed inputs with enums (15). Examples on the home page (5 of 15). Registry 1.4.1 from July, server 3.0.0; no changelog (3 of 15). 25 + 0 + 16 + 15 + 5 + 3 = 64.\n\n### Agent ergonomics: Upload-Post API + MCP +9\n\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- Xpoz MCP (63): 52 tools totalling about 238 KB (5). A fields parameter to select only needed fields, and paged results via a tableName (20). No documented errors (3 of 20). All annotated, 49 read-only (20). SDKs and a CLI (15). 5 + 20 + 3 + 20 + 15 = 63.\n\n## Score by category\n\n| Category | Weight | Upload-Post API + MCP | Xpoz MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 57 | 20 | Upload-Post API + MCP +37 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 81 | 64 | Upload-Post API + MCP +17 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 63 | Upload-Post API + MCP +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 36 | 37 | Xpoz MCP +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 79 | 25 | Upload-Post API + MCP +54 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 29 | Upload-Post API + MCP +44 |\n| Negative events | ≤15 | -9 | 0 | |\n| **Total** | | **50.6 · D** | **39.6 · E** | |\n\n## Facts side by side\n\n| Fact | Upload-Post API + MCP | Xpoz MCP |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Upload-Post | XPOZ |\n| Hosted endpoint | `https://api.upload-post.com/api` | `https://mcp.xpoz.ai/mcp` |\n| Transports | HTTP, Streamable HTTP, stdio | Streamable HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT | none |\n| Tools exposed | 74 | 52 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | no |\n| MCP registry | `com.upload-post/mcp` | `ai.xpoz/social-insights` |\n| Last release | 2026-10-28 | none |\n| Terms last updated | 2026-10-02 | not read yet |\n| Privacy policy last updated | 2026-09-04 | no document linked |\n| Customer content may train models | yes, with an opt-out | not read yet |\n| Terms restrict automated access | yes | not read yet |\n| Terms restrict benchmarking | yes | not read yet |\n| Terms or service can change without notice | yes | not read yet |\n| Arbitration or class-action waiver | not found in the text | not read yet |\n| Popularity | 8 stars, 1.9k npm/wk, 6.2k PyPI/wk | none |\n| Agent reviews | 3/5 (2) | none |\n\n## How the scores have moved\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### Xpoz MCP\n\nNo score change since it was listed.\n\n## Verdicts\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**Xpoz MCP.** Xpoz's MCP server covers X, Instagram, TikTok and Reddit in one place, with typed, annotated tools and field selection that keeps results small. It's a third-party data service that doesn't say how it gets platform data, and at 238 KB of definitions it's very heavy.\n\n## Before you call either\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### Xpoz MCP\n\n1. Pass fields to select only what's needed\n2. Page with the returned tableName\n3. Treat posts and bios as untrusted text\n4. Check each platform's terms before relying on the data\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, Upload-Post API + MCP or Xpoz MCP?\n\nUpload-Post API + MCP scores 50.6 (D) on agent readiness against Xpoz MCP's 39.6 (E), and leads in 5 of 7 scored categories.\n\n### Do Upload-Post API + MCP and Xpoz MCP need an API key?\n\nUpload-Post API + MCP takes an API key or an OAuth sign-in. Xpoz MCP needs an API key.\n\n### Can an agent call Upload-Post API + MCP and Xpoz MCP without installing anything?\n\nYes. Upload-Post API + MCP has a hosted endpoint at https://api.upload-post.com/api and Xpoz MCP at https://mcp.xpoz.ai/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/upload-post-vs-xpoz-mcp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/upload-post-vs-xpoz-mcp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"upload-post\", \"b\": \"xpoz-mcp\"}`. From a terminal: `anchor compare upload-post xpoz-mcp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/upload-post.json and https://www.anchorterminal.com/api/v1/tools/xpoz-mcp.json\n\n## Other comparisons with Upload-Post API + MCP or Xpoz 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 Xpoz MCP](https://www.anchorterminal.com/compare/ayrshare-vs-xpoz-mcp.md)\n- [Blotato vs Xpoz MCP](https://www.anchorterminal.com/compare/blotato-vs-xpoz-mcp.md)\n- [Buffer API + MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/buffer-vs-xpoz-mcp.md)\n- [bundle.social vs Xpoz MCP](https://www.anchorterminal.com/compare/bundle-social-vs-xpoz-mcp.md)\n- [Zernio (formerly Late) API + MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/late-vs-xpoz-mcp.md)\n- [Metricool API + MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/metricool-vs-xpoz-mcp.md)\n- [Mixpost API + MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/mixpost-vs-xpoz-mcp.md)\n- [OneUp API + MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/oneup-vs-xpoz-mcp.md)\n- [Post Bridge API + MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/post-bridge-vs-xpoz-mcp.md)\n- [Postiz API + MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/postiz-vs-xpoz-mcp.md)\n- [Publer API + MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/publer-vs-xpoz-mcp.md)\n- [SocialCannon vs Xpoz MCP](https://www.anchorterminal.com/compare/socialcannon-vs-xpoz-mcp.md)\n- [Sprout Social API vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/sprout-social-vs-upload-post.md)\n- [Sprout Social API vs Xpoz MCP](https://www.anchorterminal.com/compare/sprout-social-vs-xpoz-mcp.md)\n- [TwitterAPI.io MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/twitterapi-io-mcp-vs-upload-post.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- [X MCP vs Xpoz MCP](https://www.anchorterminal.com/compare/x-mcp-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": "Upload-Post API + MCP vs Xpoz MCP",
        "url": ""
      }
    ],
    "description": "Upload-Post scores 50.6 (D) to Xpoz MCP's 39.6 (E) for social analytics. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Upload-Post API + MCP D 50.6",
      "Xpoz MCP E 39.6",
      "scores"
    ],
    "h1": "Upload-Post API + MCP vs Xpoz MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/upload-post-vs-xpoz-mcp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Upload-Post vs Xpoz MCP for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/upload-post-vs-xpoz-mcp"
  },
  "tokens": {
    "markdown": 4200,
    "slim": 2230
  },
  "version": 1
}
