Anima MCP server
Give your AI agent an identity it owns: email inbox, US phone number, SMS, voice, and a vault.
1 stars
Reviews
Write oneNobody has reviewed Anima yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Anima tools (67, 34 write)
write = sends, deletes, buys or postsaccount_overviewFreeSingle-call workspace snapshot: organization context, credential identity, send-capability flags (canSendEmail / canSendSms), inventory counts (agents, domains, phones), active blockers (each carrying the canonical MCP tool that resolves it), and the running MCP server's deploy identity (commitSha, revision, buildId, startedAt). Strict superset of the legacy whoami + workspace_health pair. Use before any non-trivial workflow to answer 'who am I, can I do X right now, and which deploy is serving me?' in one round-trip — no real send needed to find out.
agent_createwrite actionFreeCreate a new agent with optional metadata, and optionally attach an initial address. Use this when provisioning a new sending identity or automation actor. To add more addresses later, use agent_update. Pass idempotencyKey to make retries safe — same key + same body returns the original response, same key + different body returns IDEMPOTENCY_BODY_MISMATCH 409.
agent_deletewrite actionFreeDelete an agent by ID. Use this to remove deprecated or compromised agents that should no longer send messages. Cascades to attached addresses, email identities, and phone identities.
agent_getFreeFetch full detail for a single agent by ID: settings, metadata, status, and the full addresses[] / emailIdentities[] / phoneIdentities[] lists. Use agent_list to browse multiple agents.
agent_listFreeList agents in the current account context with cursor pagination. Returns a lightweight per-agent record (addresses are NOT included to avoid N+1 round-trips). Use agent_get for full single-agent detail.
agent_updatewrite actionFreeUpdate an agent's name or metadata, and/or add/update/delete an address. Use addAddress to attach a new address, updateAddress to change fields on an existing one (by addressId), deleteAddressId to remove one. Multiple field-level changes can be combined in a single call.
domain_createwrite actionFreeRegister a custom sending domain in the workspace so it can be configured for email traffic. Use this before DNS setup and verification.
domain_deletewrite actionFreeDelete a domain from the workspace when it is no longer needed. Use this to remove old or incorrect domain configurations.
domain_getFreeFetch full detail for a single domain by ID, including verification and configuration state. Use domain_list to browse all domains.
domain_listFreeList all domains connected to the current workspace. Use this to audit configured sender domains and choose one for follow-up actions.
domain_updatewrite actionFreeUpdate mutable configuration on a domain. Currently the only updatable field is `feedbackEnabled` — toggle SES bounce and complaint feedback processing on or off without re-verifying the domain.
domain_verifyFreeTrigger a verification check for a domain after DNS records are configured. Use this to re-run DNS validation and update verification status.
domain_zone_fileFreeGet the full DNS zone file for a domain. Use this for complete DNS export or to verify all records are correctly configured.
email_attachment_getwrite actionFreeGet a temporary download URL for an email attachment. Use this when you need direct file access for preview or download.
email_draft_createwrite actionFreeCreate a new email draft (composed but not sent). Drafts can be incomplete — missing recipients, subject, or body. Use email_draft_send later to actually deliver, or email_draft_delete to discard.
email_draft_deletewrite actionFreeDiscard a draft. Use this to remove drafts that are no longer needed. Use email_draft_send if you want to deliver instead.
email_draft_getwrite actionFreeFetch full detail for a single draft by ID. Use email_draft_list to browse drafts.
email_draft_listwrite actionFreeList email drafts with optional filters. Returns lightweight draft records — use email_draft_get for full detail.
email_draft_sendwrite actionFreeSend a draft. Atomically converts the draft to a delivered Message + deletes the draft row. The draft must have at least one recipient, a subject, and a body. Returns the newly-created Message.
email_forwardwrite actionFreeForward an existing email to another recipient by loading the original content first. Use this to share a prior message while preserving context.
email_getwrite actionFreeFetch full detail for a single email by ID, including metadata and body. Use email_list to browse emails in a folder.
email_labelwrite actionFreeAdd and/or remove labels on one message — the agent's workflow state. Use this to mark mail read/unread (`read`/`unread`), archive it (`archived`), or apply your own tags, then filter with email_list's `labels`. Supply at least one of addLabels/removeLabels. One message per call: there is no batch form.
email_listwrite actionFreeList emails with cursor pagination. Returns lightweight per-email records plus a `pagination` object — pass `pagination.nextCursor` back as `cursor` for the next page. Use email_get for the full body, email_search to find specific messages.
email_replywrite actionFreeReply to an existing email thread by first loading the original message and setting threading headers. Use this when you need a proper in-thread response.
email_searchwrite actionFreeSearch messages by content. Fulltext mode (default) substring-matches subject/body/addresses of EMAIL messages and returns `{items, pagination}` with cursor paging. Semantic mode ranks by vector-embedding similarity and returns `{results}` scored 0-1 — each result spans ANY channel (check the `channel` field) and includes the message id for email_get / email_thread_get follow-ups.
email_sendwrite actionFreeSend a new outbound email from the agent mailbox. Use this when you need to compose and deliver a message with optional CC, threading headers.
email_thread_getwrite actionFreeFetch all email messages in one or more threads. Pass `id` for a single thread or `ids` for multiple. Returns messages ordered within each thread. Uses the messages endpoint filtered by threadId + channel=EMAIL under the hood.
extension_connectwrite actionFreeCreate a short-lived, single-use connect URL that links a browser extension (or a headless Puppeteer worker) to an Anima agent. Returns `connectUrl` — hand it to the extension to complete the handshake before `exchangeExpiresAt`. The response carries no token or secret. Auth: with a master key you MUST pass `agentId`; with an agent key OMIT `agentId` (the server resolves it from the key). `ttl` is optional; a value above the org's maximum is rejected.
inbox_createwrite actionFreeCreate a new email inbox (mailbox) that can receive mail immediately at its address. Choose a username and domain or let the platform generate them. Requires master key access.
inbox_deletewrite actionFreePermanently delete an inbox and its mailbox. Mail sent to the address after deletion bounces. This cannot be undone. Requires master key access.
inbox_getFreeFetch full detail for a single inbox by ID, including its email address, display name, and associated agent. Use inbox_list to browse all inboxes.
inbox_listFreeList inboxes in the workspace with cursor pagination and optional free-text search. Returns the address, display name, and agent association for each inbox.
inbox_updatewrite actionFreeUpdate the display name or agent association of an inbox. Pass null for a field to clear it (unlink the agent / remove the display name); omitted fields are left unchanged. The email address itself cannot be changed. Requires master key access.
phone_call_createwrite actionFreePlace a live phone call and have a real conversation. The tool stays open for the entire call duration. As the caller speaks, you receive live transcript chunks via progress notifications; when the caller finishes a turn (server emits isFinal: true), an elicitation prompt asks you what the agent should say next. You respond with `say` (the exact text to speak) and optional `endCallAfterSpoken: true` to hang up after the line. Returns the full transcript when the call ends. Requires the connecting MCP client to support elicitation — without it, the tool errors out immediately.
phone_call_getFreeGet full detail for a single phone call: status, duration, participants, AI-generated summary (one-liner, topics, action items, decisions, open questions, next steps), and quality score. The summary is generated once on first read after post-call processing and cached.
phone_call_listFreeList phone calls with optional filters. Returns lightweight call records — for full call detail including summary and score, use phone_call_get.
phone_call_recording_getFreeGet a time-limited download URL for a call recording (WAV format). The URL expires after 1 hour. Recording must have been enabled during the call.
phone_call_transcript_getFreeGet the full transcript of a phone call with speaker labels, timestamps, and confidence scores. Available after the call ends and transcription completes.
phone_number_listFreeList phone numbers assigned to an agent. Each result includes status and capability flags (sms/mms/voice).
phone_number_provisionFreeProvision a new phone number from the carrier pool and assign it to an agent. Note: provisioning a number costs money on the underlying carrier; do not call speculatively. Use countryCode / areaCode / capabilities to constrain selection.
phone_number_releaseFreeRelease a previously provisioned phone number back to the carrier pool. Use this when cleaning up unused numbers. Released numbers cannot be recovered.
sms_getFreeFetch full detail for a single SMS by ID (includes its `threadId` for joining the conversation). Use sms_list to browse multiple SMS messages.
sms_listFreeList SMS messages with optional filters. Each result includes its `threadId` for joining the conversation. Use sms_get for full single-message detail.
sms_sendwrite actionFreeSend an SMS to a phone number, or an MMS by passing `mediaUrls`. The agent must have a provisioned phone number. Use this for transactional texts or conversational messaging.
sms_thread_getFreeGet one SMS/MMS conversation with its message history, oldest first. Use sms_thread_list to find thread IDs (or take `threadId` off any SMS). For a conversation longer than `limit`, returns its most recent messages; page deeper history with sms_list.
sms_thread_listFreeList SMS/MMS conversations, most recently active first. A conversation is one agent number talking to one external contact. Returns summaries (participant, last message snippet, message count) — use sms_thread_get for the full history. Optionally filter by agentId.
usage_overviewFreeUsage rollup for a billing period. Returns counters keyed by usage type (e.g. 'email_sent', 'sms_sent', 'voice_call_minutes') plus the latest update timestamp. Defaults to the current calendar month in UTC when `period` is omitted. Read-only, callable by any authenticated credential — scoped to the caller's org. Use to answer 'where am I against my tier limits?' without paying for per-event detail (UsageEvent is operator-tier).
vault_credential_createwrite actionFreeCreate a new credential in an agent vault. Pass `type` plus the matching payload block (login / card / identity / oauthToken / apiKey / certificate / notes). For login credentials, prefer `generatePassword` over supplying `login.password` — the vault generates and stores the password server-side and returns only the credential reference, so the secret never enters the conversation. For api_key/oauth_token credentials, set `allowedHosts` so the credential can be exercised through vault_credential_use.
vault_credential_deletewrite actionFreeDelete a credential from vault storage by ID. Use to remove obsolete or compromised secrets.
vault_credential_getFreeGet a single vault credential by ID. Sensitive fields (passwords, tokens, SSNs, CVV) are masked. To use the plaintext for autofill or as an upstream credential, mint a vault token at the credential broker — the LLM never sees the secret directly.
vault_credential_get_totpFreeGet the current TOTP code for a credential that has a TOTP secret configured. Returns the live 6-digit code derived from the stored secret — the secret itself is never disclosed.
vault_credential_listFreeList credentials in an agent vault with optional type filter. Use to browse stored secrets before reading, updating, or deleting entries. Sensitive fields are masked.
vault_credential_request_cancelwrite actionFreeCancel a pending credential request by ID. Invalidates the single-use fill link so the human can no longer submit a value. Use when the request is no longer needed or was created in error.
vault_credential_request_createwrite actionFreeRequest a credential from a HUMAN without the agent or LLM ever seeing the secret. When the connecting MCP client supports inline elicitation, the human is shown a form to type the secret directly — the tool returns `status: FULFILLED` with the `credentialId` in one call, no link needed. Otherwise it returns a single-use fill link (`fillUrl`, emailed to the org owner); poll vault_credential_request_status until `status` is FULFILLED, then use the returned `credentialId` as a normal vault credential. Use this when a flow needs a secret the agent doesn't hold and can't safely be given (passwords, API keys, card numbers).
vault_credential_request_fillFreeInternal: submit a credential-request secret from the Anima UI widget. Not for direct agent use.
vault_credential_request_statusFreeGet the status of a pending credential request by ID. Poll this after vault_credential_request_create until `status` is FULFILLED, then use `credentialId` as a normal vault credential. `maskedPreview` shows a redacted hint of the filled value once available — the plaintext is never returned.
vault_credential_searchFreeSearch vault credentials by keyword across names and content. Use when you know part of the name, URL, or username but not the exact credential ID. Different access pattern from vault_credential_list — list is paginated browsing, search is text-query lookup.
vault_credential_updatewrite actionFreeUpdate an existing vault credential by ID, including optional structured sections and metadata flags. Use to rotate passwords or revise stored details.
vault_credential_useFreeMake an outbound HTTPS call with a stored credential attached SERVER-SIDE, and get the upstream response. Use this to act with a secret (call an API, hit an authed endpoint) WITHOUT ever seeing the plaintext — the platform injects the credential on the wire. The target host must be on the credential's allowlist. Works even for `brokered` credentials that can never be revealed. Prefer this over trying to read a secret: you can use it, you cannot see it.
vault_exchange_token_for_injectionFreeExchange a vtk_ vault token for the PLAINTEXT credential, to inject into a trusted client process (a CLI, the browser extension) — NOT to read it yourself. The API gates this to injector credentials: it only succeeds for a master key or a key carrying the `vault:inject` scope; a plain agent key gets 403. If you are an agent that needs to USE a secret, do NOT use this — use vault_credential_use (the server-side broker), which never reveals the secret.
vault_provisionFreeProvision a credential vault for an agent. Required before vault_credential_create can be called against a freshly-created agent — without a vault, credentials have nowhere to live. Idempotent: returns the existing vault if one already exists. Master-key only.
voice_listFreeList available AI voices for placing phone calls. The catalog is multilingual — filter by language or gender. Each voice includes descriptive metadata and a vendor-neutral audio preview URL (sampleUrl), plus the voice ID needed for phone_call_create.
webhook_deletewrite actionFreeDelete a webhook subscription by ID. Permanently removes the configuration and stops future deliveries. To temporarily pause without deleting, use webhook_set with { id, active: false }.
webhook_getFreeGet a webhook subscription by ID. Returns the full configuration (URL, subscribed events, active state, description).
webhook_listFreeList webhook subscriptions for the calling org with cursor pagination. Use to enumerate existing webhooks before set/delete operations.
webhook_setwrite actionFreeCreate or update a webhook subscription (upsert). If `id` is provided the call updates that webhook (PUT). If omitted it creates a new one (POST) — `url` and `events` are then required. Use this for declarative 'ensure webhook X exists' workflows.
webhook_testwrite actionFreeSend a test event payload to a webhook to verify the endpoint is reachable and signature verification works. Returns a deliveryId you can correlate with your endpoint's logs.
Public scan report
scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 427ms20/20
- Tool poisoning67 tool descriptions checked15/15
- Auth qualityopen endpoint exposes 34 write-action tools with no auth3/15
- Maintenancelast push 8 days ago15/15
- Maintainer identityregistry namespace matches repository owner7/10
Findings (1)
- highWrite-action tools reachable without authentication
auth.open-write
Install directly
claude mcp add --transport http anima https://mcp.useanima.sh/mcp
Anima: common questions
- Is Anima MCP server safe?
- Mostly: it is graded B (80/100). Read the Anima safety report
- How do I install Anima?
- It runs remotely at mcp.useanima.sh. Add it to Claude Code, Claude Desktop or Cursor with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does Anima need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Anima maintained?
- The last commit was 8 days ago (2026-09-12). The latest release is v1.0.1.
- Is Anima up?
- 100% of our last 4 checks got an answer. We check remote servers about four times a day.
- What can I use instead of Anima?
- Servers from other publishers that do the same job: Bird MCP server, CosVoice MCP server and SendSeven Messaging MCP server. Compare all Anima alternatives.
Alternatives to Anima
Same job from other publishers: the closest match first, then the best rated.
BirdSend and receive across email, SMS, WhatsApp, and voice. One API, one contract.not reviewedGrowingA- CosVoiceA real phone number and email for your AI Chief of Staff. Calls, bookings by phone, summaries.not reviewedGrowingA
SendSeven MessagingUnified messaging MCP server: WhatsApp, Instagram, Telegram, SMS, Messenger & email support inboxnot reviewedGrowingA
SMS and WhatsApp MessagingSend WhatsApp, SMS, email or voice to a business with the compliance gate enforced.not reviewedGrowingB- Atomic MailProgrammable email inbox for AI agents — JMAP, PoW auth, stdio MCP server.not reviewedEstablishedA