Skip to main content
Ark is built for AI-assisted development. Claude Code can read our documentation, understand our API, and write working email code on the first try.

Get Started in 60 Seconds

1

Connect Claude Code to Ark's Documentation

One command. No API key needed.
claude mcp add ark-docs --transport http https://arkhq.io/docs/mcp
2

Ask Claude to Write Email Code

Try this now:
"Show me how to send a welcome email with Ark's Node.js SDK"
Claude reads Ark’s documentation and gives you working code with correct syntax—no hallucinated parameters, no outdated methods.
3

When You're Ready to Send

  1. Create an account and get your API key
  2. Set up your sending domain (required for all emails)
  3. Optionally, add the API MCP for infrastructure management:
claude mcp add ark-email -- npx -y ark-email-mcp

Why Ark Works Better with Claude Code

When you ask Claude to implement email with most APIs, it hallucinates outdated syntax and writes broken code. You spend 30 minutes debugging. With Ark:
The ProblemHow Ark Solves It
Claude guesses at API syntaxAI-readable .md docs Claude can parse directly
Outdated training dataDocs MCP gives real-time access to current documentation
Weird edge cases confuse AIClean, predictable API design with no surprises
Can’t verify if setup works26 MCP tools let Claude check your configuration

Two MCP Servers, Different Purposes

Start with Docs MCP. It’s free, instant, and gives Claude accurate API knowledge. Add API MCP when you need infrastructure management from your IDE.

Docs MCP Setup

Give Claude accurate, real-time knowledge of Ark’s API.
claude mcp add ark-docs --transport http https://arkhq.io/docs/mcp
Verify it’s connected:
claude mcp list
You should see ark-docs with status “connected”.

What Claude Can Do With Docs MCP

Ask Claude to implement any email feature:

Write integration code

“Add email verification to my signup flow using Ark”
“Set up transactional emails for my checkout with Ark’s Python SDK”
“Show me how to handle Ark webhooks in Express”
“What’s the difference between send and send_batch in Ark?”
“How should I handle bounces with Ark?”
“What DNS records do I need for DKIM?”
“What does a softfail status mean in Ark?”
“Why might my Ark emails go to spam?”
“How do I check if an email was delivered?”

API MCP Setup

Give Claude tools to manage your email infrastructure directly.
Prerequisite: You need a verified sending domain before you can send emails.

Option 1: One Command

claude mcp add ark-email -- npx -y ark-email-mcp
Then set your API key:
claude mcp add ark-email -e ARK_API_KEY=ark_live_your_key_here -- npx -y ark-email-mcp

Option 2: Project Config

Add to .mcp.json in your project root:
{
  "mcpServers": {
    "ark-email": {
      "command": "npx",
      "args": ["-y", "ark-email-mcp"],
      "env": {
        "ARK_API_KEY": "ark_live_your_key_here"
      }
    }
  }
}

Option 3: User Config (Global)

claude mcp add ark-email --scope user -e ARK_API_KEY=ark_live_your_key_here -- npx -y ark-email-mcp

What Claude Can Do With API MCP

26 tools for managing your email infrastructure:

Domain Management

“Is my domain DNS configured correctly?”
“Show me the DNS records I need for mydomain.com”
“Verify my domain configuration”
“Did the email to [email protected] get delivered?”
“What’s the status of the last email I sent?”
“Show me recent bounces”
“Is [email protected] on our suppression list?”
“Why is this address suppressed?”
“Remove [email protected] from suppressions”
“Set up a webhook for delivery events”
“What webhooks do I have configured?”
“Test my webhook endpoint”

Example Workflow

Here’s what working with Ark in Claude Code actually looks like:

1. Claude Writes Your Integration

You: "I need to add password reset emails to my Next.js app. Use Ark."

Claude: [via Docs MCP] I'll implement this using Ark's Node.js SDK.
        Based on the documentation, here's the approach:

        // lib/email.ts
        import Ark from 'ark-email';

        const ark = new Ark();

        export async function sendPasswordReset(email: string, token: string) {
          return ark.emails.send({
            from: '[email protected]',
            to: [email],
            subject: 'Reset Your Password',
            html: `<a href="https://yourapp.com/reset?token=${token}">Reset Password</a>`,
          });
        }

2. You Set Up Your Domain

You: "What DNS records do I need for my domain?"

Claude: [via API MCP] Let me check your domain configuration...

        For yourdomain.com, add these DNS records:

        1. SPF (TXT): v=spf1 include:spf.arkhq.io ~all
        2. DKIM (TXT): [specific record for your domain]
        3. Return-Path (CNAME): bounces.yourdomain.com → rp.arkhq.io

3. Claude Helps Debug

You: "I sent a test email but it didn't arrive. What happened?"

Claude: [via API MCP] Let me check the delivery status...

        Found it. The email to [email protected] shows status "delivered"
        at 2:34 PM. Check the recipient's spam folder—first emails
        from new domains often land there.

        Your domain's DNS is correctly configured, so deliverability
        should improve as you build sender reputation.

FAQ

No. The Docs MCP is free and needs no authentication. You only need an API key when you’re ready to actually send emails.
No. Ark requires a verified sending domain for all emails. See Domain Setup—it takes about 10 minutes.
With the Docs MCP installed, tell Claude: “Check the Ark documentation first.” This ensures it reads current docs rather than relying on training data.
Locally in your MCP config file on your machine. It’s never sent to Anthropic—only directly to Ark’s servers over HTTPS.
Docs MCP. It’s free, instant, and gives Claude accurate API knowledge. Add API MCP later when you want Claude to help manage infrastructure.
This page is focused on Claude Code specifically. The MCP Server page covers all MCP clients (Claude Desktop, Cursor, VS Code, Windsurf) with detailed setup for each.

Available MCP Tools

The API MCP exposes 26 tools to Claude Code:

Email Operations

ToolDescription
send_emailSend a transactional email
send_batchSend up to 100 emails in one request
get_emailGet delivery status of a sent email
list_emailsList emails with filtering
retry_emailRetry a failed delivery
get_deliveriesGet all delivery attempts

Domain Management

ToolDescription
create_domainRegister a sending domain
list_domainsList configured domains
get_domainGet domain details and DNS records
verify_domainTrigger DNS verification
delete_domainRemove a domain

Suppression Management

ToolDescription
check_suppressionCheck if an address is suppressed
add_suppressionAdd to suppression list
remove_suppressionRemove from suppression list
list_suppressionsList all suppressions

Webhooks & Tracking

ToolDescription
create_webhookCreate event webhook
list_webhooksList webhooks
test_webhookSend test event
create_tracking_domainSet up tracking domain
verify_tracking_domainVerify tracking DNS

Next Steps