leexi-mcp-server

Read-only MCP server for the Leexi public API. Provides access to meeting notes, transcripts, action items, and call metadata.

Tools

Tool Description
leexi_list_users List workspace users (name, email, UUID, team)
leexi_list_teams List workspace teams
leexi_list_calls List calls/meetings with filtering (date, owner, source, participant, customer)
leexi_get_call Full call details: chapters, tasks, topics, speakers, AI summaries, transcript
leexi_list_meeting_events List scheduled meeting events
leexi_get_meeting_event Meeting event details with associated call recordings

All tools support response_format parameter: 'markdown' (default, human-readable) or 'json' (structured data).

Setup

1. Get API credentials

Generate API keys at https://app.leexi.ai/settings/api_keys

2. Build

cd ~/Workspace/AI/leexi-mcp-server
npm install
npm run build

3. Configure in OpenCode

Add to ~/.config/opencode/config.json (or the relevant MCP config):

{
  "mcpServers": {
    "leexi": {
      "command": "node",
      "args": ["/home/ssavinel/Workspace/AI/leexi-mcp-server/dist/index.js"],
      "env": {
        "LEEXI_KEY_ID": "<your-key-id>",
        "LEEXI_KEY_SECRET": "<your-key-secret>"
      }
    }
  }
}

Or for Claude Code (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "leexi": {
      "command": "node",
      "args": ["/home/ssavinel/Workspace/AI/leexi-mcp-server/dist/index.js"],
      "env": {
        "LEEXI_KEY_ID": "<your-key-id>",
        "LEEXI_KEY_SECRET": "<your-key-secret>"
      }
    }
  }
}

4. Test with MCP Inspector (optional)

LEEXI_KEY_ID=<key> LEEXI_KEY_SECRET=<secret> npx @modelcontextprotocol/inspector node dist/index.js

Data quality notes

  • Leexi AI summaries: Machine-generated and may be imprecise. The leexi_get_call markdown output labels these clearly and suggests using chapters/transcript instead.
  • Speaker names: In room-based calls, Leexi may use the room/device name as a speaker, representing multiple people. The tool flags speakers without email/phone as potentially being room names.
  • Multi-language transcripts: Calls mixing languages may have transcript artifacts. The raw data is passed through for the consuming LLM to interpret.

Architecture

src/
├── index.ts              # Entry point, McpServer + stdio transport
├── types.ts              # TypeScript interfaces for Leexi API responses
├── constants.ts          # API base URL, character limit
├── services/
│   └── leexi-client.ts   # Shared HTTP client (Basic auth, error handling)
├── schemas/
│   └── input-schemas.ts   # Zod input validation for all tools
└── tools/
    ├── users.ts           # leexi_list_users, leexi_list_teams
    ├── calls.ts           # leexi_list_calls, leexi_get_call
    └── meetings.ts        # leexi_list_meeting_events, leexi_get_meeting_event
S
Description
No description provided
Readme 58 KiB
Languages
TypeScript 96.9%
JavaScript 3.1%