MCP Server & SDKs
Connect Mira to AI tools like Claude Desktop using the Model Context Protocol (MCP) server, or build your own integration with the REST API.
MCP Server
The Mira MCP server lets AI assistants like Claude directly query your sales coaching data — meetings, reports, team stats, and more — through a natural language interface.
Installation
Install the MCP server globally or use it with npx:
npm install -g @kalixy/mira-mcpConfigure Claude Desktop
Add the following to your Claude Desktop configuration file (claude_desktop_config.json):
{
"mcpServers": {
"mira": {
"command": "npx",
"args": ["@kalixy/mira-mcp"],
"env": {
"MIRA_API_KEY": "mira_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"MIRA_API_URL": "https://your-domain.com/api/v1"
}
}
}
}Finding the Config File
On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%\Claude\claude_desktop_config.json
Available Tools
Once connected, Claude can use these tools to query your Mira data:
| Tool | Description |
|---|---|
list_meetings | List recent sales meetings with optional filters |
get_meeting | Get a specific meeting with transcript |
get_report | Get a coaching report with scores and feedback |
list_templates | List scoring templates |
create_template | Create a new coaching template |
get_team_stats | Get team performance summary |
get_insights | Get marketing insights from sales calls |
Example Prompts
Once configured, you can ask Claude things like:
- "Show me my team's performance this quarter"
- "What was the score on yesterday's discovery call?"
- "List all meetings from last week that scored below 6"
- "Create a new template for cold-call scoring"
- "What marketing insights came from recent calls?"
REST API
For custom integrations, you can use the REST API directly. See the API Reference for the complete list of endpoints.
Building an API Client
Here is a minimal API client you can use as a starting point:
class MiraClient {
constructor(apiKey, baseUrl = "https://your-domain.com/api/v1") {
this.apiKey = apiKey;
this.baseUrl = baseUrl;
}
async request(path, options = {}) {
const response = await fetch(`${this.baseUrl}${path}`, {
...options,
headers: {
"Authorization": `Bearer ${this.apiKey}`,
"Content-Type": "application/json",
...options.headers,
},
});
const body = await response.json();
if (!response.ok) {
throw new Error(`Mira API error: ${body.error}`);
}
return body;
}
listMeetings(params = {}) {
const qs = new URLSearchParams(params).toString();
return this.request(`/meetings?${qs}`);
}
getMeeting(id) {
return this.request(`/meetings/${id}`);
}
getTeamStats(timeRange = "month") {
return this.request(`/team/stats?time_range=${timeRange}`);
}
}
// Usage
const mira = new MiraClient("mira_live_xxxx");
const { data } = await mira.listMeetings({ status: "completed", limit: 10 });OpenAPI Specification
The full OpenAPI 3.0 specification is available as a JSON endpoint. You can import it into Postman, Insomnia, or any OpenAPI-compatible tool.
curl https://your-domain.com/api/v1/openapi.json