Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developers.mihu.ai/llms.txt

Use this file to discover all available pages before exploring further.

Use this guide to connect the Mihu MCP Server to your client and start using it safely.

Before you start

Make sure you have:
  • access to the target Mihu tenant (e.g. your-tenant.mihu.ai),
  • an MCP-compatible client (Claude Desktop, IDE agent, or custom MCP client),
  • and a Mihu API token from your tenant panel.

Access model

Each token is tied to one Mihu tenant. The token inherits the panel permissions of the API key it was minted from — your client cannot exceed them. The MCP server itself stores no credentials.
PropertyValue
Tenant bindingOne token, one tenant subdomain
PermissionsInherited from the underlying Mihu API token
OAuth access token TTL1 hour (re-mint as needed)
StorageIn-memory on the server (not persisted)

Connect Mihu MCP Server

There are two ways to authenticate. Pick whichever your client supports.
Authorization Server : https://mcp.mihu.ai
Token URL            : https://mcp.mihu.ai/oauth/token
Grant types          : client_credentials, authorization_code (PKCE)
client_id            : <your tenant subdomain, e.g. "minders">
client_secret        : <your Mihu API token>
Claude Desktop discovers the OAuth flow automatically — no manual register step. In Settings → Connectors → Add custom connector:
FieldValue
URLhttps://mcp.mihu.ai/mcp
OAuth Client IDyour tenant subdomain
OAuth Client Secretyour Mihu API token

Option B — Direct headers (for scripts / curl / custom clients)

Authorization  : Bearer <Mihu API token>
X-Mihu-Tenant  : <tenant subdomain>
No token mint needed; tenant is set per request.

Mint a token directly

curl -s -X POST https://mcp.mihu.ai/oauth/token \
  -d grant_type=client_credentials \
  -d client_id=<tenant> \
  -d client_secret=<api-token>
# → {"access_token":"...","token_type":"Bearer","expires_in":3600}
Then call MCP with Authorization: Bearer <access_token>.

Test the connection

Try a few read-only prompts first:
  • “List my agents.”
  • “How many contacts do we have?”
  • “Show conversations from the last 24 hours.”

First setup checks

After you connect, confirm these basics:
  • You are connected to the expected tenant.
  • Read tools (list_agents, list_contacts) return data.
  • Your panel permissions allow the actions you plan to run.

What it can do

The server exposes ~275 tools across 38 modules. Common capabilities:
CapabilityExample tools
Place real callsinitiate_call, say_in_call, forward_call, mute_agent, hangup_call
Send SMS / WhatsAppsend_sms, send_whatsapp_template, whatsapp_call
Manage agentslist_agents, create_agent, add_agent_guideline, add_agent_intent
Bulk outboundcreate_listing, add_contacts_to_listing, run_listing, stop_listing
Contactslist_contacts, create_contact, update_contact, add_tag_to_contact
Appointmentsbook_appointment, list_appointments, get_available_slots
Conversationslist_conversations, get_conversation, get_session_evaluation
Phone numberssearch_available_phone_numbers, provision_call_channel
Each tool’s description includes required fields, enums, and example shapes — readable by the LLM at call-time, no external docs needed.

What to include in a prompt

Include these details when relevant:
  • Time range — “last 7 days”, “yesterday”, “this month”
  • Target — an agent, campaign, contact, conversation, or schedule
  • Output — summary, ranking, comparison, trend, or draft
  • Action boundary — “prepare only”, “show preview”, or “do not send”

Example prompt patterns

Analysis
  • “Summarize agent performance for the last 7 days.”
  • “Which campaigns drove the most completed calls last week?”
  • “Compare SMS vs WhatsApp delivery rates for the last 14 days.”
Audience and contact investigation
  • “Show recent conversations for contact +90555…”
  • “List appointments booked in the last 3 days.”
  • “Which contacts have the vip tag?”
Operational requests
  • “Initiate a call from agent X to +90555… with greeting ‘Hi…’”
  • “Create a listing for these 50 leads under agent Y.”
  • “Stop the active listing named ‘Q2 outbound’.”

How write actions work

Write actions follow the underlying Mihu API permissions of the token:
  • The token inherits exactly what your API key can do in the panel — nothing more.
  • Bulk operations (e.g. create_listing with thousands of contacts) are accepted, but the agent’s channel binding and tenant rate limits still apply.
  • All actions are logged in the standard Mihu request logs for the tenant.

Troubleshooting

SymptomFirst check
401 from upstreamWrong tenant or wrong/expired API token.
404 from upstreamTenant subdomain typo — does <tenant>.mihu.ai resolve?
”Missing tenant context” errorClient didn’t send X-Mihu-Tenant, or OAuth token expired (1-hour TTL).
OAuth token expiredRe-mint at /oauth/token. Default TTL is 1 hour.
Action blocked by permissionsUnderlying Mihu API key lacks the permission — adjust in the panel.
Cannot access another tenantEach token is tied to one tenant. Mint a separate token per tenant.

Support