Back to Browse

Pidgeon Js MCP Server

Developer ToolsLow Risk9.7MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

Email inbox and verifiable ID for your agent: addresses, threads, sending and replies.

About

Email inbox and verifiable ID for your agent: addresses, threads, sending and replies.

Remote endpoints: streamable-http: https://pidgeon.ai/api/mcp

Security Report

9.7
Low Risk9.7Low Risk

Valid MCP server (1 strong, 3 medium validity signals). No known CVEs in dependencies. ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.

Endpoint verified · Requires authentication · 2 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

env_vars

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

What You'll Need

Set these up before or after installing:

Your Pidgeon API key (pgn_live_…). Make one under Developers → API keys, or let an agent sign itself up: https://pidgeon.ai/skill.mdRequired

Environment variable: PIDGEON_API_KEY

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

Pidgeon for JavaScript and TypeScript

Email inboxes for AI agents. Pidgeon is the email inbox API for AI agents. It gives agents their own inboxes so they can work with emails just like a human.

pidgeon.ai · Documentation

npm install @pidgeon-ai/sdk

Create an address, send from it, wait for the answer, and reply in the thread:

import {
  client,
  identitiesCreate,
  messagesAwait,
  messagesReply,
  messagesSend,
} from '@pidgeon-ai/sdk';

client.setConfig({ auth: () => process.env.PIDGEON_API_KEY! });

// 1. An address of its own. Any free name on pidgeon.email works with no DNS.
const { data: address } = await identitiesCreate({
  body: { address: 'scout@pidgeon.email', type: 'agent' },
  throwOnError: true,
});

// 2. Send from it.
await messagesSend({
  body: {
    from: address.data.email,
    to: 'ops@example.com',
    subject: 'Staging access',
    text: 'Could you send me the access code?',
  },
  throwOnError: true,
});

// 3. Receive: one held-open request until the answer arrives, up to 60 seconds.
const { data: awaited } = await messagesAwait({
  query: { identity_id: address.data.id, timeout: 60 },
  throwOnError: true,
});

// 4. Reply into the same conversation. Recipients and subject come off the original.
if (awaited.data.message) {
  console.log(awaited.data.message.extracted.codes);
  await messagesReply({
    path: { id: awaited.data.message.id },
    body: { text: 'Thanks, that worked.' },
    throwOnError: true,
  });
}

PIDGEON_API_KEY is a pgn_live_… key. Make one at pidgeon.ai/app/developers/keys, or let your agent sign itself up: pidgeon.ai/skill.md.

The packages

PackageInstallWhat it is
@pidgeon-ai/sdknpm install @pidgeon-ai/sdkThe TypeScript client, one function per operation
@pidgeon-ai/clinpm install -g @pidgeon-ai/cliEvery endpoint as a command
@pidgeon-ai/idnpx @pidgeon-ai/id init acme.comA signed identity for agents on your own domain, no account, and the library they sign email and HTTP requests with
@pidgeon-ai/sign-innpm install @pidgeon-ai/sign-inSign in with Pidgeon for your website: verified agents sign up and sign in, and you see who each acts for
@pidgeon-ai/issuernpx @pidgeon-ai/issuer keygen acme.comThe issuer you run yourself, inside your own network: your domain signs your agents' cards and sign-ins, for the agents your identity provider says you have
@pidgeon-ai/mcpnpx -y @pidgeon-ai/mcp initThe MCP server, run on your machine
@pidgeon-ai/ai-sdknpm install @pidgeon-ai/ai-sdk ai zodThe same tools, for the Vercel AI SDK
@pidgeon-ai/openclawopenclaw plugins install @pidgeon-ai/openclawEmail as an OpenClaw channel: mail starts a conversation, the reply goes in the thread

examples/openai-agents is an OpenAI Agents SDK agent on the hosted server, examples/claude-agent-sdk a Claude Agent SDK one, and examples/mastra a Mastra one. None needs a package of ours. examples/ai-sdk is a Vercel AI SDK agent on @pidgeon-ai/ai-sdk, asking before it replies.

activepieces/pidgeon is the Activepieces piece, @pidgeon-ai/piece-pidgeon, in the layout Activepieces' own repository uses (setup).

An MCP client needs no package at all. Point it at https://pidgeon.ai/api/mcp and it signs you in with OAuth:

claude mcp add --transport http pidgeon https://pidgeon.ai/api/mcp

The plugin for Claude Code, Codex, Cursor and Gemini CLI is pidgeon-ai/pidgeon-plugins.

Contributing

The SDK and the CLI are generated from openapi.json, which is the contract the API validates against and is published at https://pidgeon.ai/openapi.json. The application that serves it is closed source; these clients are not, and this is where they are readable. This repository is copied from that one on every release.

So a pull request against generated code cannot be merged as written — the fix belongs in the schema it came from. Open an issue instead and say what is wrong; that is the faster route either way, because a wrong field here is a wrong field in the published contract and in the Python client too.

Issues and questions: open one, or email support@pidgeon.ai.

MIT licensed.

Reviews

No reviews yet

Be the first to review this server!