master
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_callmarkdown 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
Description
Languages
TypeScript
96.9%
JavaScript
3.1%