Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.anima-labs-ai/anima

REMOTE · MCP.USEANIMA.SH · SCANNED SEP 21

Give your AI agent an identity it owns: email inbox, US phone number, SMS, voice, and a vault.

Available components

−46 this week 36 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
  • Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
  • Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified

Unverified: 6 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.

Install

How do I install the io.github.anima-labs-ai/anima MCP server?

io.github.anima-labs-ai/anima is a hosted endpoint at https://mcp.useanima.sh/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.useanima.sh

# add to Claude Code
claude mcp add --transport http anima-labs-ai-anima 'https://mcp.useanima.sh/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "anima-labs-ai-anima": {
      "url": "https://mcp.useanima.sh/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "anima-labs-ai-anima": {
      "type": "http",
      "url": "https://mcp.useanima.sh/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.anima-labs-ai-anima]
url = "https://mcp.useanima.sh/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "anima-labs-ai-anima": {
      "type": "remote",
      "url": "https://mcp.useanima.sh/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add anima-labs-ai-anima --url 'https://mcp.useanima.sh/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  anima-labs-ai-anima:
    url: "https://mcp.useanima.sh/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "anima-labs-ai-anima": {
      "Transport": "http",
      "Url": "https://mcp.useanima.sh/mcp"
    }
  }
}
# add to Vellum
assistant mcp add anima-labs-ai-anima -t streamable-http -u 'https://mcp.useanima.sh/mcp'
// mcp.json
{
  "mcpServers": {
    "anima-labs-ai-anima": {
      "type": "http",
      "url": "https://mcp.useanima.sh/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 −49
    • Endpoint reachability: reachable → behind authorisation security
    • Tool safety: pass → unverified security
    • Stability: 0.40 → unverified security
    • Transport: pass → unverified security
    • Authorization: The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 +1
    • Stability: unverified → 0.03 functional
  • 8 Sept 26 +43
    • Transport: unverified → pass security
    • Injection markers: unverified → pass security
    • First check of Judged manipulation: pass security
    • Authorization: Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. security
    • MCP protocol: unverified → pass functional
    • Schema quality: unverified → 100 functional
    • Tool coverage: unverified → 100 functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: excellent functional
    • First check of Schema quality: fail functional
    • First check of Capabilities: pass functional
    • First check of Destructive annotations: 100 functional
    • First check of Tool coverage: 100 functional
    • First check of Tool coverage: 100 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Probed https://mcp.useanima.sh/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.useanima.sh CN=WR3,O=Google Trust Services,C=US 31 Jul 2026 29 Oct 2026 RSA 2048 SHA256-RSA 3db3dab4355b41d709425b8bc749683c
SANs: mcp.useanima.sh
CN=WR3,O=Google Trust Services,C=US (CA) CN=GTS Root R1,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 RSA 2048 SHA256-RSA 7ff005a91568d63abc22861684aa4b5a
CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 19 Jun 2020 28 Jan 2028 RSA 4096 SHA256-RSA 77bd0d6cdb36f91aea210fc4f058d30d

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.useanima.sh. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
sh. present 55297 8 Verified
useanima.sh. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On connection
HTTP status 401

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.useanima.sh/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://mcp.useanima.sh/.well-known/oauth-protected-resource"
Header Value
www-authenticate Bearer resource_metadata="https://mcp.useanima.sh/.well-known/oauth-protected-resource"

Protected resource metadata

Document https://mcp.useanima.sh/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.useanima.sh
Authorisation server https://connect.useanima.sh

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.useanima.sh/mcp Auth required 401
http (plaintext) http://mcp.useanima.sh/mcp HTTPS enforced 302 https://mcp.useanima.sh/mcp
MCP tools · 67 exposed · ~8,116 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
account_overview ~129

Single-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.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

agent_create ~314

Create 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.

NameTypeReqDescription
addressobjectOptional initial postal address to attach to the agent on creation. To add more addresses later, use agent_update.
emailstringOptional email address to provision for this agent
idempotencyKeystringOptional Idempotency-Key. Send the SAME key on retries of the SAME create payload to guarantee exactly-once provisioning even if the network drops mid-flight. Reuse with a different body returns IDEM…
metadataobjectOptional agent metadata as key-value string pairs
namestringyesAgent display name
provisionPhonebooleanWhether to auto-provision a phone number for this agent
slugstringURL-friendly unique identifier (lowercase alphanumeric + hyphens, 2-64 chars). Auto-derived from name if omitted.

Structured output declared, but exposes no named fields.

No examples provided.

agent_delete ~51

Delete 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.

NameTypeReqDescription
idstringyesAgent ID
NameTypeReqDescription
deletedboolean
idstring

No examples provided.

agent_get ~74

Fetch 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.

NameTypeReqDescription
idstringyesAgent ID. Returns full agent detail including addresses, emailIdentities, and phoneIdentities.

Structured output declared, but exposes no named fields.

No examples provided.

agent_list ~75

List 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.

NameTypeReqDescription
cursorstringPagination cursor from a previous list response.
limitintegerMaximum number of agents to return.
NameTypeReqDescription
countnumber
cursorstring|null
has_moreboolean
itemsarray
next_offsetnumber
totalnumber

No examples provided.

agent_update ~157

Update 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.

NameTypeReqDescription
addAddressobjectAttach a new postal address to this agent.
deleteAddressIdstringID of an address to remove from this agent.
idstringyesAgent ID
metadataobjectUpdated metadata as key-value string pairs
namestringUpdated agent display name
updateAddressobjectUpdate fields on an existing address. Pass addressId + the fields to change.

Structured output declared, but exposes no named fields.

No examples provided.

domain_create ~53

Register a custom sending domain in the workspace so it can be configured for email traffic. Use this before DNS setup and verification.

NameTypeReqDescription
domainstringyesDomain name to add, such as mail.example.com or example.com.

Structured output declared, but exposes no named fields.

No examples provided.

domain_delete ~41

Delete a domain from the workspace when it is no longer needed. Use this to remove old or incorrect domain configurations.

NameTypeReqDescription
idstringyesUnique domain ID.
NameTypeReqDescription
deletedboolean
idstring

No examples provided.

domain_get ~42

Fetch full detail for a single domain by ID, including verification and configuration state. Use domain_list to browse all domains.

NameTypeReqDescription
idstringyesUnique domain ID.

Structured output declared, but exposes no named fields.

No examples provided.

domain_list ~32

List all domains connected to the current workspace. Use this to audit configured sender domains and choose one for follow-up actions.

Input schema present but exposes no named parameters.

NameTypeReqDescription
countnumber
cursorstring|null
has_moreboolean
itemsarray
next_offsetnumber
totalnumber

No examples provided.

domain_update ~73

Update 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.

NameTypeReqDescription
feedbackEnabledbooleanEnable or disable bounce + complaint feedback processing for this domain.
idstringyesUnique domain ID.

Structured output declared, but exposes no named fields.

No examples provided.

domain_verify ~43

Trigger a verification check for a domain after DNS records are configured. Use this to re-run DNS validation and update verification status.

NameTypeReqDescription
idstringyesUnique domain ID.

Structured output declared, but exposes no named fields.

No examples provided.

domain_zone_file ~44

Get the full DNS zone file for a domain. Use this for complete DNS export or to verify all records are correctly configured.

NameTypeReqDescription
idstringyesUnique domain ID.

Structured output declared, but exposes no named fields.

No examples provided.

email_attachment_get ~47

Get a temporary download URL for an email attachment. Use this when you need direct file access for preview or download.

NameTypeReqDescription
idstringyesAttachment ID. Returns a temporary download URL.

Structured output declared, but exposes no named fields.

No examples provided.

email_draft_create ~230

Create 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.

NameTypeReqDescription
agentIdstringyesOwning agent ID.
bccarrayBCC recipients.
bodystringPlain-text body.
bodyHtmlstringHTML body.
ccarrayCC recipients.
fromIdentityIdstringOptional EmailIdentity ID to send from. Must belong to this agent and be verified. If omitted, the agent's primary identity is used at send time. Discover available IDs from the `emailIdentities` arr…
inReplyTostringOptional In-Reply-To Message-ID for threading on send.
metadataobjectArbitrary metadata.
referencesarrayOptional References chain for threading.
subjectstringSubject line.
toarrayRecipient email addresses (may be empty for an incomplete draft).

Structured output declared, but exposes no named fields.

No examples provided.

email_draft_delete ~47

Discard a draft. Use this to remove drafts that are no longer needed. Use email_draft_send if you want to deliver instead.

NameTypeReqDescription
idstringyesDraft ID.
NameTypeReqDescription
deletedboolean
idstring

No examples provided.

email_draft_get ~38

Fetch full detail for a single draft by ID. Use email_draft_list to browse drafts.

NameTypeReqDescription
idstringyesDraft ID.

Structured output declared, but exposes no named fields.

No examples provided.

email_draft_list ~78

List email drafts with optional filters. Returns lightweight draft records — use email_draft_get for full detail.

NameTypeReqDescription
agentIdstringFilter drafts by agent ID.
cursorstringPagination cursor from a previous list response.
limitintegerMax drafts when listing. Ignored when `id` is provided.
NameTypeReqDescription
countnumber
cursorstring|null
has_moreboolean
itemsarray
next_offsetnumber
totalnumber

No examples provided.

email_draft_send ~60

Send 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.

NameTypeReqDescription
idstringyesDraft ID.
NameTypeReqDescription
idstring
messageIdstring
statusstring

No examples provided.

email_forward ~133

Forward an existing email to another recipient by loading the original content first. Use this to share a prior message while preserving context.

NameTypeReqDescription
agentIdstringyesAgent ID forwarding the email.
attachmentsarrayOptional additional file attachments on the forward (max 20 entries, 25MB total). Original email's attachments are NOT auto-included — pass them explicitly if you want them forwarded.
originalIdstringyesOriginal email ID being forwarded.
textstringOptional introductory text to prepend before forwarded content.
toarrayyesRecipient email address(es) for the forwarded message.
NameTypeReqDescription
idstring
messageIdstring
statusstring

No examples provided.

email_get ~48

Fetch full detail for a single email by ID, including metadata and body. Use email_list to browse emails in a folder.

NameTypeReqDescription
idstringyesEmail ID. Returns full metadata and body.

Structured output declared, but exposes no named fields.

No examples provided.

email_label ~170

Add 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.

NameTypeReqDescription
addLabelsarrayLabels to add. Adding `read` removes `unread` and vice versa — one state under two names, and a message always carries exactly one of them.
idstringyesID of the message to relabel.
removeLabelsarrayLabels to remove. Removing `unread` marks the message read (and vice versa); a message is never left with neither.

Structured output declared, but exposes no named fields.

No examples provided.

email_list ~217

List 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.

NameTypeReqDescription
agentIdstringFilter emails by agent ID. Agent-scoped keys are already limited to their own agent; master keys see the whole workspace unless filtered.
cursorstringOpaque pagination cursor from a previous response's `pagination.nextCursor`. Omit for the first page.
includeSpambooleanInclude messages classified as spam on arrival. Excluded by default. Naming `spam` in `labels` also counts as asking for it.
labelsarrayOnly return messages carrying ALL of these labels. System labels: `unread`, `read`, `archived`, `spam`. Case-insensitive. Use email_label to change them.
limitintegerMax emails to return per page (1-100, default 20).
NameTypeReqDescription
countnumber
cursorstring|null
has_moreboolean
itemsarray
next_offsetnumber
totalnumber

No examples provided.

email_reply ~132

Reply 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.

NameTypeReqDescription
agentIdstringyesAgent ID sending the reply.
attachmentsarrayOptional file attachments on the reply (max 20 entries, 25MB total).
htmlstringOptional HTML content for the reply body.
originalIdstringyesOriginal email ID being replied to.
replyAllbooleanWhen true, include additional participants from the original email.
textstringyesPlain-text content for your reply message.
NameTypeReqDescription
idstring
messageIdstring
statusstring

No examples provided.

email_search ~346

Search 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.

NameTypeReqDescription
agentIdstringFilter results to a specific agent.
cursorstringPagination cursor from a previous fulltext response's `pagination.nextCursor`. Fulltext mode only.
includeSpambooleanInclude messages classified as spam on arrival. Excluded by default. Naming `spam` in `labels` also counts as asking for it.
labelsarrayOnly return messages carrying ALL of these labels. System labels: `unread`, `read`, `archived`, `spam`. Case-insensitive. Use email_label to change them.
limitintegerMax results (fulltext: 1-100, default 20; semantic: 1-50, default 10).
modestringSearch mode. `fulltext` (default) does substring matching over subject/body/addresses of EMAIL messages and supports cursor pagination. `semantic` ranks by vector-embedding similarity — better for me…
querystringyesSearch query text.
thresholdnumberMinimum similarity score 0-1 (semantic mode only, default 0.7).

Structured output declared, but exposes no named fields.

No examples provided.

email_send ~360

Send a new outbound email from the agent mailbox. Use this when you need to compose and deliver a message with optional CC, threading headers.

NameTypeReqDescription
agentIdstringyesAgent ID sending the email.
attachmentsarrayOptional file attachments (max 20 entries, 25MB total). Each entry must provide either `content` (base64-inline) or `url` (public URL for server-fetch). Use `contentId` for inline images referenced i…
bccarrayOptional BCC recipient email addresses.
bodystringyesPlain-text body content for the email.
bodyHtmlstringOptional HTML body content for rich email formatting.
ccarrayOptional CC recipient email addresses.
fromIdentityIdstringOptional EmailIdentity ID to send from. Must belong to this agent and be verified. If omitted, the agent's primary identity is used. Use this to route different message types through different identi…
headersobjectOptional custom email headers as key-value pairs (e.g. {"X-Campaign": "onboarding"}). Merged with Anima's own threading/compliance headers, which win on conflict.
inReplyTostringOptional message ID to set the In-Reply-To header for threading.
referencesarrayOptional list of message IDs to include in the References header.
subjectstringyesSubject line for the outgoing email.
toarrayyesList of recipient email addresses.
NameTypeReqDescription
idstring
messageIdstring
statusstring

No examples provided.

email_thread_get ~133

Fetch 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.

NameTypeReqDescription
agentIdstringOptional agent scope filter (only return messages owned by this agent).
idstringSingle thread ID to fetch. Pass either `id` or `ids`.
idsarrayMultiple thread IDs to fetch in parallel. Pass either `id` or `ids`.
limitintegerOptional max messages per thread.

Structured output declared, but exposes no named fields.

No examples provided.

extension_connect ~196

Create 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.

NameTypeReqDescription
agentIdstringAgent to connect the extension to. REQUIRED when authenticating with a master key (mk_); OMIT when using an agent key (ak_/oat_) — the server resolves the agent from the key.
ttlstringRequested lifetime of the connection. A value longer than the org's policy maximum is rejected (not silently shortened); omit to use the policy default.
NameTypeReqDescription
agentIdstringyes
connectUrlstringyes
exchangeExpiresAtstringyes
expiresAtstring|nullyes
policystringyes

No examples provided.

inbox_create ~179

Create 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.

NameTypeReqDescription
agentIdstringAgent ID to associate with this inbox. Inbound mail to the inbox is attributed to this agent.
displayNamestringHuman-readable display name for the inbox (max 128 characters).
domainstringDomain for the inbox address. Uses the platform default (agents.useanima.sh) when omitted. Custom domains must already be registered and verified — see domain_list.
usernamestringLocal part of the inbox email address (letters, numbers, dots, hyphens, underscores; normalized to lowercase; must not start/end with a dot or hyphen). A random local part is generated when omitted.

Structured output declared, but exposes no named fields.

No examples provided.

inbox_delete ~47

Permanently delete an inbox and its mailbox. Mail sent to the address after deletion bounces. This cannot be undone. Requires master key access.

NameTypeReqDescription
idstringyesUnique inbox ID.
NameTypeReqDescription
deletedboolean
idstring

No examples provided.

inbox_get ~49

Fetch full detail for a single inbox by ID, including its email address, display name, and associated agent. Use inbox_list to browse all inboxes.

NameTypeReqDescription
idstringyesUnique inbox ID.

Structured output declared, but exposes no named fields.

No examples provided.

inbox_list ~96

List inboxes in the workspace with cursor pagination and optional free-text search. Returns the address, display name, and agent association for each inbox.

NameTypeReqDescription
cursorstringPagination cursor from a previous list response (pagination.nextCursor).
limitintegerMax inboxes to return per page (1-100, default 20).
querystringFree-text search filter matched against inbox email addresses and display names.
NameTypeReqDescription
countnumber
cursorstring|null
has_moreboolean
itemsarray
next_offsetnumber
totalnumber

No examples provided.

inbox_update ~124

Update 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.

NameTypeReqDescription
agentIdstring|nullAgent ID to associate with the inbox. Pass null to unlink the current agent. Omit to leave unchanged.
displayNameNew human-readable display name (max 128 characters). Pass null to clear it. Omit to leave unchanged.
idstringyesUnique inbox ID.

Structured output declared, but exposes no named fields.

No examples provided.

phone_call_create ~507

Place 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.

NameTypeReqDescription
agentConfigobjectOpt in to the server-side conversation loop. When present (even as `{}`), the Anima API runs the LLM-backed conversation loop on each caller turn and speaks the reply — the MCP tool just records both…
agentIdstringRequired when the API key / OAuth grant is user-bound (no agentId in the auth context, e.g. a master key or a user-consented Anima Connect grant) — picks which of the org's agents places the call. Ig…
firstMessagestringyesOpening line the agent speaks when the call is answered. Be natural — this is what the human hears first.
fromNumberstringOptional source phone in E.164. Default: the calling agent's primary phone identity.
maxDurationSecintegerHard cap on total call duration in seconds. Default 600 (10 min). Max 1800 (30 min).
silenceTimeoutSecintegerIf no caller utterance arrives within this many seconds (measured from the last agent utterance), the call hangs up automatically. Default 30.
tostringyesDestination phone number in E.164 format.
voiceIdstringOptional voice override. Use voice_list for valid IDs; the catalog is multilingual and each entry carries an audio preview.
NameTypeReqDescription
callIdstring|nullyesID of the placed call. `null` if the call ended before the carrier assigned an ID (e.g. WS auth failure or pre-ring termination) — use `endedReason` to understand why.
durationSecnumberTotal call duration in seconds.
endedReasonstringyesWhy the call ended (hangup, timeout, error, etc.).
errorobjectPresent when `endedReason` is `error` or `elicitation_unsupported` — carries the underlying code+message so callers can distinguish capability gaps from real failures.
latencyTurnsarrayPer-turn latency breakdown captured by the API's LatencyTracker. Each entry is a turn; the t_*_ms fields are absolute millisecond timestamps. Diff adjacent marks to compute stage durations — common o…
transcriptarrayyesFull transcript with role labels in chronological order.

No examples provided.

phone_call_get ~74

Get 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.

NameTypeReqDescription
idstringyesThe call ID.

Structured output declared, but exposes no named fields.

No examples provided.

phone_call_list ~108

List phone calls with optional filters. Returns lightweight call records — for full call detail including summary and score, use phone_call_get.

NameTypeReqDescription
agentIdstringFilter by agent ID.
directionstringFilter by call direction.
limitintegerMax results (default: 20).
offsetintegerOffset for pagination.
statusstringFilter by call state (INITIATING, RINGING, ACTIVE, ENDED, etc.).
NameTypeReqDescription
countnumber
cursorstring|null
has_moreboolean
itemsarray
next_offsetnumber
totalnumber

No examples provided.

phone_call_recording_get ~54

Get 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.

NameTypeReqDescription
idstringyesThe call ID.

Structured output declared, but exposes no named fields.

No examples provided.

phone_call_transcript_get ~48

Get the full transcript of a phone call with speaker labels, timestamps, and confidence scores. Available after the call ends and transcription completes.

NameTypeReqDescription
idstringyesThe call ID.

Structured output declared, but exposes no named fields.

No examples provided.

phone_number_list ~45

List phone numbers assigned to an agent. Each result includes status and capability flags (sms/mms/voice).

NameTypeReqDescription
agentIdstringyesAgent whose phone numbers to list.
NameTypeReqDescription
countnumber
cursorstring|null
has_moreboolean
itemsarray
next_offsetnumber
totalnumber

No examples provided.

phone_number_provision ~137

Provision 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.

NameTypeReqDescription
agentIdstringyesAgent ID to assign the provisioned phone number to.
areaCodestringPreferred area code for the phone number.
capabilitiesarrayOptional capability list (sms, mms, voice) the number must support.
countryCodestringISO 3166-1 alpha-2 country code for number selection (default US).

Structured output declared, but exposes no named fields.

No examples provided.

phone_number_release ~68

Release a previously provisioned phone number back to the carrier pool. Use this when cleaning up unused numbers. Released numbers cannot be recovered.

NameTypeReqDescription
agentIdstringyesAgent ID that currently owns the phone number.
phoneNumberstringyesE.164 formatted phone number to release.
NameTypeReqDescription
deletedboolean
idstring

No examples provided.

sms_get ~48

Fetch full detail for a single SMS by ID (includes its `threadId` for joining the conversation). Use sms_list to browse multiple SMS messages.

NameTypeReqDescription
idstringyesSMS message ID.

Structured output declared, but exposes no named fields.

No examples provided.

sms_list ~76

List SMS messages with optional filters. Each result includes its `threadId` for joining the conversation. Use sms_get for full single-message detail.

NameTypeReqDescription
agentIdstringFilter SMS by agent ID.
cursorstringPagination cursor from a previous list response.
limitintegerMax SMS messages to return.
NameTypeReqDescription
countnumber
cursorstring|null
has_moreboolean
itemsarray
next_offsetnumber
totalnumber

No examples provided.

sms_send ~144

Send 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.

NameTypeReqDescription
agentIdstringyesAgent ID sending the SMS. The agent must have a provisioned phone number.
bodystringyesMessage body. SMS character limits apply (~160 chars per segment).
mediaUrlsarrayOptional array of media URLs for MMS. Pass one URL for a single image/file; multiple for multi-part MMS. Carrier limits apply.
tostringyesRecipient phone number in E.164 format (e.g. +14155551234).
NameTypeReqDescription
idstring
messageIdstring
statusstring

No examples provided.

sms_thread_get ~94

Get 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.

NameTypeReqDescription
idstringyesThread ID (use sms_thread_list to find IDs).
limitintegerMax messages to return in the thread.

Structured output declared, but exposes no named fields.

No examples provided.

sms_thread_list ~121

List 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.

NameTypeReqDescription
agentIdstringFilter conversations by agent ID. Omit to see threads across all agents you have access to.
limitintegerMax thread summaries to return. Defaults to 20.
offsetintegerPagination offset (skip this many threads from the start).
NameTypeReqDescription
countnumber
cursorstring|null
has_moreboolean
itemsarray
next_offsetnumber
totalnumber

No examples provided.

usage_overview ~133

Usage 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).

NameTypeReqDescription
periodstringBilling period in YYYY-MM format (e.g. '2026-05'). Defaults to the current calendar month in UTC.

Structured output declared, but exposes no named fields.

No examples provided.

vault_credential_create ~380

Create 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.

NameTypeReqDescription
agentIdstringAgent ID that owns the new credential. Optional when using an agent-bound credential.
apiKeyobjectAPI key payload for api_key-type.
cardobjectCard payload for card-type.
certificateobjectCertificate payload for certificate-type.
favoritebooleanOptional favorite flag.
fieldsarrayOptional custom fields.
generatePasswordobjectGenerate the login password server-side instead of supplying login.password. Preferred for login credentials: the password is created and stored inside the vault and never enters the conversation. On…
identityobjectIdentity payload for identity-type.
loginobjectLogin payload for login-type.
namestringyesHuman-readable credential name.
notesstringOptional secure note text.
oauthTokenobjectOAuth token payload for oauth_token-type.
revealPolicystringReveal policy. 'brokered' means the plaintext is never returned by any read/reveal/export path — not even to the org master key; the secret is only usable via vault_credential_use (recovery = rotatio…
typestringyesCredential type.

Structured output declared, but exposes no named fields.

No examples provided.

vault_credential_delete ~58

Delete a credential from vault storage by ID. Use to remove obsolete or compromised secrets.

NameTypeReqDescription
agentIdstringAgent ID that owns the credential. Optional when using an agent-bound credential.
idstringyesCredential ID.
NameTypeReqDescription
deletedboolean
idstring

No examples provided.

vault_credential_get ~97

Get 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.

NameTypeReqDescription
agentIdstringAgent ID that owns the credential. Optional when using an agent-bound credential.
idstringyesCredential ID.

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the io.github.anima-labs-ai/anima MCP server?

io.github.anima-labs-ai/anima is an MCP server listed in the public MCP registry as io.github.anima-labs-ai/anima. Give your AI agent an identity it owns: email inbox, US phone number, SMS, voice, and a vault. This page covers its hosted endpoint (https://mcp.useanima.sh/mcp).

Is the io.github.anima-labs-ai/anima MCP server safe to use?

io.github.anima-labs-ai/anima scores 36 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.anima-labs-ai/anima MCP server expose?

io.github.anima-labs-ai/anima exposes 67 tools: agent_create, agent_get, agent_list, agent_update, agent_delete, and 62 more. Their descriptions and schemas cost roughly 8,116 tokens of context every time the server is loaded.

Does the io.github.anima-labs-ai/anima MCP server require authentication?

Yes. io.github.anima-labs-ai/anima asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the io.github.anima-labs-ai/anima MCP server still maintained?

io.github.anima-labs-ai/anima is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.