Guides
Connect Claude
Connect Claude to Postaged's MCP servers to build your CRM sync or write address book formulas.
Which key to use
Each of Postaged's MCP servers takes its own kind of key:
| Server | Address | Key |
|---|---|---|
| Integrations MCP server | https://www.postaged.com/api/integrations/mcp | A dedicated integration key. On your integration's page, choose New key and use that key only for Claude, so you can revoke it on its own. |
Never give Claude a full-access key
A full-access key can send recipients, which mails cards and charges your team. Give an AI client only an integration key or a Formulas only key.
Connect your Claude client
Not every claude.ai account can connect yet
claude.ai Free, Pro, and Max accounts without the Request headers option can't connect to Postaged's MCP servers yet. Anthropic offers that option to some organizations only. Use Claude Code, the Claude API, or Claude Desktop with mcp-remote instead.
Four ways work today. Each sends your key in an Authorization: Bearer header. Pick the one that matches where you use Claude.
Claude Code
- Put the key in an environment variable:
POSTAGED_API_KEYfor your integration key,POSTAGED_FORMULAS_KEYfor your Formulas only key. - Run the command for the server you want. Your shell fills in the key from the environment variable, so you never type or paste the key itself. Claude Code saves the key, so run the command again after you rotate it.
- Start Claude Code and ask it to use Postaged.
In Windows PowerShell, replace ${POSTAGED_API_KEY} with $env:POSTAGED_API_KEY (or ${POSTAGED_FORMULAS_KEY} with $env:POSTAGED_FORMULAS_KEY) before you run the command.
Integrations MCP server
claude mcp add --transport http postaged https://www.postaged.com/api/integrations/mcp --header "Authorization: Bearer ${POSTAGED_API_KEY}"The Claude API MCP connector
Send a Messages API request with the anthropic-beta: mcp-client-2025-11-20 header and two entries that name the same server:
- An
mcp_serversentry with the server's address and your key asauthorization_token, read from your environment. - A matching
toolsentry:{ "type": "mcp_toolset", "mcp_server_name": "postaged" }.
The connector rejects a request that has only one of the two.
The Claude API connector supports tools only. The build_daily_sync prompt and the contract resource aren't available there. Call the get_docs tool for the same guide.
Integrations MCP server
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: mcp-client-2025-11-20" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 16000,
"messages": [
{
"role": "user",
"content": "Inspect my Postaged integration and summarize it."
}
],
"mcp_servers": [
{
"type": "url",
"url": "https://www.postaged.com/api/integrations/mcp",
"name": "postaged",
"authorization_token": "'"$POSTAGED_API_KEY"'"
}
],
"tools": [
{
"type": "mcp_toolset",
"mcp_server_name": "postaged"
}
]
}'const response = await fetch("https://api.anthropic.com/v1/messages", {
method: "POST",
headers: {
"x-api-key": process.env.ANTHROPIC_API_KEY,
"anthropic-version": "2023-06-01",
"anthropic-beta": "mcp-client-2025-11-20",
"content-type": "application/json",
},
body: JSON.stringify({
model: "claude-sonnet-5-5",
max_tokens: 16000,
messages: [
{
role: "user",
content: "Inspect my Postaged integration and summarize it.",
},
],
mcp_servers: [
{
type: "url",
url: "https://www.postaged.com/api/integrations/mcp",
name: "postaged",
authorization_token: process.env.POSTAGED_API_KEY,
},
],
tools: [
{
type: "mcp_toolset",
mcp_server_name: "postaged",
},
],
}),
});
const result = await response.json();
console.log(result);import os
import requests
response = requests.post(
"https://api.anthropic.com/v1/messages",
headers={
"x-api-key": os.environ["ANTHROPIC_API_KEY"],
"anthropic-version": "2023-06-01",
"anthropic-beta": "mcp-client-2025-11-20",
},
json={
"model": "claude-sonnet-5-5",
"max_tokens": 16000,
"messages": [
{
"role": "user",
"content": "Inspect my Postaged integration and summarize it.",
},
],
"mcp_servers": [
{
"type": "url",
"url": "https://www.postaged.com/api/integrations/mcp",
"name": "postaged",
"authorization_token": os.environ["POSTAGED_API_KEY"],
},
],
"tools": [
{
"type": "mcp_toolset",
"mcp_server_name": "postaged",
},
],
},
timeout=600,
)
print(response.json())claude.ai and Claude Desktop custom connectors
This works only where your Claude organization has the Request headers option.
- An Owner of your Claude organization adds a custom connector with the server address.
- They add a header named
Authorizationwhose value isBearerfollowed by a space and the key. Type the word "Bearer" and the space yourself.
Everyone in your Claude organization uses this connector with the same key.
Integrations MCP server
Server URL: https://www.postaged.com/api/integrations/mcp
Header name: Authorization
Header value: Bearer <your integration key>Claude Desktop through mcp-remote
If your Claude organization doesn't have the Request headers option, Claude Desktop can still connect through mcp-remote, which runs on your computer and adds the header for it.
- Open Claude Desktop's
claude_desktop_config.json. - Add the block for the server you want, and replace the placeholder in
envwith your key. - Restart Claude Desktop.
Keep Authorization:${AUTH_HEADER} exactly as shown, with no space after the colon. This form also works on Windows.
mcp-remote is a third-party tool, not made by Postaged. Claude Desktop starts it with npx, so Node.js must be installed.
Integrations MCP server
{
"mcpServers": {
"postaged": {
"command": "npx",
"args": [
"mcp-remote",
"https://www.postaged.com/api/integrations/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer <your integration key>"
}
}
}
}Disconnect Claude
Revoke the key Claude uses: on your integration's page for an integration key, or in Settings > API & Webhooks for a Formulas only key. Revocation is immediate, and Claude's next call is refused.