unifi-talk-mcp
Provides tools for interacting with Ubiquiti UniFi Talk, enabling users to retrieve call history, call timelines and transcriptions, manage users and extensions, phone numbers, devices, ring groups, queues, IVR, and view service health and usage.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@unifi-talk-mcpshow me today's call history and any missed calls"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
unifi-talk-mcp
A Model Context Protocol server for UniFi Talk, Ubiquiti's phone system: call history, call timelines and transcriptions, users and extensions, phone numbers, devices, ring groups, queues, IVR, service health, and usage.
Unofficial. Ubiquiti publishes no Talk API. This server uses the private API behind the Talk web UI, as documented by the reverse-engineering project millsbrandon/UniFi-Talk-API against Talk 5.1.2. Any Talk update can rename or remove endpoints.
How it works
Talk does not accept UniFi integration API keys. It sits behind the UniFi OS web session, so the
server logs in to /api/auth/login with a local account, holds the session cookie and CSRF token in
memory, and logs in again when the session expires. Login happens on the first tool call, not at
startup.
Tools
Tool | Purpose |
| Talk version and region, console summary, service health |
| Paginated call history ( |
| Event timeline and transcription for one call |
| Phones and softphones: user, ext, status, SIP registration, last seen, firmware |
| Catalog of known endpoints with parameters, filterable by area |
| Call any read endpoint by id (users, numbers, devices, ring groups, config…) |
| Call a write endpoint by id. Disabled unless |
Safety
Read-only by default.
talk_invokerefuses every call unlessTALK_ALLOW_WRITES=true.Secrets are always redacted. SIP registration passwords, SIP trunk credentials, PINs, device key hashes, and tokens are replaced with
[redacted]before results reach the model.Redacted values can't be written back.
talk_invokerejects any body containing[redacted], so a read-modify-write can't overwrite a real SIP password with the placeholder.Path parameters are validated. IDs can't contain
/or dot segments, so calls can't escape/proxy/talk/api.Left out on purpose: binary downloads (recordings, greetings, PCAPs), file uploads, and writes that would need credentials typed into chat (SIP trunks, third-party SIP devices).
Related MCP server: unifi-mcp
Setup
1. Create a dedicated local account
In UniFi OS on the console that runs Talk, open Admins & Users and create an admin:
Choose Restrict to local access only. Cloud (UI.com) accounts and accounts with MFA can't sign in through
/api/auth/login.Give it the least-privileged Talk role that covers what you need, and no access to other apps.
2. Build
Requires Node.js 22 or later.
npm install
npm run build
npm test3. Configure your MCP client
Variable | Required | Default | Description |
| yes | — | Console address, e.g. |
| yes | — | Local UniFi OS account |
| yes | — | Its password |
| no |
| Enable |
| no | — | Path to the console's CA certificate (PEM) |
| no |
| Skip TLS verification. Last resort |
| no |
| Per-request timeout |
Claude Desktop: merge this into mcpServers in
~/Library/Application Support/Claude/claude_desktop_config.json, then restart the app. Use absolute
paths; GUI apps don't inherit your shell's PATH (command -v node gives yours).
"Unifi-talk": {
"command": "/usr/local/bin/node",
"args": ["/absolute/path/to/unifi-talk-mcp/dist/index.js"],
"env": {
"TALK_BASE_URL": "https://192.168.1.1",
"TALK_USERNAME": "talk-mcp",
"TALK_PASSWORD": "…",
"TALK_CA_CERT": "/absolute/path/to/console-ca.pem"
}
}Claude Code:
claude mcp add unifi-talk -s user \
-e TALK_BASE_URL=https://192.168.1.1 \
-e TALK_USERNAME=talk-mcp \
-e TALK_PASSWORD=… \
-- node /absolute/path/to/unifi-talk-mcp/dist/index.jsTLS
UniFi consoles use self-signed certificates issued to unifi.local, which never match the address
you connect to. Save the console's certificate as a PEM file and point TALK_CA_CERT at it. The
server trusts that certificate, and it accepts the hostname mismatch only when the console presents
that exact certificate (matched by SHA-256 fingerprint). Any other certificate is rejected.
Before trusting the saved file, compare its fingerprint with the one your browser shows for the console. If UniFi OS regenerates its certificate (after a reset, for example), connections fail until you save the new one.
TALK_INSECURE_TLS=true turns verification off entirely and prints a warning at startup. Use it
only as a last resort.
Smoke test
npm run smokeWith no TALK_* variables set, the test runs offline: it starts the server against a closed
local port and checks tool registration, input validation, the write gate, and error reporting.
With TALK_BASE_URL, TALK_USERNAME, and TALK_PASSWORD exported, it runs live, read-only
calls (talk_status, one call-log record, users, devices) and prints only success and field names,
never data.
Troubleshooting
Symptom | Cause |
| The client config doesn't pass |
| Wrong credentials, a cloud account, or MFA enabled |
| Too many logins; wait a few minutes |
| Self-signed certificate; set |
| Talk isn't installed on this console, or the endpoint changed in your Talk version |
| Wrong address, or HTTPS isn't reachable from this machine |
Known gaps
No real-time events (Talk's WebSocket at
/proxy/talk/ws).No recording or voicemail audio downloads; voicemail audio has no HTTP endpoint at all.
Sending SMS: the endpoint is unknown.
Endpoints marked
candidateintalk_list_endpointshaven't been confirmed on a live console.
Available Tools
7 toolstalk_getRead from TalkBRead-only
Call any read-only Talk endpoint by id. See talk_list_endpoints for descriptions and parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| endpoint | Yes | ||
| path_params | No | Values for {placeholders} in the endpoint path, e.g. {"uuid": "..."} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description restates the read-only nature already captured by readOnlyHint: true, but adds no additional behavioral context such as authentication requirements, pagination, error behavior, or response shape. With the annotation covering the safety profile, the description contributes little beyond redundant restatement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no filler: the first defines the operation, and the second points to the right reference resource. It is appropriately front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description offloads endpoint-specific details to talk_list_endpoints, which is reasonable for a generic read-only dispatcher. However, with no output schema and no mention of response variability, errors, or how query parameters are used, the description is minimally sufficient rather than complete on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description does not explain query or endpoint parameters directly. It points to talk_list_endpoints for descriptions and parameters, but this is an external reference rather than added semantic meaning for this tool's own parameters. Only path_params is partially documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states: 'Call any read-only Talk endpoint by id.' This is a specific verb and resource, and the read-only qualifier distinguishes it from talk_invoke. It relies on the sibling talk_list_endpoints for endpoint specifics, but the basic purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'See talk_list_endpoints for descriptions and parameters' provides useful direction for looking up endpoint details. However, there is no explicit statement about when to prefer this tool over other siblings like talk_get_call or talk_list_calls, so usage guidance is mostly implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talk_get_callGet call detailsARead-only
Event timeline and transcription (if enabled) for one call, by the uuid from talk_list_calls.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context about what is returned (timeline and transcription, if enabled) and the single-call scope, but it does not disclose output format, pagination, or behavior when transcription is disabled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler: it front-loads the two key outputs (timeline, transcription) and then specifies the identifier source. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool, the description tells what is returned, the source of the required identifier, and the transcription caveat. It omits secondary details like output structure or error behavior, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines uuid as a non-empty string with no further meaning. The description compensates by explaining that the uuid comes from talk_list_calls, giving the parameter provenance and purpose. For a single parameter with 0% schema coverage, this is sufficient though minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (event timeline and transcription for one call) and the retrieval action, and it distinguishes the tool by tying the identifier to the uuid produced by talk_list_calls. This clearly separates it from listing, status, and generic get siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by the uuid from talk_list_calls' gives clear context: obtain the call identifier from the list tool first, then use this tool for that specific call. It does not explicitly state exclusions or alternative tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talk_invokeChange Talk configurationADestructive
Call a Talk endpoint that changes or deletes data. Disabled unless the server runs with TALK_ALLOW_WRITES=true. Confirm with the user before calling. See talk_list_endpoints for body shapes.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON request body | |
| endpoint | Yes | ||
| path_params | No | Values for {placeholders} in the endpoint path, e.g. {"uuid": "..."} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds important behavioral context: the server flag requirement, the need for user confirmation, and the fact that the tool changes or deletes data. This is consistent with the annotations and goes beyond what structured metadata alone provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each earning its place: purpose, prerequisite, user-confirmation requirement, and a pointer to more detail. It is front-loaded with what the tool does and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic write/delete invocation tool, the description covers the critical constraints: destructive nature, server flag, user confirmation, and where to find body shapes. It does not describe return or error format, but with no output schema and a wide endpoint enum, the essentials for calling it correctly are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so the description is not fully responsible for parameter documentation. The description does help with the body parameter by pointing to talk_list_endpoints for body shapes, but it does not add meaning for the endpoint enum values or path_params beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Call a Talk endpoint that changes or deletes data.' This distinguishes it from the read-oriented siblings (talk_status, talk_list_calls, talk_get) and gives the agent a clear sense of when this tool is relevant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete conditions for use: it requires TALK_ALLOW_WRITES=true and instructs the agent to confirm with the user before calling. It also points to talk_list_endpoints for body shapes. However, it does not explicitly state 'use the read-only siblings for reads,' though this is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talk_list_callsList callsBRead-only
Call history with caller ID, direction, status, and voicemail data. Paginated.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already covers safety, and the description adds pagination behavior and response content. However, it does not disclose ordering, date range, rate limits, or other operational traits that would provide richer behavioral context beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. The primary purpose is front-loaded, and the pagination note is compact and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool, the description is minimally adequate: it states what is returned and that results are paginated, and the schema provides page/per_page constraints. However, with no output schema and no usage guidance, the description leaves the agent with limited contextual knowledge about response shape or how this list differs from other list tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only contains 'Paginated' to hint at the page and per_page parameters. It does not explain how pagination works, default behavior beyond the schema values, or any trade-offs of using these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists call history and specifies the contained data fields (caller ID, direction, status, voicemail). The resource is identifiable, though it does not explicitly differentiate itself from sibling tools like talk_get_call or talk_list_devices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives. There is no mention of exclusions, prerequisites, or scenarios favoring another sibling, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talk_list_devicesList devicesBRead-only
Talk desk phones and softphone apps with user, extension, status, SIP registration, last seen, IP, and firmware. A compact view of the devices endpoint; filter by status or kind.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint: true, so the read-only nature is covered. The description adds context about the response content (fields included) and the 'compact view' nature, which is useful. However, it does not disclose pagination, limits, or behavior when filters are omitted, which would be valuable for a list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary purpose and key attributes are front-loaded, and the filtering capability is mentioned concisely. Every word contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description should explain the return structure. It lists the fields returned (user, extension, status, SIP registration, last seen, IP, firmware), which is helpful. However, it omits details like pagination, ordering, or how to interpret the 'compact' nature. For a simple list with two optional filters, the description is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'filter by status or kind', which indicates the parameters are filters, but it does not elaborate on default behavior (e.g., if omitted, all devices returned) or the exact meaning of each filter. The enums in the schema provide allowed values, but the description adds minimal semantic value beyond labeling them as filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists desk phones and softphone apps with specific attributes (user, extension, status, etc.), and mentions filtering. It identifies the resource (devices) and the action (list), making the purpose unambiguous. However, it does not explicitly differentiate from siblings like talk_list_endpoints, relying on the reader to infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only mentions that filtering is possible by status or kind, but provides no guidance on when to use this tool versus alternatives such as talk_list_endpoints or talk_list_calls. There is no mention of scenarios, prerequisites, or when this tool is preferred, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talk_list_endpointsList Talk endpointsARead-only
Catalog of known UniFi Talk API endpoints (users, numbers, devices, routing, voicemail, billing, and more) with their parameters. Use it to find an endpoint id for talk_get or talk_invoke.
| Name | Required | Description | Default |
|---|---|---|---|
| area | No | Only list endpoints in this area |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already declares that this is a read-only operation, and the description's word 'Catalog' reinforces a non-mutating reference role. However, the description does not add meaningful behavioral detail beyond the annotation, such as return shape, pagination, or side-effect caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence immediately states what the tool is, and the second sentence gives actionable guidance on how to use the result, front-loading the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple optional-filter catalog tool, the description is largely complete: it conveys the tool's scope, content, and relationship to sibling tools, while the schema covers the filter parameter. The absence of an explicit output shape description is a minor gap, but not enough to make the tool hard to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single optional 'area' parameter has an enum with a description in the schema, so the description does not need to explain parameters. The text focuses on the tool's purpose rather than adding new meaning to the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it is a 'Catalog of known UniFi Talk API endpoints' with their parameters, and it explicitly frames the tool as a lookup aid for talk_get or talk_invoke. This clearly distinguishes it from sibling tools that list or invoke specific resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by saying 'Use it to find an endpoint id for talk_get or talk_invoke,' which tells the agent exactly when the tool is relevant. It does not provide explicit 'when not to use' guidance or compare against every sibling, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
talk_statusTalk statusARead-only
Talk version and region, console summary, and service health. A good first call.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals a safe read operation, and the description aligns with that. It adds value by enumerating the reported categories (version, region, console summary, service health). It does not disclose details like response format or whether health checks involve latency, but this is acceptable given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences contain all necessary information with no filler. The output scope is front-loaded and the usage hint is a compact second sentence. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only status tool, the description covers the key outputs and gives a clear first-call hint. Without an output schema, it could specify the exact response shape, but the listed categories are sufficient for a simple health/status tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty and has 100% schema description coverage by default. With zero parameters, the description has no parameter semantics to add. The baseline for a no-parameter tool is 4, and nothing in the description detracts from that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists concrete outputs: version, region, console summary, and service health, making the resource clear. It distinguishes itself from the sibling list/get/invoke tools as a status overview rather than a data retrieval or action tool. It lacks an explicit verb like 'returns' or 'reports', but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'A good first call' gives clear contextual guidance about when to use it: as an initial check before other operations. However, it does not explicitly state when not to use it or name alternatives among the siblings. The usage guidance is implied rather than fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
talk_get - First observed
talk_get_call - First observed
talk_invoke - First observed
talk_list_calls - First observed
talk_list_devices - First observed
talk_list_endpoints - First observed
talk_status
TDQS
Scored across 7 tools
Most tools have clearly distinct purposes: status, write operations, call history, call detail, devices, endpoint catalog, and generic reads. Slight overlap exists between talk_get_call (specialized call timeline) and talk_get (generic read by endpoint id), but descriptions clarify the intended use.
All tools share the talk_ prefix and mostly follow verb_noun (talk_list_calls, talk_get_call, talk_list_devices). talk_status and talk_invoke deviate slightly from the pattern, but the naming remains predictable and readable.
Seven tools is well-scoped for a UniFi Talk integration: a status check, a write dispatcher, a catalog of endpoints, and a few high-value read wrappers. Each tool earns its place without redundancy or bloat.
The combination of generic talk_get for reads, talk_invoke for writes, and talk_list_endpoints for discoverability covers the full API surface. Convenience tools for calls and devices cover the most common workflows, so there are no obvious dead ends.
Maintenance
Related MCP Connectors
Read calls, contacts, users, teams and numbers; tag calls and create or update contacts.
Manage Voice Logica agents, calls, phones, workflows, messaging, and integrations.
Tenant-scoped control plane over the ClutchCall platform's full API surface
Manage CallKaro voice agents, phone numbers, call queues, and place single or batch AI calls.
Related MCP Servers
- FlicenseAqualityDmaintenanceProvides complete programmatic access to the Retell AI platform, enabling autonomous management of voice and text agents, telephony, and monitoring.60-
- AlicenseNot gradedqualityCmaintenanceEnables read-only querying of a UniFi fleet via the Site Manager API and per-console connector proxy, allowing users to list hosts, sites, devices, ISP metrics, and live network clients through Claude.Academic Free v1.1
- AlicenseAqualityAmaintenanceProvides read-only access to UniFi Network consoles for sites, devices, clients, vouchers, networks, Wi-Fi, and firewall configuration, with optional opt-in tools for controlled write operations and legacy controller support.1463 npmMIT
- AlicenseAqualityAmaintenanceQueryable UniFi API documentation for Network, Protect, Site Manager, InnerSpace, Mobility and Carrier Fabric - endpoint search, schema drill-down and code examples in five languages. Read-only: it serves scraped docs and never connects to a controller.1210119 PyPI37MIT