Anam MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ANAM_API_KEY | Yes | Your Anam API key | |
| ANAM_API_URL | No | API base URL (for staging) | https://api.anam.ai |
| MEET_PAGE_URL | No | Avatar meet page URL | https://meet.anam.ai |
| RECALL_API_KEY | No | Recall AI API key (for meeting avatars) | |
| TEXT_TO_AVATAR_URL | No | Text-to-avatar service URL (early access) | https://anam-org--text-to-avatar-api.modal.run |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_personasA | List all personas in your Anam account. Returns a formatted summary of personas with their IDs, names, and avatars. Args: page: Page number (default: 1) per_page: Items per page (default: 100) |
| get_personaA | Get details of a specific persona by ID. Args: persona_id: The UUID of the persona to retrieve |
| create_personaA | Create a new Anam persona with specified avatar, voice, and personality. Args: name: Display name for the persona (e.g., "Customer Support Agent") avatar_id: UUID of the avatar. Use list_avatars or search_avatars to find one. voice_id: UUID of the voice. Use list_voices or search_voices to find one. system_prompt: Instructions defining the persona's personality and behavior. llm_id: UUID of the LLM. Defaults to Anam's standard LLM. |
| update_personaA | Update an existing persona. Only provide the fields you want to change. Args: persona_id: The UUID of the persona to update name: New display name avatar_id: New avatar UUID voice_id: New voice UUID system_prompt: New personality instructions llm_id: New LLM UUID |
| delete_personaA | Delete a persona by ID. This action cannot be undone. Args: persona_id: The UUID of the persona to delete |
| list_avatarsA | List all available avatars. Returns a formatted summary of avatars with IDs, names, variants, and type (stock/custom). Args: page: Page number (default: 1) per_page: Items per page (default: 100) |
| search_avatarsA | Search avatars by name. Fetches all avatars and filters by name match. Use this to find avatars like "Cara", "Mia", "Gabriel", etc. Args: query: Name to search for (case-insensitive, partial match) stock_only: If True, only return stock avatars (not custom) |
| create_avatarA | Create a custom avatar from an image URL. Note: This feature is only available for enterprise and pro plans. Args: name: Display name for the avatar image_url: URL of the image to use |
| get_avatarB | Get details of a specific avatar by ID. Args: avatar_id: The UUID of the avatar to retrieve |
| update_avatarA | Update a custom avatar. Only provide the fields you want to change. Args: avatar_id: The UUID of the avatar to update name: New internal name display_name: New display name |
| delete_avatarA | Delete a custom avatar by ID. Cannot delete stock avatars. Args: avatar_id: The UUID of the avatar to delete |
| list_voicesB | List all available voices. Returns a formatted summary of voices with IDs, names, and languages. Over 400 voices available in 50+ languages. Args: page: Page number (default: 1) per_page: Items per page (default: 100) |
| search_voicesA | Search voices by name, country, or gender. Fetches all voices and filters by the specified criteria. Args: query: Name to search for (case-insensitive, partial match) country: Country code to filter by (e.g., "US", "GB", "FR", "DE", "PT") gender: Gender to filter by ("MALE" or "FEMALE") |
| get_voiceA | Get details of a specific voice by ID. Args: voice_id: The UUID of the voice to retrieve |
| create_voiceB | Create a custom voice configuration. Args: display_name: Display name for the voice provider: Voice provider (e.g., "cartesia", "elevenlabs") provider_voice_id: The voice ID from the provider gender: Gender of the voice ("MALE" or "FEMALE") country: Country code (e.g., "US", "GB") description: Optional description |
| update_voiceA | Update a voice configuration. Only provide the fields you want to change. Args: voice_id: The UUID of the voice to update display_name: New display name description: New description |
| delete_voiceB | Delete a voice by ID. Args: voice_id: The UUID of the voice to delete |
| list_toolsA | List all tools in your organization. Returns webhook tools, knowledge tools, and client tools that can be attached to personas. Args: page: Page number (default: 1) per_page: Items per page (default: 100) |
| create_webhook_toolA | Create a webhook tool for personas to call external APIs. Args: name: Tool name in snake_case (e.g., "check_order_status") description: When the LLM should call this tool. Be specific. url: The HTTP endpoint to call method: HTTP method (GET, POST, PUT, PATCH, DELETE) await_response: Wait for response (False for fire-and-forget) |
| create_knowledge_toolA | Create a knowledge tool for RAG (document search). Args: name: Tool name in snake_case (e.g., "search_product_docs") description: When the LLM should use this tool folder_ids: List of knowledge folder UUIDs to search |
| get_toolA | Get details of a specific tool by ID. Args: tool_id: The UUID of the tool to retrieve |
| update_toolA | Update a tool. Only provide the fields you want to change. Args: tool_id: The UUID of the tool to update name: New tool name description: New description url: New webhook URL (for webhook tools) method: New HTTP method (for webhook tools) await_response: Whether to wait for response (for webhook tools) |
| delete_toolC | Delete a tool by ID. Args: tool_id: The UUID of the tool to delete |
| create_session_tokenA | Create a session token for the Anam client SDK. Use EITHER persona_id (for saved personas) OR individual config fields (ephemeral). Args: persona_id: UUID of a saved persona (recommended for production) name: Persona name (ephemeral mode) avatar_id: Avatar UUID (ephemeral). Use search_avatars to find one. voice_id: Voice UUID (ephemeral). Use search_voices to find one. system_prompt: Personality instructions (ephemeral) llm_id: LLM UUID (ephemeral, defaults to GPT-4o-mini) avatar_model: Avatar model ("cara-2" or "cara-3", default: cara-3) max_session_length_seconds: Session timeout skip_greeting: Skip the initial greeting (default: False) |
| list_sessionsA | List all sessions in your account. Args: page: Page number (default: 1) per_page: Items per page (default: 100) |
| get_sessionA | Get details of a specific session by ID. Args: session_id: The UUID of the session to retrieve |
| get_session_recordingB | Get recording information for a session. Args: session_id: The UUID of the session |
| list_knowledge_foldersA | List all knowledge folders in your organization. Knowledge folders contain documents for RAG capabilities. |
| create_knowledge_folderB | Create a new knowledge folder for documents. After creating, upload documents via Anam Lab UI or API. Args: name: Folder name (e.g., "Product Documentation") description: Optional description |
| get_knowledge_groupA | Get details of a specific knowledge group by ID. Args: group_id: The UUID of the knowledge group to retrieve |
| update_knowledge_groupB | Update a knowledge group. Only provide the fields you want to change. Args: group_id: The UUID of the knowledge group to update name: New name description: New description |
| delete_knowledge_groupA | Delete a knowledge group by ID. This will also delete all documents in the group. Args: group_id: The UUID of the knowledge group to delete |
| search_knowledge_groupC | Search within a knowledge group for relevant documents. Args: group_id: The UUID of the knowledge group to search query: Search query limit: Maximum number of results |
| list_knowledge_documentsA | List all documents in a knowledge group. Args: group_id: The UUID of the knowledge group page: Page number (default: 1) per_page: Items per page (default: 100) |
| get_knowledge_documentA | Get details of a specific knowledge document by ID. Args: document_id: The UUID of the document to retrieve |
| get_knowledge_document_downloadC | Get download URL for a knowledge document. Args: document_id: The UUID of the document |
| upload_knowledge_documentB | Upload a document to a knowledge group. Args: group_id: The UUID of the knowledge group name: Document name content: Document content (text) content_type: MIME type (default: text/plain) |
| update_knowledge_documentB | Update a knowledge document. Args: document_id: The UUID of the document to update name: New document name |
| delete_knowledge_documentB | Delete a knowledge document by ID. Args: document_id: The UUID of the document to delete |
| list_llmsB | List all available LLMs. Args: page: Page number (default: 1) per_page: Items per page (default: 100) |
| get_llmB | Get details of a specific LLM by ID. Args: llm_id: The UUID of the LLM to retrieve |
| create_llmB | Create a custom LLM configuration. Args: name: Display name for the LLM provider: LLM provider (e.g., "openai", "anthropic") model: Model name (e.g., "gpt-4", "claude-3") api_key: API key for the provider base_url: Custom base URL (for self-hosted models) temperature: Sampling temperature max_tokens: Maximum output tokens |
| update_llmA | Update an LLM configuration. Only provide the fields you want to change. Args: llm_id: The UUID of the LLM to update name: New display name temperature: New sampling temperature max_tokens: New maximum output tokens |
| delete_llmB | Delete an LLM by ID. Args: llm_id: The UUID of the LLM to delete |
| list_share_linksB | List all share links in your organization. Args: page: Page number (default: 1) per_page: Items per page (default: 100) |
| get_share_linkA | Get details of a specific share link by ID. Args: link_id: The UUID of the share link to retrieve |
| create_share_linkB | Create a new share link for a persona. Args: persona_id: The UUID of the persona to share name: Optional name for the link expires_at: Expiration timestamp (ISO 8601) max_uses: Maximum number of uses |
| update_share_linkA | Update a share link. Only provide the fields you want to change. Args: link_id: The UUID of the share link to update name: New name expires_at: New expiration timestamp (ISO 8601) max_uses: New maximum number of uses is_active: Whether the link is active |
| delete_share_linkB | Delete a share link by ID. Args: link_id: The UUID of the share link to delete |
| generate_avatar_videoA | Generate an avatar video from a text script. INTERNAL TESTING ONLY - This feature is in early access. Contact support@anam.ai for access. Creates an MP4 video of an avatar speaking the provided script. The video generation runs asynchronously and may take 30-120 seconds depending on script length. Args: script: The text for the avatar to speak persona_id: Use a saved persona (provide this OR avatar_id + voice_id) avatar_id: Avatar ID for ephemeral session (requires voice_id) voice_id: Voice ID for ephemeral session (requires avatar_id) avatar_model: Avatar model to use (default: cara-3) poll_interval: Seconds between status checks (default: 3.0) max_wait: Maximum seconds to wait for completion (default: 600.0) Stock Avatars (use with voice_id): Female: - Liv: 071b0286-4cce-4808-bee2-e642f1062de3 - Mia: edf6fdcb-acab-44b8-b974-ded72665ee26 - Sophie: 6dbc1e47-7768-403e-878a-94d7fcc3677b - Bella: dc9aa3e1-32f2-499e-9921-ecabac1076fc - Julia: edcb8f1a-334f-4cdb-871c-5c513db806a7 - Anne: 27e12daa-50fc-4384-93c2-ebca73f1f78d - Layla: ae2ea8c1-db28-47e3-b6ea-493e4ed3c554 Male: - Gabriel: 6cc28442-cccd-42a8-b6e4-24b7210a09c5 - Finn: 8a339c9f-0666-46bd-ab27-e90acd0409dc - Hunter: ecfb2ddb-80ec-4526-88a7-299a4738957c - Kevin: ccf00c0e-7302-455b-ace2-057e0cf58127 - Richard: 19d18eb0-5346-4d50-a77f-26b3723ed79d - William: 81b70170-2e80-4e4b-a6fb-e04ac110dc4b Recommended Voices: Female: Jessica - b138c2a2-ba66-4887-95d5-1a57093fc92d Male: Adam - e54745c7-9439-44c3-b61a-193b42cce5bd Returns: Download URL for the generated video, or error message |
| add_avatar_to_meetingA | Add an Anam avatar to a video meeting (Zoom, Google Meet, Teams). Creates an ephemeral session and deploys a Recall bot that shows the avatar as its camera feed. The avatar can hear and respond to meeting participants. Args: meeting_url: Video conference URL (e.g., https://meet.google.com/abc-defg-hij) avatar_id: Anam avatar ID. Use search_avatars to find one. voice_id: Anam voice ID. Use search_voices to find one. system_prompt: Instructions for the avatar's personality and behavior. bot_name: Name shown in the meeting participant list (default: "Anam Avatar") llm_id: Optional LLM ID. Defaults to GPT-4o-mini. avatar_model: Avatar model ("cara-2" or "cara-3", default: cara-3) Returns: Bot ID and status information |
| get_meeting_bot_statusA | Check the status of a Recall meeting bot. Args: bot_id: The Recall bot ID returned by add_avatar_to_meeting Returns: Bot status including meeting URL, join status, etc. |
| remove_avatar_from_meetingA | Remove an avatar from a video meeting. Makes the Recall bot leave the meeting gracefully. Args: bot_id: The Recall bot ID returned by add_avatar_to_meeting |
| list_meeting_botsB | List all Recall meeting bots. Shows recent bots including their status and meeting URLs. Args: limit: Maximum number of bots to return (default: 20) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/anam-org/anam-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server