# Claude MCP: OG images and screenshots from Claude.ai and Claude Desktop

> Add the image API to Claude as a custom connector with OAuth sign-in, no API key. Render OG images, social cards and page screenshots from a Claude chat.

Published 2026-11-04 · https://shareglint.com/en/mcp/claude

Claude can make Open Graph images and page screenshots for you once Shareglint is added as a **custom connector**: in Claude.ai or Claude Desktop you add the URL `https://shareglint.com/mcp`, sign in with your Shareglint account (OAuth, no API key), and Claude can then call `render_image`, `take_screenshot`, `list_templates` and the other tools from any chat. Every render counts against the same monthly quota as the HTTP API — 100 images a month on the Free plan.

This page covers Claude's chat apps. For the terminal agent see [Claude Code](https://shareglint.com/en/mcp/claude-code); for the background on MCP and the other clients, the [overview guide](https://shareglint.com/en/guides/og-images-with-ai-assistants-mcp).

## What you can ask Claude to do

The server publishes these tools: `render_image`, `get_image`, `list_templates`, `get_template`, `create_signed_url`, `get_usage`, `generate_template`, `take_screenshot`, `auto_og_url`, `create_batch`, `get_batch`. In a chat they turn into requests like these:

- **One card from text you paste.** "Here is my post. Make an OG image with the `blog-og` template — title from the headline, eyebrow 'Engineering', site yourblog.com." Claude calls `render_image` and replies with a PNG URL.
- **Several sizes at once.** "Same card, but also square and story size for Instagram." One call with `sizes: ["og", "square", "story"]` returns three URLs, one render each.
- **A screenshot of a live page.** "Take a full-page screenshot of https://example.com/pricing on an iPhone 15, with cookie banners hidden." `take_screenshot` with `device`, `full_page` and `block_cookie_banners`.
- **A tag for your site.** "Give me the og:image meta tag for this card that renders on first visit." `create_signed_url` returns the URL and a ready `<meta>` tag; nothing is charged until a crawler fetches it.
- **A batch from a sheet.** "Make cards for every row of this Google Sheet." `create_batch` with the sheet link, then `get_batch` for progress and the ZIP.
- **Budget questions.** "How many renders do I have left?" `get_usage`.

Claude reads your text and picks the field values; the layout comes from the template, so the title is spelled exactly as you wrote it and every card in a series looks the same. That is the difference from asking Claude, or any image model, to draw a card.

## Add the connector

Anthropic documents the steps in [Add a connector that isn't in the directory](https://claude.com/docs/connectors/custom/remote-mcp) and the [custom connectors help article](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp). For this server:

**Free, Pro, Max or Ultra plan**

1. Open **Customize → Connectors** and click **Add custom connector**.
2. Name it Shareglint and enter the server URL `https://shareglint.com/mcp`.
3. Leave the OAuth client ID and secret empty and click **Add**.
4. Click **Connect**. A Shareglint login opens; sign in (or create a free account) and approve.

The Free plan allows one custom connector, so this one takes your only slot there.

**Team or Enterprise plan**

An Owner adds it once for the organisation in **Organization settings → Connectors → Add → Custom** (choose **Web** if asked) with the same URL. Members then find it under **Customize → Connectors** with a *Custom* label and click **Connect** to sign in with their own Shareglint account.

**If your dialog asks how Claude identifies itself**, choose **Register automatically**. Shareglint supports OAuth dynamic client registration; it does not publish support for "Claude's published identity" (Client ID Metadata Documents), so that option will not work here. For **Authentication**, *Sign in now* and *Sign in when needed* both work.

You cannot change authentication settings on an existing connector — remove it and add it again if you picked the wrong option.

## What you are approving

The consent screen shows the app's name and the address the login returns to (`claude.ai` for Claude), and, if you belong to more than one Shareglint workspace, which one the connection acts on. After that:

- Claude acts on **that workspace only**: its templates, its quota, its plan. A team member removed from the workspace gets `401` on the next tool call.
- Access tokens last a day and refresh on their own, so you do not reconnect daily.
- Every connected app is listed in **Account settings** in the Shareglint dashboard, where **Disconnect** stops its tokens at once.

Connectors run from Anthropic's servers, not from your computer, so the requests reach us from Anthropic's network — your own IP never matters, and there is nothing to open in a firewall.

**Request headers instead of OAuth.** Anthropic is testing header authentication for a limited set of organizations. If your dialog has a **Request headers** section, you can choose *No sign-in* and add an `authorization` header with the value `Bearer sk_live_…` (Claude sends the value exactly as typed, so include `Bearer `). OAuth is the better choice for a team, because each person signs in as themselves and the key does not sit in a shared connector.

## Claude Desktop and mobile

Remote connectors belong to your Claude account. One added at claude.ai appears in Claude Desktop, and Anthropic lists custom connectors for Claude and Claude Desktop on every plan. There is no need to edit `claude_desktop_config.json`: that file configures local servers that run on your machine, while this server is remote.

In any app, turn the connector on for a conversation with the **+** button → **Connectors**. Tools you never want Claude to call — say `create_batch` on a shared workspace — can be set to **Blocked** under **Customize → Connectors**.

## Worked example: a launch post, end to end

You have written a launch post and want a share card, a square version for LinkedIn and Instagram, and a screenshot of the new page for the post body.

> Turn on Shareglint for this chat. Here is the post: [pasted text]. Use list_templates to check the fields of blog-og, then render it with render_image in sizes og and square: title = the headline, eyebrow = "Launch", author = "Maya Chen", site = "northwind.dev", accent = "#f97316". Then take a screenshot of https://northwind.dev/new with take_screenshot, viewport only, dark mode. Give me all URLs in a table.

What happens:

1. `list_templates` (read-only) returns `blog-og` with its fields — `title`, `eyebrow`, `author`, `site`, `date`, `reading_time`, `photo`, `accent`, `theme`.
2. Claude asks to run `render_image`. Approve it. It returns two renders: the 1200×630 card and the 1080×1080 square.
3. `take_screenshot` with `dark_mode: true` returns a PNG of the page at the default 1280×800 viewport.
4. Claude answers with a table of three URLs.

Cost: two renders for the card sizes and 1 for the viewport screenshot. Ask for the same card again with the same fields and it is free; the same screenshot within 24 hours is free too.

If you like the layout but not the design, ask "make a template like this screenshot" with an image attached: `generate_template` (paid plans) designs one and returns a free preview before anything is saved.

## Troubleshooting

**"Connect" returns to Claude without connecting.** Check that you finished the consent screen (closing the tab at the login cancels it) and that you signed in to the Shareglint account you meant to. If it still fails, remove the connector and add it again with **Register automatically**.

**The connector is connected but Claude ignores it.** It is probably off for this chat. Open **+** → **Connectors** and switch it on. Then name the tool: "use render_image", not "make a picture" — otherwise Claude may answer with an SVG or a description instead.

**`plan_required` from `generate_template`.** AI template generation is for paid plans. Rendering, screenshots, batches and signed URLs work on Free.

**`quota_exceeded`.** The month's renders are used up. `get_usage` shows used and remaining, and the error comes back as `{"error": "quota_exceeded", …}` rather than a bill. See [pricing](https://shareglint.com/en/pricing) for plans and top-ups.

**Screenshot fails with a blocked address.** The browser only reaches public http(s) pages. `localhost`, private IPs and pages behind a login cannot be captured; deploy a preview URL first.

**A badge on the image.** Images rendered on the Free plan carry a small Shareglint badge in the corner, from Claude exactly as from the API.

**You added the wrong auth type.** Authentication cannot be edited. Remove the connector, add it again, and members reconnect.

For anything Claude cannot do here — a webhook, a CI job — the same account works over plain HTTP: see the [docs](https://shareglint.com/en/docs).

## FAQ

### Do I need an API key to use the image API in Claude.ai?

No. Claude.ai and Claude Desktop add the server as a custom connector and sign in with OAuth: you log in to Shareglint and approve the connection. Claude never sees an API key, and you can disconnect it in Account settings at any time.

### Can I use the connector on Claude's Free plan?

Yes. Anthropic allows one custom connector on the Free plan and more on Pro, Max, Ultra, Team and Enterprise. The Shareglint Free plan includes 100 renders a month, with a small badge on the images.

### Is the connector the same in Claude Desktop?

Yes. Remote connectors belong to your Claude account, so one added at claude.ai appears in Claude Desktop too. The desktop app's local configuration file is for servers that run on your own computer, which this one does not need.

### Why does Claude draw a picture instead of using the template?

Claude only calls a tool when it thinks the tool fits. Turn the connector on for the chat in the + menu and name the tool and template in the prompt, for example "use render_image with the blog-og template".
