Run EchoCall AI phone and chat agents from ChatGPT or Claude: calls, agents, knowledge and numbers.
Connect Remote server
claude mcp add --transport http echocall https://hub.echocall.de/mcp
{
"mcpServers": {
"echocall": {
"url": "https://hub.echocall.de/mcp"
}
}
}
{
"servers": {
"echocall": {
"type": "http",
"url": "https://hub.echocall.de/mcp"
}
}
}
Settings > Connectors > Add custom connector
URL: https://hub.echocall.de/mcp
Tools 80 found in our last check
list_agentsList voice agents Returns the voice agents visible to the key, one page at a time, with a real total from a separate count query. An ordinary account key sees only its own agents; a reseller key sees every agent belonging to that reseller and can narrow the result to one custome…
create_agentCreate a voice agent Creates a voice agent and provisions it in the voice engine in the same request, so the agent is ready to take calls as soon as the call succeeds. Only `name` and `language` are required; every other field falls back to a platform default, and `language` is…
get_agentGet a voice agent Returns the full public configuration of one voice agent, including the system prompt, the opening line, model settings and the recording and retention settings. Internal voice engine identifiers are never included. A reseller key may read any agent belonging t…
update_agentUpdate a voice agent Changes one or more fields on a voice agent. Every field is optional and only the fields you send are written, so this is a partial update. The change is pushed to the voice engine first and then stored; if the engine rejects the push the request still succe…
delete_agentIRREVERSIBLE: Delete a voice agent Deletes a voice agent permanently and removes it from the voice engine. This cannot be undone, and any phone number still routed to this agent stops being answered by it. Its integration links and knowledge entries are deleted with it, and so a…
list_agent_integrationsList integrations assigned to an agent Returns every integration currently assigned to this voice agent, together with the tools the agent may call through it. The `enabledTools` field decides which of the integration actions the assistant may call: null means the recommended de…
assign_agent_integrationAssign an integration to an agent Gives a voice agent access to one integration, so its tools become callable during a call. The integration must belong to the account that owns the agent, which for a reseller key is the customer account, not the reseller. The `enabledTools` fie…
update_agent_integration_toolsChange the tool selection for an assigned integration Replaces the tool selection for one integration already assigned to a voice agent. The `enabledTools` field decides which of the integration actions the assistant may call: null means the recommended default set for that inte…
remove_agent_integrationIRREVERSIBLE: Remove an integration from an agent Unassigns an integration from a voice agent, so the agent can no longer call any of its tools. The integration itself is untouched and stays available to assign elsewhere. The reduced tool set is pushed to the voice engine after…
list_agent_knowledgeList agent knowledge sources Returns every knowledge source attached to one voice agent, newest first. These are the documents the agent may draw on when answering, added either as a crawled web page or as literal text. The response is a plain list with no paging. Entries belong…
add_agent_knowledgeAdd a knowledge source to an agent Adds one knowledge source to a voice agent. The body is one of three shapes chosen by `type`: `url` reads one page and reads it again every `syncInterval` (weekly by default), `text` takes up to 200000 characters of `text` to store verbatim, `c…
add_agent_knowledge_fileAdd a file to an agent knowledge base Adds a file as knowledge source to a voice agent, as the dashboard upload does. Send the file as base64 in `base64` with its name in `fileName`. Allowed are PDF, TXT, MD, CSV and JSON files of at most 15 MB; the content must match the extens…
delete_agent_knowledgeIRREVERSIBLE: Delete an agent knowledge source Removes one knowledge source from a voice agent: the entry is deleted and the agent no longer draws on the document. The indexed document is deleted from the voice engine as well, unless another entry or another agent still uses it.…
refresh_agent_knowledgeRefresh an agent knowledge source Re-reads a URL knowledge source from its source page immediately and replaces the stored content with what the page says now. Website sources are also re-read on a schedule, so this is for the case where a page changed and the agent should know…
list_chatbotsList chatbots Returns the chatbots visible to the key, newest first. An ordinary account key sees only its own chatbots; a reseller key sees every chatbot belonging to that reseller and can narrow the result to one customer with `userId`. Paging defaults to 100 items per page, w…
create_chatbotCreate a chatbot Creates a chatbot and provisions it in the voice engine in the same request, then derives its hosted chat page URL from the new identifier. Only `name` is required; the language defaults to `de` and the widget appearance fields all have platform defaults. The wi…
get_chatbotGet a chatbot Returns the full public configuration of one chatbot, including the system prompt, the widget appearance, the widget voice, the embedding restrictions and the retention settings. `allowedDomains` and `supportedLanguages` come back as arrays, or as null when nothing…
update_chatbotUpdate a chatbot Changes one or more fields on a chatbot. Every field is optional, but the body must contain at least one recognised field: an empty object is rejected with 400. `enableVoice` switches the widget microphone, `voiceId` changes the voice and an empty `voiceId` retu…
delete_chatbotIRREVERSIBLE: Delete a chatbot Deletes a chatbot permanently and removes it from the voice engine. This cannot be undone, and any widget still embedded on a website stops working. Its integration links and knowledge entries are deleted with it, and so are the indexed knowledge d…
list_chatbot_integrationsList integrations assigned to a chatbot Returns every integration currently assigned to this chatbot, together with the tools it may call through them. The `enabledTools` field decides which of the integration actions the assistant may call: null means the recommended default se…
assign_chatbot_integrationAssign an integration to a chatbot Gives a chatbot access to one integration, so its tools become callable during a chat. The integration must belong to the account that owns the chatbot, which for a reseller key is the customer account, not the reseller. The `enabledTools` fiel…
update_chatbot_integration_toolsChange the tool selection for a chatbot integration Replaces the tool selection for one integration already assigned to a chatbot. The `enabledTools` field decides which of the integration actions the assistant may call: null means the recommended default set for that integratio…
remove_chatbot_integrationIRREVERSIBLE: Remove an integration from a chatbot Unassigns an integration from a chatbot, so the chatbot can no longer call any of its tools. The integration itself is untouched and stays available to assign elsewhere. The reduced tool set is pushed to the voice engine after t…
list_chatbot_knowledgeList chatbot knowledge sources Returns every knowledge source attached to one chatbot. Only the first 100 characters of each entry are returned, as `contentSnippet`; the full stored text is never sent by this endpoint. The response is a plain list with no paging. Entries belong…
add_chatbot_knowledgeAdd a knowledge source to a chatbot Adds one knowledge source to a chatbot. `type` says how to read `content`: for `url` it is the address to draw from, read again every `syncInterval` (weekly by default), for `text` it is the literal text, for `file` it is the text of the file,…
delete_chatbot_knowledgeIRREVERSIBLE: Delete a chatbot knowledge source Removes one knowledge source from a chatbot: the entry is deleted and the chatbot no longer draws on the document. The indexed document is deleted from the voice engine as well, unless another entry or another agent still uses it.…
refresh_chatbot_knowledgeRefresh a chatbot knowledge source Re-reads a URL knowledge source from its source page immediately and replaces the stored content with what the page says now. Website sources are also re-read on a schedule, so this is for the case where a page changed and the chatbot should kn…
list_phone_numbersList phone numbers Returns the phone numbers the account rents, newest purchase first. Wholesale costs, carrier identifiers and SIP credentials are never included, only the columns of the PhoneNumber schema. A reseller key sees every number belonging to its own customers and can…
list_phone_number_countriesList purchasable countries Returns every country whose numbers can currently be bought through the number marketplace. Use the `iso` field of an entry as the `countryIso` argument of the number search and of a purchase. The list is read live from the marketplace and is not pagin…
search_phone_numbersSearch available numbers Searches the number marketplace for numbers that can be bought right now in one country. Nothing is reserved: a listing can disappear between the search and the purchase, so buy promptly and be ready to retry with a different result. Each entry carries t…
purchase_phone_numberCOSTS MONEY: Purchase a phone number Buys one of the numbers returned by the search and attaches it to the account. Buying numbers needs an active Voice subscription (Voice, Bundle or a voice capable plan) and is not possible during the free trial; otherwise the request is rejec…
get_phone_numberGet a phone number Returns one phone number of the account. The response is the PhoneNumber object itself, not wrapped in a `data` envelope. Use it to read the current assignment, the lifecycle status and the regulatory verification state of a number. A number that does not belo…
update_phone_numberUpdate a phone number Changes which agent answers on a number and the label it carries in the dashboard. Only the fields present in the body are written, everything else is left alone; a body with no known field is rejected with 400. The response is an acknowledgement message on…
cancel_phone_numberIRREVERSIBLE: Cancel a phone number Cancels a number bought through the marketplace, with a 30 day grace period: the number is released at the carrier straight away but stays usable on the account until `cancelationEndDate`, and the record is kept rather than deleted. Only marke…
get_phone_number_verificationGet the verification requirement Returns what the regulator demands before this number can carry traffic. When the number needs no verification the response is `{ "kycRequired": false, "requirement": null }`. Otherwise `requirement` describes the accepted identity kinds, how man…
submit_phone_number_verificationSubmit verification Submits the identity, address and document proofs demanded for a regulated number. Upload the document files first and pass their identifiers in `proofs`; which document types are accepted and how many are needed comes from the requirement endpoint. The submi…
get_phone_number_verification_statusGet verification status Polls the current state of the regulatory verification for a number. Once a submission exists the state is read live from the registry and the stored value on the number record is updated to match, so this endpoint is what to poll after submitting. Before…
list_conversationsList conversations Returns a page of conversations, newest first. One `type` is listed at a time: `voice` returns call records and `chat` returns widget and WhatsApp threads. Every item carries a `type` field so a client can tell the two shapes apart without remembering which qu…
get_conversationGet a conversation Returns one conversation. The `type` query parameter selects which store the id is looked up in and must match the kind of record you are asking for, since voice calls and chat threads number themselves independently. A voice call is returned on its own. A cha…
update_conversationUpdate a chat conversation Changes the status, the archive flag or the assigned human agent of a chat conversation. Chat threads only: an id belonging to a voice call is rejected with 400, and a body with no updatable field is rejected with 400 as well. Assigning an agent also s…
list_conversation_messagesList conversation messages Returns a page of the transcript of a chat conversation, oldest message first, so paging forward follows the conversation in order. This endpoint serves chat threads only: an id that belongs to a voice call is rejected with 400 rather than a misleading…
send_conversation_messageReply in a conversation Sends a message into a chat conversation as a human agent, delivering it to the visitor over the same channel the thread runs on. An API key is not itself an agent session, so the message is attributed to the agent already assigned to the thread, or to th…
close_conversationIRREVERSIBLE: Close a chat conversation Closes a chat conversation and finalises it: the closing time is stamped and the response time and duration figures of the thread are recomputed, which is what the analytics endpoints then report. Chat threads only, a voice call id is reje…
get_analytics_summaryGet a usage summary Returns usage over a date window, aggregated into one row per usage type, with the quantity consumed and the revenue, cost and margin that go with it. Rows appear only for usage types that were actually recorded in the window, so an idle account gets an empty…
get_daily_analyticsGet daily call metrics Returns one row of metrics per calendar day, oldest day first, ready to plot as a time series. The figures are read live from the conversation records, so a conversation is counted as soon as it has ended, and the voice calls, chat sessions and avatar sess…
get_agent_analyticsGet agent statistics Returns the lifetime aggregate metrics of one voice agent: call counts, durations, cost, token consumption and quality scores. The figures are read live from the conversation records, so a call is counted as soon as it has ended. Cost is in USD, as the voice…
get_chatbot_analyticsGet chatbot statistics Returns the lifetime aggregate metrics of one chatbot: session counts, durations, cost, token consumption and quality scores. The figures are read live from the conversation records and count a chat session and a spoken widget conversation alike, so the fi…
list_webhooksList your webhook endpoints Returns every outbound webhook endpoint registered by the account, newest first and unpaged. The signing secret is not part of this response and cannot be read back at any point: it is shown once, when the endpoint is created. Use `failedDeliveries`,…
create_webhookRegister a webhook endpoint Registers an HTTPS endpoint and subscribes it to the named events. The response contains a `secret`, and this is the only time it is ever returned: store it before you do anything else, because no endpoint anywhere in this API will show it to you agai…
list_webhook_eventsList the events you can subscribe to Returns the catalogue of outbound events with a one-line explanation of when each is emitted. These names, plus the wildcard returned in `wildcard`, are the only values accepted in the `events` list when creating or updating an endpoint. `web…
get_webhookRead one webhook endpoint Returns a single registered endpoint, wrapped in a `data` object. The signing secret is not included and cannot be recovered here or anywhere else. Note `isActive` together with `failedDeliveries`: an endpoint is disabled automatically once 25 consecuti…
update_webhookUpdate a webhook endpoint Changes the destination URL, the subscription list or the enabled flag of an endpoint. Every field is optional and only the fields you send are touched. `events` is replaced wholesale, not merged, so send the complete list you want; each name is checked…
delete_webhookIRREVERSIBLE: Delete a webhook endpoint Removes an endpoint permanently. Deliveries stop at once and the signing secret is destroyed with the record, so this cannot be undone: registering the same URL again produces a new endpoint with a new secret. If you only want to pause del…
test_webhookSend a test delivery Sends one signed `webhook.test` payload to the endpoint and reports what happened, synchronously and with no retry. This is a real delivery: it is signed with the endpoint's secret, so it is the right way to check your signature verification. It updates `las…
list_ticketsList support tickets Returns the account's support tickets, newest first, with no paging. By default only open work is listed: tickets in state `closed` or `resolved` are left out unless you ask for them. Pass `includeArchived=true` to get exactly the closed and resolved ones in…
create_ticketOpen a support ticket Creates a support ticket on behalf of the authenticated account and returns its identifier. The ticket starts in state `open`, and `category` and `priority` fall back to `other` and `medium` when they are not given. Put everything a human needs into `descri…
get_ticketRead a ticket and its thread Returns one ticket with its full public message thread, oldest message first. Internal notes written by staff for staff are filtered out and never appear here, so the thread you see is the correspondence you took part in. Each message carries the sen…
reply_to_ticketReply to a ticket Adds a public reply to an existing ticket and bumps its last-changed timestamp, which is what moves the ticket back up the support queue. A ticket in state `closed` cannot be replied to and returns 400; a resolved ticket still accepts replies, so use this to re…
list_bookingsList the bookings in your connected calendars Returns the bookings of every active integration that has a calendar (Cal.com, Calendly, Google Calendar, Outlook), sorted by start, or of one integration when you pass `integrationId`. Each booking carries the `id` that the confirm,…
list_integration_event_typesList the event types of a calendar integration Returns the kinds of appointment that can be booked through this integration, read live from the calendar provider: their name, their duration in minutes and their identifier. An empty list means the calendar has no event types; a p…
confirm_bookingConfirm a booking request Confirms a booking that waits for the host (status `pending`). The calendar provider then informs the attendee as it always does. Only calendars with booking requests support this (Cal.com). The others answer 422 `not_supported`.
decline_bookingIRREVERSIBLE: Decline a booking request Declines a booking that waits for the host (status `pending`). The optional `reason` is handed to the calendar provider, which may show it to the attendee. Only calendars with booking requests support this (Cal.com). The others answer 422…
cancel_bookingIRREVERSIBLE: Cancel a booking Cancels a booking in the calendar of the integration. The optional `reason` is handed to the calendar provider, which may show it to the attendee.
list_integration_typesList the integration types you can connect Returns the catalogue of supported third-party services, each with the configuration fields it needs. Read this before creating an integration: `type` gives you the value to send, and `configFields` tells you exactly which keys belong i…
list_integrationsList your integrations Returns the account's connected integrations, newest first, as a bare JSON array with no paging. Stored configuration is deliberately left out of the list view: read a single integration to see which of its fields are set. A reseller key may pass `userId`…
create_integrationConnect an integration Stores the credentials and settings for one third-party service and returns the new integration's identifier. The integration is created active, but connecting it does not by itself let an agent use it: it still has to be assigned to an agent or chatbot. `…
get_integrationRead one integration Returns a single integration including its stored `config`, with every secret value replaced by `********`. A value counts as secret when its field is declared with type `password` for the integration type, when its key contains `secret`, `password`, `passwd…
update_integrationUpdate an integration Changes the name, description, stored configuration or enabled flag of an integration. Only the fields you send are written. A `config` you send is merged with the stored one, one object level at a time. A field that is not secret takes the value you send,…
delete_integrationIRREVERSIBLE: Delete an integration Removes the integration and the credentials stored with it. When an account of the service was connected through the dashboard for this integration, that connection is removed as well, unless another integration still uses it; this happens on…
list_integration_toolsList the tools an integration offers Returns the actions an agent can be allowed to perform through this integration, plus the recommended default selection in `recommended`. Only a few integration types are catalogue-backed; the rest have a fixed tool set that cannot be picked…
get_integration_permissionsRead the tool permissions of an integration Returns which tools the agents of the account may use through this integration: the stored choice in `preset`, every tool of the integration with `allowed`, and how many tools each preset would allow. The permissions limit agents only;…
set_integration_permissionsSet the tool permissions of an integration Stores which tools the agents of the account may use through this integration, exactly as the dashboard does. Choose a preset (`read`, `read_write`, `full`) or `custom` with the exact tool keys from `tools[].key` of the GET of this path…
test_integrationTest an integration Calls the connected service with the stored credentials and reports what came back. Use it after creating or reconfiguring an integration, since nothing is verified at write time. The shape of the result depends on the integration type: each connector builds…
get_my_accountGet the current account profile Returns the account that the presented API key belongs to, which is the simplest way to confirm a key is valid and to discover the user id every other endpoint scopes to. `resellerId` is set when this account is a customer of a reseller, and `ownR…
update_profileChange your profile name Changes the name of your account, the `name` that `get_my_account` returns. It applies at once and can be changed back the same way. Only the name changes here: the email address can only be changed by support (ask with `create_ticket`), the invoice addr…
get_my_usageGet consumption for a date window Sums the metered consumption recorded for this account over a date window, broken down into voice minutes and chat sessions. With no query parameters the window runs from midnight on the first day of the current month in server local time up to…
get_my_limitsGet plan allowances and remaining credit Returns what the account still has available: its status, its prepaid wallet balance in EUR, the voice minutes and chat conversations left, and the subscribed plan with its monthly allowances. `plan` is null when the account is on no plan…
list_languagesList available interface locales Returns the user interface locales the platform ships, for populating a language picker or for validating a value before writing it to a profile or an agent. The list is read from the locale directories on disk, so it reflects the running build r…
list_agent_languagesList the languages an agent can speak or write Returns the languages you can assign to an agent, each with an English name, the name the language calls itself, and a region code for a flag image, so a language picker needs no table of its own. This is a different list from `GET…
list_notificationsList account notifications Returns the notification inbox of the account behind the API key, newest first by creation time. Notifications are raised by the platform for events such as ticket replies or billing changes, and each entry may point at the resource that caused it thro…
Details
| Endpoint | https://hub.echocall.de/mcp (Streamable HTTP) |
| First published | 10 Nov 2026 |
| Last updated | 10 Nov 2026 |
| Registry name | de.echocall/echocall |
More ai and media servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
