Koskamo

Agent Email List MCP

A Model Context Protocol server providing free transactional email and SMTP relay capabilities for AI agents. It allows agents to self-signup, verify domains, and send emails via REST API without requiring an initial API key or credit card.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Agent Email List MCP logo, by Agent Email ListVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by Agent Email List
MCP endpoint (Streamable HTTP)
https://ai.agentemaillist.com/mcp
Vendor documentation

What its tools do

8 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

8 of 8 have a description · 0 of 8 declare behavior hints · 3 of 7 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to ai.agentemaillist.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Self-signup for AI agents to get an API key
  • Verify domain DNS records for sending
  • Send transactional emails via REST API
  • Read email events and delivery status

Source and maintenance

Vendor evidenceRegistry 0.2.0
Maintenance checked

Protocol and capabilities

Server
agent-email-list 0.1.0
MCP protocol negotiated in check
2025-06-18
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Email sending and receiving for agents. Free, and you can open an account yourself: call create_account first, which needs no credentials, then send the API key it returns as `Authorization: Bearer <key>` on every later call. The usual path is create_account, add_domain, publish the DNS records it gives you, verify_domain, then send_email. Use test_mode on the first send to check the request shape without spending the daily allowance.

Tools

8 advertised

create_account
Advertised by the server during the last successful anonymous check.

Create an account on this email service and get an API key back. Needs no existing credentials, so an agent with nothing can call this first. The key is returned once and never again. Free, with no card and no trial clock.

create_account input schema
{
  "type": "object",
  "required": [
    "email",
    "password"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Optional display name."
    },
    "email": {
      "type": "string",
      "description": "A contact address for the account."
    },
    "password": {
      "type": "string",
      "description": "At least 12 characters. Needed only to sign in to the web console."
    }
  }
}
list_domains
Advertised by the server during the last successful anonymous check.

List the sending domains on this account, with their verification state and how much of today's sending allowance each has left.

list_domains input schema
{
  "type": "object",
  "properties": {}
}
add_domain
Advertised by the server during the last successful anonymous check.

Register a domain to send from, and get the DNS records that must be published before it will work. Publishing DNS usually needs a human with registrar access, so start this early. The domain cannot send until verify_domain succeeds.

add_domain input schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "A bare domain such as mail.yourcompany.com. A subdomain is better than the root."
    }
  }
}
verify_domain
Advertised by the server during the last successful anonymous check.

Re-read DNS now and mark the domain active if its SPF and DKIM records are visible. DNS takes minutes to hours to propagate; poll this every few minutes, not every few seconds.

verify_domain input schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string"
    }
  }
}
send_email
Advertised by the server during the last successful anonymous check.

Send a message. The domain must be verified and the from address must belong to it. Counts one against the daily allowance per recipient. Set test_mode true to run the whole pipeline, including content screening, without sending anything and without spending allowance — do that first when building.

send_email input schema
{
  "type": "object",
  "required": [
    "domain",
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "description": "One address, or several separated by commas."
    },
    "from": {
      "type": "string",
      "description": "An address at that domain."
    },
    "html": {
      "type": "string",
      "description": "Optional HTML body."
    },
    "text": {
      "type": "string",
      "description": "Plain text body."
    },
    "domain": {
      "type": "string",
      "description": "The verified domain to send from."
    },
    "subject": {
      "type": "string"
    },
    "test_mode": {
      "type": "boolean",
      "description": "Accept and screen the message but send nothing. Defaults to false."
    }
  }
}
get_sending_limits
Advertised by the server during the last successful anonymous check.

How much this domain may send today and what graduates it to the next rung, plus this account's standing: how many domains it may hold and whether sending is paused. New domains start at a low daily cap and climb as they prove themselves, so check this before planning a bulk send rather than discovering it part-way. Call it with no domain for the account-level answer alone.

get_sending_limits input schema
{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Optional. Omit for account limits without a domain's allowance."
    }
  }
}
list_messages
Advertised by the server during the last successful anonymous check.

Recent messages for a domain, sent and received. Use direction to filter, and folder to separate inbox from spam on received mail.

list_messages input schema
{
  "type": "object",
  "required": [
    "domain"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "description": "Up to 100. Defaults to 25."
    },
    "domain": {
      "type": "string"
    },
    "folder": {
      "enum": [
        "inbox",
        "spam"
      ],
      "type": "string"
    },
    "direction": {
      "enum": [
        "outbound",
        "inbound"
      ],
      "type": "string"
    }
  }
}
get_delivery_events
Advertised by the server during the last successful anonymous check.

What happened to messages on this domain: accepted, delivered, failed, and so on. A send returning success means queued, not delivered; this is where the delivery outcome actually appears.

get_delivery_events input schema
{
  "type": "object",
  "required": [
    "domain"
  ],
  "properties": {
    "event": {
      "type": "string",
      "description": "Filter to one type, such as delivered or failed."
    },
    "limit": {
      "type": "integer"
    },
    "domain": {
      "type": "string"
    },
    "recipient": {
      "type": "string"
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
642 ms
95th percentile latency
642 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 642 ms · metadata changed · 8 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http agent-email-list-mcp https://ai.agentemaillist.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add agent-email-list-mcp --url https://ai.agentemaillist.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable agent-email-list-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "agent-email-list-mcp": {
      "url": "https://ai.agentemaillist.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "agent-email-list-mcp": {
      "type": "streamableHttp",
      "url": "https://ai.agentemaillist.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start agent-email-list-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "agent-email-list-mcp": {
      "type": "http",
      "url": "https://ai.agentemaillist.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http agent-email-list-mcp https://ai.agentemaillist.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://ai.agentemaillist.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "agent-email-list-mcp": {
      "serverUrl": "https://ai.agentemaillist.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Agent Email List MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Agent Email List MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing