Setting up MCP client delivery in Claude Code

By Marcel Seibold, Founder of sendhey · Published 14 Jul 2026

This is the exact, verified path to connect sendhey in Claude Code and publish a real client deliverable through it — one terminal command, one browser approval, then a working publish_page call.

What you need first

Claude Code installed and signed in, and a sendhey account — if you do not have one yet, the OAuth step below sends you to create one for free; the trial only starts when you publish your first link, not at signup.

Step 1: add the MCP server

Run Claude Code's own mcp add command once, from a terminal on the machine you use Claude Code from:

claude mcp add --transport http --scope user sendhey https://sendhey.app/mcp

This uses user scope, so "connect once" means every project on this machine, not only the one you happen to be in right now.

Step 2: complete OAuth

Open /mcp inside Claude Code, select sendhey, and approve the browser sign-in. sendhey uses OAuth 2.1 for this path — you are never asked to paste an API key into chat here. If you do not have a sendhey account yet, the sign-in screen leads you to create one.

Step 3: verify before you trust it

Run claude mcp get sendhey and check /mcp's in-session status. Confirm the connector's tool list actually includes publish_page — that presence is the real signal the connection works, not just that a command exited without an error. There is no claude mcp login command for sendhey; the OAuth approval above is the whole authentication step. Do not publish a throwaway page just to test the connection: a publish is a real external write and starts your trial.

Step 4: publish a real artifact

Once publish_page shows up in the tool list, ask Claude to deliver the next real thing it finishes through sendhey instead of pasting it into the chat — for example: "Use sendhey to deliver this to my client as a gated link, then give me the URL." Claude calls publish_page with the HTML (or a file bundle) and, when the client needs a gate, a policy:

{
  "name": "publish_page",
  "arguments": {
    "html": "<html>...your finished page...</html>",
    "policy": { "audience": { "kind": "password", "value": "acme-2026", "delivery": "prompt" } }
  }
}

The result carries two URLs: url is what you send the client; manageUrl is your own signed-in editor for that page's content, and it should never leave your side of the conversation.

Step 5: check the gate and the activity

Open the url yourself, in a private window, to see exactly what the gate presents before a client does. Then check your dashboard's activity view, or have Claude call get_activity for the same link, for the open count — or identified opens by name, if you set analytics to identified behind an email gate.

If something does not verify

If sendhey does not show up as connected, re-run the command above and re-open /mcp; a managed enterprise policy can block user-scoped servers, and a workspace admin needs to allow it. If publish_page is missing from the tool list, start a fresh Claude Code session — a connector added mid-session does not always reload its tool inventory into the one already running.

Frequently asked

Does this also work from Claude Desktop or Claude web?

Yes, but the setup step is different: those surfaces don't have a terminal, so you add sendhey from Customize → Connectors → + → Add custom connector instead of the claude mcp add command, then complete the same OAuth approval. Once connected, publishing and checking activity works identically — publish_page and get_activity are the same tools regardless of which Claude surface called them.

What if my terminal can't persist Claude Code's configuration — a shared machine, a container, or CI?

The native command above writes to your local Claude Code config, so it only helps on a machine where that configuration actually persists between sessions. For a headless agent that can't complete a browser sign-in at all — a server or a CI job — use a static API key or OAuth machine credentials as a Bearer token against the same endpoint instead; create either under Settings → Developer access.

A note on the one-command installer

The setup guide at https://sendhey.app/skills/connect-sendhey.md also documents a single bootstrap command for local clients. This article intentionally teaches the native claude mcp add command above instead, because it works today regardless of that installer's own release state — the steps above do not depend on it.

Related reading

See the full MCP tool reference at /docs/mcp-publish (both publish_page and create_link, argument by argument), the native-Claude-sharing comparison at /share-claude-artifacts, or two related posts: how to deliver AI-generated work to clients and why viewer tracking is consent-clean by default.

← All posts

Try it free

Free 14-day Pro trial starts when you publish your first link. No card.

Connect your AI · Create a workspace instead

See pricing for plan limits.

Written by Marcel Seibold, founder of sendhey.

About · Privacy · Legal notice · Report illegal content · Terms · DSA