# Loomal

Identity infrastructure for AI agents. One API, every capability.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add loomal/identity

# Browse available tools
npx -y @smithery/cli@latest tool list loomal/identity

# Get full schema for a tool
npx -y @smithery/cli@latest tool get loomal/identity identity.whoami

# Call a tool
npx -y @smithery/cli@latest tool call loomal/identity identity.whoami '{}'
```

## Direct MCP Connection

Endpoint: `https://loomal.run.tools`

**Required config:**
- `LOOMAL_API_KEY` (header) — Get your API key from https://console.loomal.ai

## Tools (23)

- `identity.whoami` — Get your agent identity info — name, email, DID, and scopes
- `identity.sign` — Sign arbitrary data with this identity's Ed25519 private key. Returns the signature and the identity's DID.
- `identity.verify` — Verify a signature against any did:web identity. Resolves the DID Document and checks the Ed25519 signature.
- `mail.send` — Send an email from your agent's inbox
- `mail.reply` — Reply to an existing email in a thread
- `mail.list_messages` — List emails in your agent's inbox. Returns newest first.
- `mail.get_message` — Get a specific email by its messageId
- `mail.list_threads` — List email threads in your agent's inbox. Returns newest first.
- `mail.get_thread` — Get a full email thread with messages (newest 200 by default)
- `mail.update_labels` — Add or remove labels on a message
- `mail.delete_message` — Delete a single message from the inbox
- `mail.delete_thread` — Delete an entire thread and all its messages
- `vault.list` — List all credentials in the vault (metadata only, no secrets)
- `vault.get` — Retrieve a decrypted credential from the vault. For TOTP credentials, use vault.totp instead to get the code.
- `vault.totp` — Generate the current 6-digit TOTP code. Works on any credential that has a TOTP secret (standalone TOTP type or any cre…
- `vault.store` — Store or update an encrypted credential in the vault
- `vault.delete` — Remove a credential from the vault
- `calendar.create` — Create a new event on this identity's calendar
- `calendar.update` — Update an existing calendar event
- `calendar.list` — List events on this identity's calendar
- `calendar.get` — Get details of a specific calendar event
- `calendar.delete` — Delete a calendar event
- `calendar.set_public` — Make this identity's calendar public or private. Public calendars are viewable at /identities/:id/calendar.json

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get loomal/identity <tool-name>
```

## Resources

- `loomal://identity/id-3922a8bdadb74782` — Current agent identity information

## Prompts (13)

- `whoami` — Get your agent identity — name, email, and permissions
- `check-inbox` — Check your inbox for new and unread messages
- `daily-digest` — Get a summary of today's email activity
- `read-thread` (threadId) — Read a specific email thread and summarize the conversation
- `search-messages` (query) — Search inbox messages by label or keyword
- `send-email` (to, subject) — Compose and send an email
- `reply-to-email` (messageId) — Reply to a specific email message
- `follow-up` (threadId) — Send a follow-up email on a thread
- `label-messages` (label) — Add or remove labels on messages
- `cleanup-inbox` — Clean up inbox by archiving or deleting old messages
- `list-credentials` — List all credentials stored in the vault
- `store-credential` (name, type) — Store a new credential in the vault
- `get-totp` (name) — Generate a 2FA code from a stored credential
