Postcard No account · nothing stored

Link preview checker

No image on X? See why.

Paste a link. Postcard reads the page the way X, Facebook and LinkedIn do, measures the real share image, and shows each card with every problem and the exact tags that fix it.

Try
Real measurements

The image, not the tag.

Postcard downloads the share image and reads its true pixel size, format and file size from the bytes, then checks them against each platform's documented rules: X 300x157 minimum at 2:1 and under 5 MB, Facebook 200x200 minimum and 600x315 for the large card, LinkedIn 1200x627.

Like a crawler

What X actually reads.

No JavaScript, redirects followed, twitter: tags first then og: tags, the last twitter:card wins. It catches tags added by React code, an image path that returns your app's HTML, a relative URL, an SVG, and robots.txt rules that shut out Twitterbot.

The fix

Tags you can paste.

Every problem comes with its fix, and the result ends with a corrected <meta> block using the image's real width and height. Platforms cache cards (X for about 7 days), so after a fix, rescrape with each platform's debugger.

Use with AI

Let your agent check the card before you post.

Add the MCP server https://postcard.clawhard.com/mcp (tools postcard_check_link_preview for live pages and postcard_check_preview_tags for HTML that is not deployed yet) or call the JSON API described at /openapi.json. After a deploy, a coding agent sees the real image size and every broken tag, fixes the meta tags and checks again.

Use Postcard with your AI

Add Postcard to ChatGPT, Claude, Cursor or any assistant that supports MCP, then ask it to check how a link looks when shared on X, Facebook, LinkedIn and chat apps, with the share image's real size and the meta tags that fix it. No key, no login.

https://postcard.clawhard.com/mcp

Claude Code

claude mcp add --transport http clawhard-postcard https://postcard.clawhard.com/mcp

Claude (web and desktop)

Press Add to Claude, or open Customize → Connectors → Add custom connector, paste the URL and leave sign-in empty.

ChatGPT

Open Plugins → + → Add custom MCP server, paste the URL, choose No authentication, accept the warning, then Create as a plugin. Start a chat and type @ to use it.

More ways to connect

Codex

codex mcp add clawhard-postcard --url https://postcard.clawhard.com/mcp

Gemini CLI

gemini mcp add --transport http clawhard-postcard https://postcard.clawhard.com/mcp

Cursor, Windsurf and others (mcp.json)

{
  "mcpServers": {
    "clawhard-postcard": { "url": "https://postcard.clawhard.com/mcp" }
  }
}

VS Code (.vscode/mcp.json)

{
  "servers": {
    "clawhard-postcard": { "type": "http", "url": "https://postcard.clawhard.com/mcp" }
  }
}

No desktop app? Add to VS Code in the browser · VS Code Insiders · Add to Cursor in the browser

Other apps: Goose · LM Studio. Any MCP client works with the URL (Streamable HTTP, no headers).

Common questions

Postcard checks the card a link shows when it is shared: it fetches the page like a link crawler, reads the og: and twitter: tags with X's fallbacks, downloads the share image to read its real size, format and bytes, checks robots.txt for the crawlers, and returns the card X, Facebook, LinkedIn and chat apps will build, every problem with its fix, and a corrected tag block. No account.

Why does my link show no image on X?

The usual causes: no og:image or twitter:image tag; a relative image path (it must be a full https URL); an image URL that returns an HTML page or a 404; an SVG (X does not support SVG); an image smaller than 300x157 for summary_large_image or over 5 MB; robots.txt blocking Twitterbot; or tags added by JavaScript, which X's crawler does not run. X also caches cards for about 7 days, so an old card can stick after a fix.

What size should an og:image be?

1200x630 pixels (about 1.91:1) as a PNG or JPG well under 5 MB works on X (summary_large_image shows it at 2:1, with slight cropping), Facebook (large card from 600x315, minimum 200x200, 8 MB limit) and LinkedIn (1200x627 minimum for the sharing image, 5 MB limit).

Do I need twitter: tags if I have Open Graph tags?

Mostly not. X reads twitter:title, twitter:description and twitter:image and falls back to og:title, og:description and og:image when they are missing. It does need twitter:card (summary_large_image for the big image card), which has no og: equivalent.

Why does my React or Vue app show a blank card?

Link crawlers read the HTML your server sends and do not run JavaScript, so tags set by client-side code are never seen. Render them on the server (Next.js metadata, Nuxt SSR) or put static tags in index.html.

I fixed the tags, why does the old card still show?

Platforms cache cards: X for about 7 days after a link is first posted, and Facebook and LinkedIn keep their own copies. Use Facebook's Sharing Debugger or LinkedIn's Post Inspector to rescrape, or share a new URL (for example with a query string).

Can an AI assistant use Postcard?

Yes. Add the MCP server https://postcard.clawhard.com/mcp (tools postcard_check_link_preview for live pages and postcard_check_preview_tags for pasted HTML) or call the JSON API described at /openapi.json. It is also on the Clawhard MCP server at https://mcp.clawhard.com/mcp.

For AI assistants and developers: llms.txt · API (OpenAPI) · MCP server · sitemap