Discord MCP server: let Claude or any agent post to your Discord channel

Add https://postwire.io/api/mcp to your agent as a remote MCP server, paste one channel webhook URL, and the agent posts a message of up to 2,000 characters to that Discord channel with post_to_social, or queues it with schedule_post. There is no bot to create, host or invite: PostWire posts through the channel's own webhook, so it can write to that one channel and nothing else on your server. The free plan includes Discord and the MCP server: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card.

Made for announcements: a release note, a new video, this week's event. generate_posts writes the Discord version in a casual community tone next to the LinkedIn, Bluesky or X version of the same news.

Updated . Written from PostWire's own code; vendor prices read on Oct 9, 2026. Live networks: TikTok, Instagram, YouTube, LinkedIn (personal profiles), Facebook Pages, Bluesky, Mastodon, Telegram, Discord, and X on paid plans.

Set it up and post, step by step

  1. Add PostWire's MCP server to your agent

    In Claude, open PostWire in the connector directory and press Connect. Anywhere else, add the remote server https://postwire.io/api/mcp (Streamable HTTP; OAuth sign-in or an API key) — in Claude Code: claude mcp add --transport http postwire https://postwire.io/api/mcp. Cursor, VS Code, Windsurf, Codex and Gemini CLI configs: MCP client configs.

  2. Sign in with your email

    The first time the agent uses a PostWire tool, a sign-in window asks for your email and a 6-digit code; that also creates a free PostWire account if you have none. No password and no card. Agents that cannot do OAuth send an API key instead (dashboard → API & MCP → Copy key).

  3. Copy the channel's webhook URL

    In Discord, open the channel → Edit Channel → Integrations → Webhooks → New Webhook → Copy Webhook URL. You need permission to manage that channel (server owner or admin). The link looks like https://discord.com/api/webhooks/<id>/<token>.

  4. Connect Discord

    Ask "connect my Discord". create_connect_link gives you a one-hour link; choose Discord there and paste the webhook URL — there is no sign-in screen. PostWire checks that the link is a Discord webhook and asks Discord whether it exists before saving it, so a link copied without its end is refused on the spot, not at the first post.

  5. Let PostWire write the announcement

    "Write the Discord announcement for v2.3 and the LinkedIn post for it." generate_posts returns one draft per network and publishes nothing. Discord's draft is short and friendly, in a community tone, with emojis and links welcome; LinkedIn's is a first-person post with the hook up front.

  6. Post it, or schedule it

    After you approve, the agent calls post_to_social (or schedule_post with a run_at time). To show an image or a video, pass its public https link as photo_url or video_url: PostWire puts the link on its own line under the text and Discord embeds it.

    {
      "name": "post_to_social",
      "arguments": {
        "platforms": ["discord", "linkedin"],
        "per_platform": {
          "discord": { "text": "🚀 v2.3 is out! Dark mode, faster sync and 14 fixes. Changelog: https://example.com/changelog" },
          "linkedin": { "text": "We shipped v2.3 today.\n\nThe one change I would point at …" }
        },
        "photo_url": "https://postwire.io/m/…/v2-3.png"
      }
    }
  7. Check that it went out

    The result lists each network with ok and the id of the Discord message. list_scheduled_posts shows what is still queued and cancel_scheduled_post removes one before it goes out.

The same call from your own code or from a release pipeline: POST /api/post with {"platforms": ["discord"], "text": "…"} and your API key, or the PostWire node in n8n. Prefer to set it up by hand first? Open the dashboard, connect the account under Accounts and copy your key under API & MCP.

Discord MCP servers for posting, side by side

Each vendor's endpoint, sign-in and price, read on its own Discord MCP or plans page on Oct 9, 2026.

ServerEndpointSign-inFree to startCheapest paid planWrites the message
PostWirehttps://postwire.io/api/mcpOAuth 2.1 or API keyFree plan: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card$9/mo — 3 businesses, every network in each postYes — generate_posts writes the Discord message and each other network's from one idea
Upload-Postmcp.upload-post.com/mcpOAuth or API keyFree plan: 2 profiles, 10 uploads a month$24/mo — 5 profilesNot listed

Checked on Oct 9, 2026 (2026-10-09) on each vendor's own pricing or docs page, linked in the first column and below. Monthly billing in USD unless noted. "Not listed" means we could not find it on their page, not that it is missing.

Where PostWire is ahead

  • The announcement is written for Discord, and so is every other network's version: generate_posts turns one piece of news into a Discord message, a LinkedIn post and a Bluesky post in one call.
  • 20 posts a month on the free plan, without a card. Upload-Post's free plan has 10 uploads a month.
  • No password and no key to start: the sign-in window asks for your email and a 6-digit code, and that creates the free account too.
  • The webhook is checked before it is saved, and again later: a wrong or deleted link is caught when you connect, not when a scheduled announcement was due.
  • Discord plus nine more networks in the same call: TikTok, Instagram, YouTube, LinkedIn, Facebook Pages, Bluesky, Mastodon, Telegram, and X on paid plans.
Sources, all read on Oct 9, 2026:

Discord's rules the agent works within

  • One webhook, one channel: the webhook belongs to the channel you created it in, and that is the only place PostWire can post. It cannot read messages, see members or act anywhere else on the server.
  • 2,000 characters per message, Discord's limit for a webhook message. Longer text is cut there.
  • Images and video: sent as a link under the text, which Discord shows as an embed. One media link per message.
  • Deleted webhooks are noticed: if someone removes the webhook in Discord, PostWire's connection check sees it and the dashboard asks you to connect again, before a scheduled post fails.
  • The message is posted by the webhook, under the name and avatar you gave it in Discord — not by your personal account.

Source: PostWire's Discord publisher, read Oct 9, 2026. More on the API itself: Does Discord have an API?

What it does not do

PostWire posts and schedules messages in the channel behind your webhook. It is not a Discord bot: it does not read or search messages, answer mentions, send direct messages, moderate, or manage roles and channels.

Questions people ask

Is there an MCP server that posts to Discord?

Yes. PostWire's hosted MCP server (https://postwire.io/api/mcp) posts a message to your Discord channel from Claude, ChatGPT, Cursor or any MCP client, and can schedule it for later. It is in Claude's connector directory.

Do I need to create or host a Discord bot?

No. You create a webhook in the channel (Edit Channel → Integrations → Webhooks → New Webhook), copy its URL and paste it into PostWire. There is no bot token, no bot to invite and nothing to host.

What can PostWire do on my server?

Post messages to the one channel the webhook belongs to. A webhook cannot read messages, see members or post in other channels, and you can delete it in Discord at any time.

Can it post images or video?

Yes, as a link: pass photo_url or video_url and PostWire adds the link under the text, which Discord shows as an embed. One media link per message.

Can the agent schedule a Discord announcement?

Yes. schedule_post takes a run_at time up to 365 days ahead, or "next_slot" for your next free queue slot. The free plan keeps 3 posts waiting in the queue at once.

Can it read my Discord messages or reply to people?

No. PostWire only publishes. Reading channels, answering mentions and moderation need a Discord bot, which PostWire is not.

How much does it cost?

The free plan includes Discord and the MCP server: 1 business, 20 posts a month, 5 AI drafts a day, 2 networks per post, no card. Starter is $9 a month for 3 businesses and Pro $29 for 10, with every network in each post; paid plans have a 14-day refund.