Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
62
A2A v1.3.0

OpenTweet

opentweet.io

Post and schedule to X, Bluesky and LinkedIn via MCP. Create, schedule and publish posts and threads, view X analytics, run an evergreen content queue, find inspiration, and generate AI images and video, all from your AI assistant.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain opentweet.io via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership
🔔 Watch this agent. Get an email when its card drifts, a skill price moves, a payment rail changes, a new settlement wallet appears, inflow spikes, or its verification status changes. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
19/100
grade F · 9 criteria
Uptime
accumulating
1/5 direct probes · 30d
~127 ms response
Observed inflow · 30d
—
no payment wallet declared
Invocations · 7d
0
no calls observed
Card drift · 7d
changed
1 snapshots tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

F
Conformance score: 19/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾ click to collapse breakdown ▴
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
fail Live JSON-RPC 5/25
Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response.
How to earn +20 points
Respond live on JSON-RPC
Implement SendMessage for v1.0 (or message/send for v0.x), negotiate A2A-Version, and return a schema-valid JSON-RPC response. Our probe sends a no-op heartbeat; see the methodology page for the exact payload. If your endpoint already answers, nothing is broken at your end: a stored result older than 30 days is scored as dated, and the points come back on the next probe.
Docs →
fail Protocol version 0/10
No protocolVersion in card.
How to earn +10 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` (Major.Minor, no patch number — §3.6) to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs →
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
fail Skill declaration 0/10
No skills declared in card. Hard to route to.
How to earn +10 points
Declare your skills
Add at least one entry to the `skills` array on the AgentCard, each with `id`, `name`, `description`, `tags` — `description` and `tags` are REQUIRED on AgentSkill since A2A v1.0, and tags are what discovery filters match on. We canonicalise these into the global skill taxonomy on next probe.
Docs →
fail Verified Identity 0/10
No provider organisation declared. Anonymous agent.
How to earn +10 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 4/5
seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.
⚠ Card drift detected. This agent's agent-card.json changed within the last 7 days. We track these so downstream callers can react.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.

Card history

1 snapshot Every change to agent-card.json
Captured Hash
2026-10-02 05:46:19 current e64a69eb66b8… view →
Uptime
accumulating
1 direct probes · 30d
Response
36ms
last direct probe
Skills
0
declared
Streaming
—
SSE-capable

Endpoints

Agent cardhttps://opentweet.io/.well-known/mcp.json
Discovered via
smithery

Skills · 1 declared · mapped to canonical taxonomy

OpenTweet

Post and schedule to X, Bluesky and LinkedIn via MCP. Create, schedule and publish posts and threads, view X analytics, run an evergreen content queue, find ins…

canonical Text-to-Speech match 83%

Health · last 1 probes

When HTTP Live JSON-RPC Latency
2026-10-02 05:46:19 200 ✗ 36ms

Cheaper or better alternatives per-skill

↑ 1 higher quality

For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.

Similar agents embedding-nearest

socialync
Draft, schedule, and publish posts to Instagram, TikTok, YouTube, X, Facebook, LinkedIn, Threads, and Bluesky through your own OAuth-authori
q 62%
Content Rabbit
AI-powered social media management. Create, schedule, and publish posts across Twitter/X, Instagram, LinkedIn, TikTok, Threads, Bluesky, Pin
Content Rabbit · q 90%
Automate social media posts with AI content and images across Twitter, LinkedIn & Facebook
Auto-generate & post content using AI This workflow helps you create daily content using just a topic prompt. It writes a tweet, generates a
n8n.io · q 40%
Publish AI social posts from Telegram to LinkedIn, Instagram, Facebook and Threads with OpenAI and Blotato
n8n.io · q 40%
Create AI-driven social media posts and publish to all major platforms
n8n.io · q 40%
Xquik
Search tweets, export followers and replies, retrieve profiles and timelines, monitor accounts, post tweets, and use webhooks, SDKs & MCP. N
Xquik · q 90%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/opentweet.io.svg)](https://agenstry.com/agents/opentweet.io)
[![Verified Business](https://agenstry.com/badge/opentweet.io/identity.svg)](https://agenstry.com/agents/opentweet.io)
[![Uptime](https://agenstry.com/badge/opentweet.io/uptime.svg)](https://agenstry.com/agents/opentweet.io)
[![A2A version](https://agenstry.com/badge/opentweet.io/protocol.svg)](https://agenstry.com/agents/opentweet.io)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
  "name": "OpenTweet",
  "description": "Post and schedule to X, Bluesky and LinkedIn via MCP. Create, schedule and publish posts and threads, view X analytics, run an evergreen content queue, find inspiration, and generate AI images and video, all from your AI assistant.",
  "url": "https://opentweet.io",
  "documentation_url": "https://opentweet.io/twitter-mcp-server",
  "source_url": "https://github.com/opentweetio/mcp-server",
  "npm_package": "@opentweet/mcp-server",
  "version": "1.3.0",
  "protocol_version": "2025-06-18",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://mcp.opentweet.io/mcp",
      "headers": [
        {
          "name": "Authorization",
          "description": "Bearer token using your OpenTweet API key (ot_ prefix). Get one at https://opentweet.io/developer",
          "is_required": true,
          "is_secret": true
        }
      ]
    }
  ],
  "capabilities": {
    "tools": true,
    "resources": true,
    "prompts": true
  },
  "tools": [
    {
      "name": "opentweet_create_tweet",
      "description": "Create a tweet. Can save as draft, schedule for a specific time, or publish immediately to X."
    },
    {
      "name": "opentweet_create_thread",
      "description": "Create a Twitter/X thread (multiple connected tweets posted as a chain)."
    },
    {
      "name": "opentweet_list_tweets",
      "description": "List your tweets with optional filtering by status. Returns paginated results."
    },
    {
      "name": "opentweet_get_tweet",
      "description": "Get full details of a specific tweet by its ID."
    },
    {
      "name": "opentweet_update_tweet",
      "description": "Update an existing tweet. Can change text, category, schedule, or media. Cannot edit already-posted tweets."
    },
    {
      "name": "opentweet_delete_tweet",
      "description": "Permanently delete a tweet. If the tweet was published to X, it is also deleted from X by default."
    },
    {
      "name": "opentweet_publish_tweet",
      "description": "Publish an existing draft or scheduled tweet immediately to X/Twitter."
    },
    {
      "name": "opentweet_schedule_tweet",
      "description": "Schedule an existing draft tweet for a specific date and time."
    },
    {
      "name": "opentweet_batch_schedule",
      "description": "Schedule multiple tweets at once. Provide an array of post IDs with their scheduled dates."
    },
    {
      "name": "opentweet_repurpose_tweet",
      "description": "Repurpose an existing tweet with AI, transforming it into your own voice. Saves the result as a draft by default."
    },
    {
      "name": "opentweet_upload_media",
      "description": "Upload an image or video file to use in tweets. Returns a URL for create_tweet/update_tweet media_urls."
    },
    {
      "name": "opentweet_generate_image",
      "description": "Generate an AI image from a text prompt using Grok Imagine (xAI). Returns a permanent URL ready to use in tweets."
    },
    {
      "name": "opentweet_generate_video",
      "description": "Generate an AI video from a text prompt using Grok Imagine (xAI). Starts the job and polls until complete."
    },
    {
      "name": "opentweet_get_analytics",
      "description": "Get your posting analytics including stats, streaks, trends, category breakdown, and recent activity."
    },
    {
      "name": "opentweet_get_top_posts",
      "description": "Get your top-performing tweets ranked by engagement or another metric."
    },
    {
      "name": "opentweet_get_profile_growth",
      "description": "Get your profile growth metrics over time (followers and engagement trends)."
    },
    {
      "name": "opentweet_get_best_times",
      "description": "Get the best times to post on X based on your historical engagement data."
    },
    {
      "name": "opentweet_analyze_best_times",
      "description": "Trigger a fresh analysis of your posting history to find the best times to post."
    },
    {
      "name": "opentweet_get_content_gaps",
      "description": "Get your content gaps \u2014 topics and angles you have not covered recently."
    },
    {
      "name": "opentweet_search_inspiration",
      "description": "Search X/Twitter for high-performing tweets to find content inspiration, with engagement metrics."
    },
    {
      "name": "opentweet_get_account",
      "description": "Get your OpenTweet account status: subscription plan, daily posting limits, post counts, and connected X accounts."
    },
    {
      "name": "opentweet_list_accounts",
      "description": "List your connected X/Twitter accounts. Use the account IDs with the x_account_id parameter in other tools."
    },
    {
      "name": "opentweet_get_evergreen_settings",
      "description": "Get your evergreen queue settings and pool statistics."
    },
    {
      "name": "opentweet_update_evergreen_settings",
      "description": "Update evergreen queue settings: active state, posts per day, posting times, and default cooldown."
    },
    {
      "name": "opentweet_list_evergreen_posts",
      "description": "List posts in your evergreen pool that will be automatically reposted on rotation."
    },
    {
      "name": "opentweet_get_evergreen_post",
      "description": "Get full details of a specific evergreen post including its recent publishing history."
    },
    {
      "name": "opentweet_add_to_evergreen",
      "description": "Add a post to the evergreen queue pool, by existing post ID or as new evergreen text."
    },
    {
      "name": "opentweet_update_evergreen_post",
      "description": "Update an evergreen post \u2014 its content, cooldown, or paused state."
    },
    {
      "name": "opentweet_remove_from_evergreen",
      "description": "Remove a post from the evergreen pool. The post is converted back to a regular draft, not deleted."
    },
    {
      "name": "opentweet_get_evergreen_history",
      "description": "View the publishing history of evergreen posts \u2014 clones created and posted from the pool."
    },
    {
      "name": "opentweet_create_article",
      "description": "Create a long-form X Article with a title and markdown body. Save as draft or schedule for later."
    },
    {
      "name": "opentweet_get_article",
      "description": "Get full details of a specific X Article by its ID."
    },
    {
      "name": "opentweet_list_articles",
      "description": "List your X Articles with optional status filtering."
    },
    {
      "name": "opentweet_update_article",
      "description": "Update an existing X Article: title, body, or schedule. Cannot edit already-published articles."
    },
    {
      "name": "opentweet_publish_article",
      "description": "Publish a draft or scheduled X Article immediately. Requires an X Premium account (any Premium tier)."
    },
    {
      "name": "opentweet_delete_article",
      "description": "Delete an X Article. If it was published, it is also removed from X."
    }
  ],
  "install": {
    "hosted": {
      "url": "https://mcp.opentweet.io/mcp",
      "config": {
        "mcpServers": {
          "opentweet": {
            "type": "streamable-http",
            "url": "https://mcp.opentweet.io/mcp",
            "headers": {
              "Authorization": "Bearer YOUR_API_KEY"
            }
          }
        }
      }
    },
    "npx": "npx -y @opentweet/mcp-server",
    "config": {
      "mcpServers": {
        "opentweet": {
          "command": "npx",
          "args": [
            "-y",
            "@opentweet/mcp-server"
          ],
          "env": {
            "OPENTWEET_API_KEY": "YOUR_API_KEY"
          }
        }
      }
    }
  },
  "auth": {
    "type": "api_key",
    "env_var": "OPENTWEET_API_KEY",
    "instructions": "Get your API key at https://opentweet.io/developer"
  },
  "categories": [
    "social-media",
    "content-creation",
    "twitter",
    "scheduling",
    "marketing"
  ],
  "pricing": {
    "model": "freemium",
    "free_tier": "7-day trial",
    "paid_from": "$11.99/month"
  }
}