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:

Install
npm install -g @kalixy/mira-mcp

Configure Claude Desktop

Add the following to your Claude Desktop configuration file (claude_desktop_config.json):

Claude Desktop Config
{
  "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:

ToolDescription
list_meetingsList recent sales meetings with optional filters
get_meetingGet a specific meeting with transcript
get_reportGet a coaching report with scores and feedback
list_templatesList scoring templates
create_templateCreate a new coaching template
get_team_statsGet team performance summary
get_insightsGet 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:

api-client.js
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.

Fetch OpenAPI Spec
curl https://your-domain.com/api/v1/openapi.json