Koskamo

AgentLair MCP

AgentLair MCP provides AI agents with real email addresses, a vault for persistent secret storage, calendar management, and task delegation capabilities without requiring local infrastructure setup.

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.

AgentLair MCP logo, by Amdal DevCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by Amdal Dev
You need:Get a free API key
MCP endpoint (Streamable HTTP)
https://agentlair-mcp-server.amdal-dev.workers.dev/mcp
Vendor documentation

What its tools do

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

15 of 15 have a description · 0 of 15 declare behavior hints · 12 of 12 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Warning Advertises resources/templates/list but does not implement it
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Send and read emails from an @agentlair.dev address
  • Store and retrieve API keys in a persistent vault
  • Create and list calendar events via iCal feed
  • Delegate tasks to other AgentLair agents asynchronously

Source and maintenance

Community listingRegistry 1.3.1
Maintenance checked

Protocol and capabilities

Server
agentlair 1.1.0
MCP protocol negotiated in check
2025-03-26
Tools
15 advertised
Resources
0 advertised
Resource templates
Not advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "listChanged": false
  }
}

Server-provided instructions

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

AgentLair MCP server. Provides email, vault, calendar, trust, and task delegation for AI agents. Use claim_address to get an @agentlair.dev address. Use vault_put/vault_get to persist secrets across sessions. Use calendar_create_event to publish events via iCal. Use preflight_trust_check before engaging unknown agents. Use delegate_task to hand off work to another agent. Requires an AgentLair API key — get one free at https://agentlair.dev

Tools

15 advertised

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

Send an email from your AgentLair address (@agentlair.dev) to any recipient. No SMTP or DNS setup needed.

send_email input schema
{
  "type": "object",
  "required": [
    "from",
    "to",
    "subject",
    "text"
  ],
  "properties": {
    "cc": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional CC recipient addresses"
    },
    "to": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of recipient email addresses"
    },
    "from": {
      "type": "string",
      "description": "Sender address — must be an @agentlair.dev address you own (e.g. mybot@agentlair.dev)"
    },
    "html": {
      "type": "string",
      "description": "Optional HTML body (supplement to text)"
    },
    "text": {
      "type": "string",
      "description": "Plain text body of the email"
    },
    "subject": {
      "type": "string",
      "description": "Email subject line"
    }
  }
}
check_inbox
Advertised by the server during the last successful anonymous check.

Check the inbox for an @agentlair.dev email address. Returns recent messages with sender, subject, and received time.

check_inbox input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max number of messages to return (default: 10, max: 50)"
    },
    "address": {
      "type": "string",
      "description": "The @agentlair.dev address to check (e.g. mybot@agentlair.dev)"
    }
  }
}
read_message
Advertised by the server during the last successful anonymous check.

Read the full content of a specific email message, including the body text.

read_message input schema
{
  "type": "object",
  "required": [
    "message_id",
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "The @agentlair.dev address this message was delivered to"
    },
    "message_id": {
      "type": "string",
      "description": "The message_id from check_inbox (angle brackets will be stripped automatically)"
    }
  }
}
list_addresses
Advertised by the server during the last successful anonymous check.

List all @agentlair.dev email addresses associated with your API key.

list_addresses input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
claim_address
Advertised by the server during the last successful anonymous check.

Claim a new @agentlair.dev email address for your agent. Free tier supports multiple addresses.

claim_address input schema
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "The address to claim (must end in @agentlair.dev, e.g. mybot@agentlair.dev)"
    }
  }
}
preflight_trust_check
Advertised by the server during the last successful anonymous check.

Check trust readiness before engaging with an agent. Returns a ReadinessCard: trust score, behavioral maturity level, whether it's safe to engage, and any caveats. Call this before delegating tasks, accepting agent output, or authorizing payments involving an unknown agent. Free — no extra charge beyond your API key.

preflight_trust_check input schema
{
  "type": "object",
  "required": [
    "agent_id"
  ],
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "AgentLair agent ID to check (format: acc_<alphanumeric>). Found via the agent's AgentLair profile or DID document."
    }
  }
}
vault_put
Advertised by the server during the last successful anonymous check.

Store a value in the AgentLair Vault. Use this to persist API keys, secrets, or any data your agent needs across sessions. Best practice: encrypt sensitive data client-side before storing (the server stores whatever you send).

vault_put input schema
{
  "type": "object",
  "required": [
    "key",
    "value"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "Vault key name (1-128 chars, alphanumeric + _ - .). Examples: 'openai-key', 'session_token', 'config.json'"
    },
    "value": {
      "type": "string",
      "description": "Value to store. For secrets: encrypt first, then store the ciphertext."
    },
    "metadata": {
      "type": "object",
      "description": "Optional JSON metadata (labels, timestamps, etc.) — never encrypted"
    }
  }
}
vault_get
Advertised by the server during the last successful anonymous check.

Retrieve a stored value from the AgentLair Vault by key name.

vault_get input schema
{
  "type": "object",
  "required": [
    "key"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "Vault key name to retrieve"
    }
  }
}
vault_list
Advertised by the server during the last successful anonymous check.

List all keys stored in your AgentLair Vault (metadata only, values not returned).

vault_list input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
vault_delete
Advertised by the server during the last successful anonymous check.

Delete a key and all its versions from the AgentLair Vault.

vault_delete input schema
{
  "type": "object",
  "required": [
    "key"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "Vault key name to delete"
    }
  }
}
calendar_create_event
Advertised by the server during the last successful anonymous check.

Create a calendar event on your AgentLair calendar. Events are published via iCal feed for human subscription (Google Calendar, Apple Calendar, Outlook).

calendar_create_event input schema
{
  "type": "object",
  "required": [
    "summary",
    "start",
    "end"
  ],
  "properties": {
    "end": {
      "type": "string",
      "description": "Event end time in ISO 8601 format. Date-only (\"2026-03-21\") or datetime (\"2026-03-20T15:00:00Z\")"
    },
    "start": {
      "type": "string",
      "description": "Event start time in ISO 8601 format. Date-only (\"2026-03-20\") or datetime (\"2026-03-20T14:00:00Z\")"
    },
    "summary": {
      "type": "string",
      "description": "Event title / summary (required)"
    },
    "location": {
      "type": "string",
      "description": "Optional event location (address, URL, or room name)"
    },
    "attendees": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional list of attendee email addresses"
    },
    "description": {
      "type": "string",
      "description": "Optional event description / notes"
    }
  }
}
calendar_list_events
Advertised by the server during the last successful anonymous check.

List events on your AgentLair calendar. Optionally filter by date range.

calendar_list_events input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "to": {
      "type": "string",
      "description": "Optional end of date range filter (ISO 8601, e.g. \"2026-03-31\")"
    },
    "from": {
      "type": "string",
      "description": "Optional start of date range filter (ISO 8601, e.g. \"2026-03-01\")"
    }
  }
}
calendar_delete_event
Advertised by the server during the last successful anonymous check.

Delete an event from your AgentLair calendar by event ID. Use calendar_list_events to find event IDs.

calendar_delete_event input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Event ID to delete (e.g. evt_abc123...)"
    }
  }
}
calendar_get_feed
Advertised by the server during the last successful anonymous check.

Get the public iCal subscription URL for your AgentLair calendar. Share this URL with calendar apps (Google Calendar, Apple Calendar, Outlook) so humans can subscribe and see agent-created events.

calendar_get_feed input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
delegate_task
Advertised by the server during the last successful anonymous check.

Delegate a task to another AgentLair agent. The task is delivered to the agent's inbox and picked up asynchronously. Use this when you need another agent to do something — send an email, run a deployment, do research, etc.

delegate_task input schema
{
  "type": "object",
  "required": [
    "to",
    "task"
  ],
  "properties": {
    "to": {
      "type": "string",
      "description": "Target agent's AgentLair email (e.g. pico@agentlair.dev)"
    },
    "task": {
      "type": "string",
      "description": "What to do — be specific and self-contained. The receiving agent has no context from your conversation."
    },
    "context": {
      "type": "string",
      "description": "Background information the agent needs to execute the task"
    },
    "priority": {
      "enum": [
        "low",
        "normal",
        "high",
        "urgent"
      ],
      "type": "string",
      "description": "Task priority (default: normal)"
    },
    "constraints": {
      "type": "string",
      "description": "Timing constraints, requirements, or limits"
    }
  }
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 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
382 ms
95th percentile latency
382 ms

Maintenance history

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

  • · probe · passed · 382 ms · metadata changed · 15 tool(s), 0 resource(s), 0 prompt(s); warnings: Advertises resources/templates/list but does not implement it

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 agentlair-mcp-workers https://agentlair-mcp-server.amdal-dev.workers.dev/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 agentlair-mcp-workers --url https://agentlair-mcp-server.amdal-dev.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable agentlair-mcp-workers in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "agentlair-mcp-workers": {
      "url": "https://agentlair-mcp-server.amdal-dev.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "agentlair-mcp-workers": {
      "type": "streamableHttp",
      "url": "https://agentlair-mcp-server.amdal-dev.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start agentlair-mcp-workers and inspect its tools.
VS Code configuration
{
  "servers": {
    "agentlair-mcp-workers": {
      "type": "http",
      "url": "https://agentlair-mcp-server.amdal-dev.workers.dev/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 agentlair-mcp-workers https://agentlair-mcp-server.amdal-dev.workers.dev/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://agentlair-mcp-server.amdal-dev.workers.dev/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": {
    "agentlair-mcp-workers": {
      "serverUrl": "https://agentlair-mcp-server.amdal-dev.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

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