# Mio MCP

> Mio bridges communication across Slack, Microsoft Teams, and Webex. This server lets your AI agent run automated phone calls—outbound prospecting, appointment confirmations, etc.—and capture all the data. You get full transcripts, summaries, call logs, and real-time webhook notifications, so teams stay connected without switching apps or doing manual note-taking.

## Overview
- **Category:** communication-messaging
- **Price:** Free
- **Tags:** interoperability, outbound-calling, call-automation, unified-communications, voice-agents, transcription

## Description

Mio lets your AI agent handle automated calls, connecting communication across Slack, Microsoft Teams, and Webex. This server runs full outbound prospecting calls and appointment confirmations while capturing all data points for you. You get transcripts, summaries, call logs, and real-time notifications—all without switching apps or doing manual note-taking.

**Initiating and Managing Calls**
You start an outbound AI phone conversation using `start_ai_call`. This function lets you specify a custom script, select the voice, and provide the target number. If something goes wrong or if you need to end the talk early, you can immediately stop the live interaction with `terminate_call`. The agent needs credit to run these calls; check your remaining balance first using `get_credit_balance`.

**Analyzing Call Data After the Fact**
Once a call finishes, Mio doesn't just record it—it analyzes it for you. You can pull the full text log of everything said during that specific phone conversation with `get_call_transcript`. To save yourself from reading pages of text, `get_call_summary` generates an AI-powered summary that pulls out key insights and actionable data points right away. For a deep dive into any past interaction, you can list every recorded call log using `list_calls`, then fetch specific details like the status, duration, or final outcome for one conversation with `get_call_details`.

**System Setup and Voice Control**
This server gives you full control over how it operates. You choose from a variety of neural voices—you can see all the available options, including gender and accent details, by calling `list_available_voices`. For system connectivity, you set up automated notifications using webhooks. You establish a new external notification endpoint with `create_webhook`, which lets other systems react instantly when a call status changes. If that webhook isn't working anymore, you can wipe it clean using `delete_webhook`, and check all your active connections by running `list_webhooks`. To verify who you are before connecting anything else, you retrieve basic user profile and account details with `get_account_info`.

**Workflow Summary**
You run the calling process entirely through your AI client. Your agent uses tools like `start_ai_call` to initiate and manage the whole phone conversation lifecycle. You'll get full visibility into call performance, whether it's checking the account info via `get_account_info`, managing webhook endpoints using `create_webhook`, or simply reviewing old logs by calling `list_calls`. It’s designed so your team stays connected without needing to jump between multiple applications.

## Tools

### start_ai_call
Starts an outbound AI phone call using a specified script, voice, and target number.

### create_webhook
Sets up a new external notification endpoint to receive event data from the server.

### delete_webhook
Removes an existing, active webhook notification.

### get_account_info
Retrieves basic user profile and account details for verification purposes.

### get_call_details
Fetches specific information about a single call, including its status, duration, and outcome.

### get_credit_balance
Checks your remaining credit balance to estimate how many calls you can still make.

### get_call_summary
Generates an AI-powered summary from a completed call, extracting key insights and data points.

### get_call_transcript
Retrieves the full text log of every thing said during a specific phone call.

### list_calls
Provides an overview by listing every recorded call log in your account history.

### list_available_voices
Returns a list of all neural voices available for the AI agent, including gender and accent details.

### list_webhooks
Shows all currently active webhook notification endpoints configured on the server.

### terminate_call
Immediately stops an active or ongoing AI-powered phone conversation.

## Prompt Examples

**Prompt:** 
```
Start an AI call to confirm tomorrow's appointment with Sarah.
```

**Response:** 
```
AI call started! ✅ Call ID: call_890. Number: +1-555-0123. Instructions: 'Confirm tomorrow's appointment at 10 AM. Ask if the time still works. Be polite and professional.' Voice: Maya. Status: Ringing...
```

**Prompt:** 
```
Get the transcript and summary for call_890.
```

**Response:** 
```
Call call_890 completed (Duration: 1m 45s). Transcript: AI: 'Hi Sarah, I'm calling to confirm your appointment tomorrow at 10 AM.' Sarah: 'Yes, that works perfectly.' AI: 'Great, see you then!' Summary: Appointment confirmed for tomorrow 10 AM. Outcome: Positive. No reschedule needed.
```

**Prompt:** 
```
Show available AI voices and my credit balance.
```

**Response:** 
```
Available voices: 6. 'Maya' (Female, US English, Warm). 'Alex' (Male, US English, Professional). 'Luna' (Female, British). 'Marco' (Male, Spanish). 'Sophie' (Female, French). 'Kai' (Male, US English, Casual). Credits remaining: $42.50 (approx. 85 minutes of calls).
```

## Capabilities

### Initiate and Control Calls
Start an outbound call using `start_ai_call`, set custom scripts, or stop a live interaction immediately with `terminate_call`.

### Analyze Call Data
Retrieve full text transcripts (`get_call_transcript`) and AI-generated summaries (`get_call_summary`) to understand call outcomes without reading notes.

### Monitor System Events
Set up automated notifications by creating webhooks, allowing external systems to react instantly when a call status changes.

### Manage Credentials
Check your current credit balance with `get_credit_balance` and list available voice options using `list_available_voices`.

## Use Cases

### The Sales Follow-Up Campaign
SDR needs to follow up with 50 leads. Instead of calling every single one, they use `start_ai_call` for an automated sequence. Once finished, the agent runs `get_call_summary` on all 50 results, instantly generating a list of 'Positive' and 'Needs Follow-up' outcomes to prioritize their day.

### The Appointment Confirmation Loop
A CS team needs to confirm meetings for the week. They use `start_ai_call` with a specific script and voice selection. If the call results in a 'Negative' outcome, an adjacent service watches the webhook event (via `create_webhook`) and automatically sends a Slack message to the manager.

### Auditing Call Scripts
A developer wants to see how often the AI agent is being terminated early. They list all logs using `list_calls`, then check `get_call_details` on specific entries to verify if the call ended normally or was manually stopped via `terminate_call`.

### Building a Voice-First CRM Hook
A dev needs all voice interaction data in their database. They connect Mio and use webhooks (`create_webhook`) to listen for the 'Call Completed' event, which then triggers another service that pulls the full text log via `get_call_transcript`.

## Benefits

- Instantly get full call records. Instead of manually writing notes after a demo, use `get_call_transcript` to feed the entire conversation text directly into your CRM or knowledge base.
- Track performance without logging in. Configure webhooks using `create_webhook`. Your internal dashboard gets hit with an alert the second a status changes—missed call, connected, etc.
- Automate high-volume outreach. Use `start_ai_call` to run hundreds of outbound calls following complex scripts, freeing up your SDRs for actual face-to-face interactions.
- Understand outcomes faster than ever. Don't read 20 minutes of transcript; use `get_call_summary`. It boils down the key takeaways and action items into a few bullet points.
- Know your limits before you start. Before launching a campaign, run `get_credit_balance` to see exactly how many calls you can afford based on current usage.

## How It Works

The bottom line is: You tell your AI client what to say, it makes the call and captures all the resulting data for you.

1. Subscribe to the Mio server and provide your API credentials.
2. Your AI client calls a tool like `start_ai_call`, defining the target number, script, and voice.
3. The system handles the call flow; you then use tools like `get_call_transcript` or `get_call_summary` to retrieve the results.

## Frequently Asked Questions

**How do I start an AI call using the `start_ai_call` tool?**
You must provide three things: a target phone number, the specific script/instructions for the agent, and which voice you want to use. The agent handles dialing and conversation flow automatically.

**What is the difference between `get_call_summary` and `get_call_transcript`?**
`get_call_summary` gives you a concise, readable summary of the outcome (e.g., 'Appointment confirmed'). `get_call_transcript` gives you the full text log—every word spoken during the call.

**How do I set up notifications for when a call ends?**
You use the `create_webhook` tool. This establishes an event listener endpoint. When a call changes status (like 'Completed'), Mio sends a payload to your specified URL.

**Can I check how much credit I have left with `get_credit_balance`?**
Yes, running `get_credit_balance` checks your current account funds. The output estimates remaining minutes based on your usage history and rates.

**How do I stop an AI call mid-stream if it goes wrong?**
Use the `terminate_call` tool. This sends a signal to Mio that instantly ends the active conversation, allowing you to take over or re-route the process.

**How do I use the `list_calls` tool to check my past call logs?**
The `list_calls` tool retrieves a high-level log of every recorded interaction. This list provides basic metadata, including the call status, total duration, and outcome for quick auditing. You can quickly scan dozens of calls without pulling full transcripts.

**What does `list_available_voices` tell me about my AI voice options?**
This tool lists every neural voice available to your agent. For each option, you get critical details like the gender, accent, and specific language (e.g., Male/US English). This lets you match the AI's tone perfectly for your target market.

**If I have a call ID, how is `get_call_details` different from just listing calls?**
`list_calls` gives you an overview of multiple interactions. In contrast, `get_call_details` pulls all the granular metadata for one specific call ID. This is what you use when you need deep information—like internal IDs or specific contact data—for downstream processing.

**Can I start an automated AI phone call?**
Yes. Provide a phone number, instructions for the AI agent, and optionally select a voice. Mio will call and follow the script autonomously.

**How does Mio authentication work?**
Mio requires an API Key sent via the **X-API-Key** header against `api.mio.gg/api/v1`.

**Can I get transcripts and AI summaries?**
Yes. After a call completes, retrieve the full text transcript and an AI-generated summary with extracted data points.