@cliniq360/eigi-mcp 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +97 -610
- package/dist/pages/agents-app-v2.html +235 -0
- package/dist/pages/conversation-detail-app.html +270 -0
- package/dist/pages/conversations-app.html +285 -0
- package/dist/pages/conversations-list-app.html +285 -0
- package/dist/pages/interactive-agent-v2.html +502 -0
- package/dist/src/config/constants.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,47 +1,30 @@
|
|
|
1
|
-
# eigi
|
|
1
|
+
# eigi-mcp
|
|
2
2
|
|
|
3
|
-
[](https://github.com/modelcontextprotocol/registry)
|
|
4
3
|
[](https://www.npmjs.com/package/@cliniq360/eigi-mcp)
|
|
4
|
+
[](https://github.com/modelcontextprotocol/registry)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
6
|
|
|
6
|
-
MCP (Model Context Protocol) server for [eigi.ai](https://eigi.ai) - enabling AI-native integration with your AI voice and chat agents through Claude Desktop and other MCP-compatible clients.
|
|
7
|
-
|
|
8
|
-
## Table of Contents
|
|
9
|
-
|
|
10
|
-
- [Quick Start](#quick-start)
|
|
11
|
-
- [Installation Options](#installation-options)
|
|
12
|
-
- [MCP Registry](#mcp-registry)
|
|
13
|
-
- [Configuration](#configuration)
|
|
14
|
-
- [Claude Desktop Setup](#claude-desktop-setup)
|
|
15
|
-
- [Commands](#commands)
|
|
16
|
-
- [API Endpoints](#api-endpoints)
|
|
17
|
-
- [MCP Tools Reference](#mcp-tools-reference)
|
|
18
|
-
- [MCP Resources (UI)](#mcp-resources-ui)
|
|
19
|
-
- [Project Structure](#project-structure)
|
|
20
|
-
- [Docker](#docker)
|
|
21
|
-
- [Authentication](#authentication)
|
|
22
|
-
- [Publishing](#publishing)
|
|
7
|
+
MCP (Model Context Protocol) server for [eigi.ai](https://eigi.ai) - enabling AI-native integration with your AI voice and chat agents through Claude Desktop, Cursor, VS Code, and other MCP-compatible clients.
|
|
23
8
|
|
|
24
9
|
## Features
|
|
25
10
|
|
|
26
11
|
- **20+ MCP Tools** for managing agents, conversations, calls, chats, and prompts
|
|
27
|
-
- **
|
|
28
|
-
- **Real-time Voice Testing** via Pipecat AI integration
|
|
12
|
+
- **Real-time Voice Testing** via interactive UI
|
|
29
13
|
- **Dual Transport Support** - Remote (HTTP) and Local (stdio) modes
|
|
30
|
-
- **Hot-reload Development** with Vite and tsx watchers
|
|
31
|
-
- **TypeScript** for type safety
|
|
32
|
-
- **Tailwind CSS 4** for modern UI styling
|
|
33
14
|
|
|
34
15
|
## Quick Start
|
|
35
16
|
|
|
36
|
-
### Get Your API Key
|
|
17
|
+
### 1. Get Your API Key
|
|
37
18
|
|
|
38
19
|
1. Sign up at [eigi.ai](https://eigi.ai)
|
|
39
20
|
2. Navigate to Settings → API Keys
|
|
40
21
|
3. Generate a new API key
|
|
41
22
|
|
|
42
|
-
###
|
|
23
|
+
### 2. Choose Your Connection Method
|
|
43
24
|
|
|
44
|
-
|
|
25
|
+
#### Option A: Remote Server (Recommended - No Installation)
|
|
26
|
+
|
|
27
|
+
Connect directly to the hosted eigi.ai MCP server:
|
|
45
28
|
|
|
46
29
|
```json
|
|
47
30
|
{
|
|
@@ -57,75 +40,29 @@ Add to your Claude Desktop config - no installation required:
|
|
|
57
40
|
}
|
|
58
41
|
```
|
|
59
42
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
## Installation Options
|
|
63
|
-
|
|
64
|
-
### Option 1: Remote Server (Recommended)
|
|
65
|
-
|
|
66
|
-
Connect directly to the hosted eigi.ai MCP server. **No installation required.**
|
|
67
|
-
|
|
68
|
-
**Supported authentication methods:**
|
|
69
|
-
|
|
70
|
-
- Header: `X-API-Key: YOUR_KEY`
|
|
71
|
-
- Header: `Authorization: Bearer YOUR_KEY`
|
|
72
|
-
- Query parameter: `?api_key=YOUR_KEY`
|
|
73
|
-
|
|
74
|
-
### Option 2: Local via npm
|
|
75
|
-
|
|
76
|
-
Install and run locally:
|
|
43
|
+
#### Option B: Local via npm
|
|
77
44
|
|
|
78
45
|
```bash
|
|
79
|
-
|
|
80
|
-
EIGI_API_KEY=your-key npx @cliniq360/eigi-mcp --stdio
|
|
81
|
-
|
|
82
|
-
# Or install globally
|
|
83
|
-
npm install -g @cliniq360/eigi-mcp
|
|
84
|
-
EIGI_API_KEY=your-key eigi-mcp --stdio
|
|
46
|
+
npx @cliniq360/eigi-mcp --stdio
|
|
85
47
|
```
|
|
86
48
|
|
|
87
|
-
|
|
49
|
+
Or install globally:
|
|
88
50
|
|
|
89
51
|
```bash
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
cd eigi-mcp/eigi-app
|
|
93
|
-
|
|
94
|
-
# Install dependencies
|
|
95
|
-
npm install
|
|
96
|
-
|
|
97
|
-
# Copy environment file
|
|
98
|
-
cp .env.example .env
|
|
99
|
-
|
|
100
|
-
# Run development server
|
|
101
|
-
npm run dev
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## MCP Registry
|
|
107
|
-
|
|
108
|
-
This server is published to the [MCP Registry](https://github.com/modelcontextprotocol/registry) as:
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
io.github.eigi-ai/eigi
|
|
52
|
+
npm install -g @cliniq360/eigi-mcp
|
|
53
|
+
eigi-mcp --stdio
|
|
112
54
|
```
|
|
113
55
|
|
|
114
|
-
|
|
115
|
-
| ---------- | --------------- | --------------------------------- |
|
|
116
|
-
| **Remote** | streamable-http | `https://mcp.eigi.ai/mcp` |
|
|
117
|
-
| **Local** | stdio | `npx @cliniq360/eigi-mcp --stdio` |
|
|
118
|
-
|
|
119
|
-
---
|
|
56
|
+
## Client Setup
|
|
120
57
|
|
|
121
|
-
|
|
58
|
+
### Claude Desktop
|
|
122
59
|
|
|
123
|
-
|
|
60
|
+
Edit `claude_desktop_config.json`:
|
|
124
61
|
|
|
125
|
-
|
|
62
|
+
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
63
|
+
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
126
64
|
|
|
127
|
-
**
|
|
128
|
-
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
65
|
+
**Remote Mode (Recommended):**
|
|
129
66
|
|
|
130
67
|
```json
|
|
131
68
|
{
|
|
@@ -141,9 +78,7 @@ No installation needed. Edit `claude_desktop_config.json`:
|
|
|
141
78
|
}
|
|
142
79
|
```
|
|
143
80
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
For offline use or custom deployments:
|
|
81
|
+
**Local Mode:**
|
|
147
82
|
|
|
148
83
|
```json
|
|
149
84
|
{
|
|
@@ -159,567 +94,119 @@ For offline use or custom deployments:
|
|
|
159
94
|
}
|
|
160
95
|
```
|
|
161
96
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
## Configuration
|
|
165
|
-
|
|
166
|
-
### Environment Variables
|
|
167
|
-
|
|
168
|
-
| Variable | Description | Default | Required |
|
|
169
|
-
| ------------------------ | -------------------------- | ---------------------- | -------------------- |
|
|
170
|
-
| `EIGI_API_KEY` | Your eigi.ai API key | - | **Yes** (stdio mode) |
|
|
171
|
-
| `EIGI_API_BASE_URL` | Backend API URL | `https://prod.eigi.ai` | No |
|
|
172
|
-
| `VITE_EIGI_API_BASE_URL` | API URL for browser builds | `https://prod.eigi.ai` | No |
|
|
173
|
-
| `PORT` | Server port (HTTP mode) | `3001` | No |
|
|
174
|
-
|
|
175
|
-
### Environment File (Development)
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
cp .env.example .env
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
```env
|
|
182
|
-
# Your eigi.ai API key (required for stdio mode)
|
|
183
|
-
EIGI_API_KEY=your-api-key-here
|
|
184
|
-
|
|
185
|
-
# API Base URL
|
|
186
|
-
EIGI_API_BASE_URL=https://prod.eigi.ai
|
|
187
|
-
|
|
188
|
-
# Browser builds
|
|
189
|
-
VITE_EIGI_API_BASE_URL=https://prod.eigi.ai
|
|
190
|
-
|
|
191
|
-
# MCP Server Port
|
|
192
|
-
PORT=3001
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
## Commands
|
|
198
|
-
|
|
199
|
-
### Quick Reference
|
|
200
|
-
|
|
201
|
-
| Command | Description |
|
|
202
|
-
| --------------------- | ---------------------------------- |
|
|
203
|
-
| `npm install` | Install dependencies |
|
|
204
|
-
| `npm run dev` | Development mode with hot-reload |
|
|
205
|
-
| `npm run build` | Build for production (HTTP server) |
|
|
206
|
-
| `npm run build:npm` | Build for npm package (stdio) |
|
|
207
|
-
| `npm run serve` | Start HTTP server |
|
|
208
|
-
| `npm run serve:stdio` | Start stdio server |
|
|
209
|
-
| `npm run start` | Build + serve HTTP |
|
|
210
|
-
| `npm run start:stdio` | Build + serve stdio |
|
|
211
|
-
|
|
212
|
-
### Helper Script
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
# Make executable
|
|
216
|
-
chmod +x start.sh
|
|
217
|
-
|
|
218
|
-
# Run commands
|
|
219
|
-
./start.sh dev # Development mode
|
|
220
|
-
./start.sh stdio # stdio mode
|
|
221
|
-
./start.sh http # HTTP server mode
|
|
222
|
-
./start.sh build # Production build
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Detailed Command Reference
|
|
226
|
-
|
|
227
|
-
#### `npm run dev` - Development Mode
|
|
228
|
-
|
|
229
|
-
Starts the development server with hot-reload. Runs **6 concurrent processes**:
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
npm run dev
|
|
233
|
-
|
|
234
|
-
# What it runs:
|
|
235
|
-
# 1. vite build --watch (conversations-app.html)
|
|
236
|
-
# 2. vite build --watch (conversations-list-app.html)
|
|
237
|
-
# 3. vite build --watch (conversation-detail-app.html)
|
|
238
|
-
# 4. vite build --watch (agents-app-v2.html)
|
|
239
|
-
# 5. vite build --watch (interactive-agent-v2.html)
|
|
240
|
-
# 6. tsx --watch main.ts (server with hot-reload)
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
**Output:**
|
|
244
|
-
|
|
245
|
-
- Server runs at `http://localhost:3001`
|
|
246
|
-
- MCP endpoint at `http://localhost:3001/mcp`
|
|
247
|
-
- All file changes trigger automatic rebuild
|
|
248
|
-
|
|
249
|
-
#### `npm run build` - Production Build
|
|
250
|
-
|
|
251
|
-
Compiles TypeScript and builds all UI apps:
|
|
252
|
-
|
|
253
|
-
```bash
|
|
254
|
-
npm run build
|
|
255
|
-
|
|
256
|
-
# What it does:
|
|
257
|
-
# 1. tsc --noEmit (TypeScript type checking only)
|
|
258
|
-
# 2. Builds conversations-app.html → dist/
|
|
259
|
-
# 3. Builds conversations-list-app.html → dist/
|
|
260
|
-
# 4. Builds conversation-detail-app.html → dist/
|
|
261
|
-
# 5. Builds agents-app-v2.html → dist/
|
|
262
|
-
# 6. Builds interactive-agent-v2.html → dist/
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
**Output:**
|
|
266
|
-
|
|
267
|
-
- Creates `dist/` folder with compiled assets
|
|
268
|
-
- Each HTML page becomes a single-file bundle (via vite-plugin-singlefile)
|
|
269
|
-
|
|
270
|
-
#### `npm run build:npm` - Build for npm Package
|
|
271
|
-
|
|
272
|
-
Compiles server-side code for stdio mode (npm package):
|
|
273
|
-
|
|
274
|
-
```bash
|
|
275
|
-
npm run build:npm
|
|
276
|
-
|
|
277
|
-
# What it does:
|
|
278
|
-
# 1. Compiles TypeScript using tsconfig.build.json
|
|
279
|
-
# 2. Outputs to dist/ (server code only, no UI)
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
#### `npm run serve:stdio` - stdio Mode
|
|
283
|
-
|
|
284
|
-
Runs the MCP server in stdio mode (for local MCP clients):
|
|
285
|
-
|
|
286
|
-
```bash
|
|
287
|
-
npm run serve:stdio
|
|
288
|
-
|
|
289
|
-
# Or with environment variable:
|
|
290
|
-
EIGI_API_KEY=your-key npm run serve:stdio
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
#### `npm run serve` - Start Server
|
|
294
|
-
|
|
295
|
-
Starts the MCP server in production mode:
|
|
296
|
-
|
|
297
|
-
```bash
|
|
298
|
-
npm run serve
|
|
299
|
-
|
|
300
|
-
# What it runs:
|
|
301
|
-
# tsx main.ts
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
**Note:** Requires `npm run build` to be run first.
|
|
305
|
-
|
|
306
|
-
#### `npm run start` - Full Production Start
|
|
307
|
-
|
|
308
|
-
Builds and then starts the server:
|
|
309
|
-
|
|
310
|
-
```bash
|
|
311
|
-
npm run start
|
|
312
|
-
|
|
313
|
-
# Equivalent to:
|
|
314
|
-
# npm run build && npm run serve
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
## Usage Examples
|
|
320
|
-
|
|
321
|
-
### Starting Development
|
|
322
|
-
|
|
323
|
-
```bash
|
|
324
|
-
# 1. Install dependencies (first time only)
|
|
325
|
-
npm install
|
|
326
|
-
|
|
327
|
-
# 2. Configure environment
|
|
328
|
-
cp .env.example .env
|
|
329
|
-
# Edit .env with your API URL
|
|
330
|
-
|
|
331
|
-
# 3. Start development server
|
|
332
|
-
npm run dev
|
|
333
|
-
|
|
334
|
-
# Server is now running at http://localhost:3001
|
|
335
|
-
# MCP endpoint: http://localhost:3001/mcp
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
### Production Deployment
|
|
339
|
-
|
|
340
|
-
```bash
|
|
341
|
-
# 1. Build production assets
|
|
342
|
-
npm run build
|
|
97
|
+
### Cursor
|
|
343
98
|
|
|
344
|
-
|
|
345
|
-
npm run serve
|
|
99
|
+
Add to `.cursor/mcp.json`:
|
|
346
100
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
curl http://localhost:3001/
|
|
360
|
-
# Response: Welcome to eigi.ai MCP
|
|
361
|
-
|
|
362
|
-
# MCP endpoint (requires proper JSON-RPC request)
|
|
363
|
-
curl -X POST http://localhost:3001/mcp \
|
|
364
|
-
-H "Content-Type: application/json" \
|
|
365
|
-
-H "Authorization: Bearer YOUR_API_KEY" \
|
|
366
|
-
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"mcpServers": {
|
|
104
|
+
"eigi": {
|
|
105
|
+
"command": "npx",
|
|
106
|
+
"args": ["-y", "@cliniq360/eigi-mcp", "--stdio"],
|
|
107
|
+
"env": {
|
|
108
|
+
"EIGI_API_KEY": "YOUR_EIGI_API_KEY"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
367
113
|
```
|
|
368
114
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
## API Endpoints
|
|
372
|
-
|
|
373
|
-
| Endpoint | Method | Description |
|
|
374
|
-
| --------- | ------ | ------------------------------------------ |
|
|
375
|
-
| `/` | GET | Welcome message (`Welcome to eigi.ai MCP`) |
|
|
376
|
-
| `/health` | GET | Health check (`{"status": "ok"}`) |
|
|
377
|
-
| `/mcp` | ALL | MCP protocol endpoint (JSON-RPC 2.0) |
|
|
378
|
-
| `/log` | POST | Browser logging endpoint |
|
|
379
|
-
|
|
380
|
-
### Health Check Example
|
|
115
|
+
### VS Code with Copilot
|
|
381
116
|
|
|
382
|
-
|
|
383
|
-
curl http://localhost:3001/health
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
Response:
|
|
117
|
+
Add to `.vscode/mcp.json`:
|
|
387
118
|
|
|
388
119
|
```json
|
|
389
|
-
{
|
|
120
|
+
{
|
|
121
|
+
"servers": {
|
|
122
|
+
"eigi": {
|
|
123
|
+
"command": "npx",
|
|
124
|
+
"args": ["-y", "@cliniq360/eigi-mcp", "--stdio"],
|
|
125
|
+
"env": {
|
|
126
|
+
"EIGI_API_KEY": "YOUR_EIGI_API_KEY"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
390
131
|
```
|
|
391
132
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
## MCP Tools Reference
|
|
133
|
+
## MCP Tools
|
|
395
134
|
|
|
396
|
-
###
|
|
135
|
+
### Agents
|
|
397
136
|
|
|
398
|
-
| Tool
|
|
399
|
-
|
|
|
400
|
-
| `list-
|
|
401
|
-
| `get-
|
|
137
|
+
| Tool | Description |
|
|
138
|
+
| ------------------ | --------------------------------------------- |
|
|
139
|
+
| `list-agents` | List AI voice agents with pagination |
|
|
140
|
+
| `get-agent` | Get agent configuration by ID |
|
|
141
|
+
| `create-agent` | Create a new AI agent with STT/LLM/TTS config |
|
|
142
|
+
| `update-agent` | Update an existing agent's settings |
|
|
143
|
+
| `delete-agent` | Delete an agent by ID |
|
|
144
|
+
| `test-voice-agent` | Open interactive UI to test an agent |
|
|
402
145
|
|
|
403
|
-
###
|
|
146
|
+
### Conversations
|
|
404
147
|
|
|
405
|
-
| Tool
|
|
406
|
-
|
|
|
407
|
-
| `list-
|
|
408
|
-
| `get-
|
|
409
|
-
| `create-agent` | Create a new AI voice agent with STT/LLM/TTS config |
|
|
410
|
-
| `update-agent` | Update an existing agent's settings |
|
|
411
|
-
| `delete-agent` | Delete an agent by ID |
|
|
412
|
-
| `test-voice-agent` | Open interactive UI to test an agent in real-time |
|
|
148
|
+
| Tool | Description |
|
|
149
|
+
| -------------------- | --------------------------------------------- |
|
|
150
|
+
| `list-conversations` | List voice/chat conversations with filters |
|
|
151
|
+
| `get-conversation` | Get full conversation details with transcript |
|
|
413
152
|
|
|
414
153
|
### Calls
|
|
415
154
|
|
|
416
|
-
| Tool | Description
|
|
417
|
-
| ------------------------ |
|
|
418
|
-
| `initiate-outbound-call` |
|
|
419
|
-
| `get-mobile-numbers` |
|
|
155
|
+
| Tool | Description |
|
|
156
|
+
| ------------------------ | ---------------------------------------------- |
|
|
157
|
+
| `initiate-outbound-call` | Start an outbound voice call using an AI agent |
|
|
158
|
+
| `get-mobile-numbers` | List available phone numbers for agents |
|
|
420
159
|
|
|
421
160
|
### Chat
|
|
422
161
|
|
|
423
|
-
| Tool | Description
|
|
424
|
-
| ------------------------- |
|
|
425
|
-
| `list-chat-sessions` | List text chat sessions
|
|
426
|
-
| `get-chat-session` | Get complete chat session with
|
|
427
|
-
| `send-chat-message` | Send a message
|
|
428
|
-
| `get-agent-first-message` | Get agent's greeting
|
|
162
|
+
| Tool | Description |
|
|
163
|
+
| ------------------------- | --------------------------------------- |
|
|
164
|
+
| `list-chat-sessions` | List text chat sessions |
|
|
165
|
+
| `get-chat-session` | Get complete chat session with messages |
|
|
166
|
+
| `send-chat-message` | Send a message and get response |
|
|
167
|
+
| `get-agent-first-message` | Get agent's greeting message |
|
|
429
168
|
|
|
430
169
|
### Prompts
|
|
431
170
|
|
|
432
|
-
| Tool | Description
|
|
433
|
-
| --------------------- |
|
|
434
|
-
| `list-prompts` | List prompts with pagination
|
|
435
|
-
| `get-prompt` | Get
|
|
436
|
-
| `get-prompt-versions` | Get version history for a prompt
|
|
437
|
-
| `create-prompt` | Create a new prompt
|
|
438
|
-
| `update-prompt` | Update
|
|
171
|
+
| Tool | Description |
|
|
172
|
+
| --------------------- | ------------------------------------------- |
|
|
173
|
+
| `list-prompts` | List system prompts with pagination |
|
|
174
|
+
| `get-prompt` | Get prompt content by name |
|
|
175
|
+
| `get-prompt-versions` | Get version history for a prompt |
|
|
176
|
+
| `create-prompt` | Create a new system prompt |
|
|
177
|
+
| `update-prompt` | Update prompt content (creates new version) |
|
|
439
178
|
|
|
440
179
|
### Providers
|
|
441
180
|
|
|
442
|
-
| Tool | Description
|
|
443
|
-
| ---------------- |
|
|
444
|
-
| `list-providers` | List available LLM, TTS, and STT providers
|
|
445
|
-
| `list-voices` | List available voices for a TTS provider
|
|
446
|
-
|
|
447
|
-
---
|
|
448
|
-
|
|
449
|
-
## MCP Resources (UI)
|
|
450
|
-
|
|
451
|
-
Rich UI resources for enhanced interaction within MCP clients:
|
|
452
|
-
|
|
453
|
-
| Resource URI | Description |
|
|
454
|
-
| ------------------------------------------------------- | ----------------------------------- |
|
|
455
|
-
| `ui://conversations/conversations-app.html` | Main conversations dashboard |
|
|
456
|
-
| `ui://conversations-list/conversations-list-app.html` | Conversations list view |
|
|
457
|
-
| `ui://conversation-detail/conversation-detail-app.html` | Conversation detail with transcript |
|
|
458
|
-
| `ui://agents/agents-app-v2.html` | Agents management interface |
|
|
459
|
-
| `ui://interactive-agent/interactive-agent-v2.html` | Interactive agent testing widget |
|
|
460
|
-
|
|
461
|
-
---
|
|
462
|
-
|
|
463
|
-
## Project Structure
|
|
464
|
-
|
|
465
|
-
```
|
|
466
|
-
eigi-app/
|
|
467
|
-
├── main.ts # Server entry point (Express + MCP)
|
|
468
|
-
├── server.ts # MCP server configuration and tool registration
|
|
469
|
-
├── package.json # Dependencies and npm scripts
|
|
470
|
-
├── tsconfig.json # TypeScript configuration
|
|
471
|
-
├── vite.config.ts # Vite build configuration
|
|
472
|
-
├── Dockerfile # Docker image definition
|
|
473
|
-
├── .env.example # Environment template
|
|
474
|
-
│
|
|
475
|
-
├── pages/ # HTML entry points for UI apps
|
|
476
|
-
│ ├── agents-app-v2.html
|
|
477
|
-
│ ├── conversations-app.html
|
|
478
|
-
│ ├── conversations-list-app.html
|
|
479
|
-
│ ├── conversation-detail-app.html
|
|
480
|
-
│ └── interactive-agent-v2.html
|
|
481
|
-
│
|
|
482
|
-
├── dist/ # Built output (generated by npm run build)
|
|
483
|
-
│
|
|
484
|
-
└── src/
|
|
485
|
-
├── index.ts # Main exports
|
|
486
|
-
├── global.css # Global styles
|
|
487
|
-
│
|
|
488
|
-
├── api/ # API client for eigi.ai backend
|
|
489
|
-
│ ├── client.ts # HTTP client with auth handling
|
|
490
|
-
│ └── index.ts
|
|
491
|
-
│
|
|
492
|
-
├── apps/ # React application entry points
|
|
493
|
-
│ ├── agents-app.tsx
|
|
494
|
-
│ ├── conversations-app.tsx
|
|
495
|
-
│ ├── conversations-list-app.tsx
|
|
496
|
-
│ ├── conversation-detail-app.tsx
|
|
497
|
-
│ └── interactive-agent-app.tsx
|
|
498
|
-
│
|
|
499
|
-
├── components/ # Shared React components
|
|
500
|
-
│ ├── VoiceCallDialog.tsx
|
|
501
|
-
│ ├── VoiceCallUI.tsx
|
|
502
|
-
│ ├── VoiceCallUI.module.css
|
|
503
|
-
│ └── ui/ # UI primitives
|
|
504
|
-
│ ├── avatar.tsx
|
|
505
|
-
│ ├── badge.tsx
|
|
506
|
-
│ ├── button.tsx
|
|
507
|
-
│ ├── card.tsx
|
|
508
|
-
│ └── index.ts
|
|
509
|
-
│
|
|
510
|
-
├── config/ # Configuration constants
|
|
511
|
-
│ ├── constants.ts # API URLs, resource URIs, enums
|
|
512
|
-
│ └── index.ts
|
|
513
|
-
│
|
|
514
|
-
├── lib/ # Utility functions
|
|
515
|
-
│ └── utils.ts # cn() for class merging
|
|
516
|
-
│
|
|
517
|
-
├── resources/ # MCP resource registrations
|
|
518
|
-
│ ├── agents.ts
|
|
519
|
-
│ ├── conversations.ts
|
|
520
|
-
│ ├── conversations-list.ts
|
|
521
|
-
│ ├── conversation-detail.ts
|
|
522
|
-
│ ├── interactive-agent.ts
|
|
523
|
-
│ └── index.ts
|
|
524
|
-
│
|
|
525
|
-
├── tools/ # MCP tool implementations
|
|
526
|
-
│ ├── agents.ts # Agent CRUD tools
|
|
527
|
-
│ ├── calls.ts # Outbound call tools
|
|
528
|
-
│ ├── chat.ts # Chat session tools
|
|
529
|
-
│ ├── conversations.ts # Conversation list/detail tools
|
|
530
|
-
│ ├── interactive-agent.ts
|
|
531
|
-
│ ├── prompts.ts # Prompt management tools
|
|
532
|
-
│ ├── providers.ts # Provider/voice listing tools
|
|
533
|
-
│ ├── base.ts # Shared utilities
|
|
534
|
-
│ └── index.ts
|
|
535
|
-
│
|
|
536
|
-
├── types/ # TypeScript type definitions
|
|
537
|
-
│ ├── agent.ts
|
|
538
|
-
│ ├── api.ts
|
|
539
|
-
│ ├── calls.ts
|
|
540
|
-
│ ├── chat-session.ts
|
|
541
|
-
│ ├── conversation.ts
|
|
542
|
-
│ └── index.ts
|
|
543
|
-
│
|
|
544
|
-
└── utils/ # Logging utilities
|
|
545
|
-
├── browser-logger.ts # Browser-side logging
|
|
546
|
-
└── logger.ts # Server-side logging
|
|
547
|
-
```
|
|
548
|
-
|
|
549
|
-
---
|
|
550
|
-
|
|
551
|
-
## Docker
|
|
552
|
-
|
|
553
|
-
### Build and Run
|
|
554
|
-
|
|
555
|
-
```bash
|
|
556
|
-
# Build Docker image
|
|
557
|
-
docker build -t eigi-app .
|
|
558
|
-
|
|
559
|
-
# Build with custom API URL
|
|
560
|
-
docker build \
|
|
561
|
-
--build-arg VITE_EIGI_API_BASE_URL=https://prod.eigi.ai \
|
|
562
|
-
-t eigi-app .
|
|
563
|
-
|
|
564
|
-
# Run container
|
|
565
|
-
docker run -p 7500:7500 --env-file .env eigi-app
|
|
566
|
-
|
|
567
|
-
# Run with environment variables inline
|
|
568
|
-
docker run -p 7500:7500 \
|
|
569
|
-
-e EIGI_API_BASE_URL=https://prod.eigi.ai \
|
|
570
|
-
-e PORT=7500 \
|
|
571
|
-
eigi-app
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
### Dockerfile Overview
|
|
575
|
-
|
|
576
|
-
```dockerfile
|
|
577
|
-
FROM node:20-alpine
|
|
578
|
-
WORKDIR /app
|
|
579
|
-
|
|
580
|
-
# Build arg for Vite (embedded at build time)
|
|
581
|
-
ARG VITE_EIGI_API_BASE_URL=https://prod.qa.eigi.ai
|
|
582
|
-
ENV VITE_EIGI_API_BASE_URL=$VITE_EIGI_API_BASE_URL
|
|
583
|
-
|
|
584
|
-
COPY package*.json .
|
|
585
|
-
RUN npm install
|
|
586
|
-
COPY . .
|
|
587
|
-
RUN npm run build
|
|
588
|
-
EXPOSE 7500
|
|
589
|
-
CMD ["npm", "run", "serve"]
|
|
590
|
-
```
|
|
591
|
-
|
|
592
|
-
---
|
|
181
|
+
| Tool | Description |
|
|
182
|
+
| ---------------- | ------------------------------------------ |
|
|
183
|
+
| `list-providers` | List available LLM, TTS, and STT providers |
|
|
184
|
+
| `list-voices` | List available voices for a TTS provider |
|
|
593
185
|
|
|
594
186
|
## Authentication
|
|
595
187
|
|
|
596
188
|
### Remote Mode (HTTP)
|
|
597
189
|
|
|
598
|
-
|
|
190
|
+
Pass your API key via headers:
|
|
599
191
|
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
3. **Query Parameter**: `?api_key=<token>`
|
|
192
|
+
- `X-API-Key: YOUR_KEY`
|
|
193
|
+
- `Authorization: Bearer YOUR_KEY`
|
|
603
194
|
|
|
604
195
|
### Local Mode (stdio)
|
|
605
196
|
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
```bash
|
|
609
|
-
EIGI_API_KEY=your-key npx @cliniq360/eigi-mcp --stdio
|
|
610
|
-
```
|
|
611
|
-
|
|
612
|
-
Or in Claude Desktop config:
|
|
613
|
-
|
|
614
|
-
```json
|
|
615
|
-
{
|
|
616
|
-
"env": {
|
|
617
|
-
"EIGI_API_KEY": "your-key"
|
|
618
|
-
}
|
|
619
|
-
}
|
|
620
|
-
```
|
|
621
|
-
|
|
622
|
-
### Example Requests (HTTP)
|
|
623
|
-
|
|
624
|
-
```bash
|
|
625
|
-
# Using Authorization header (recommended)
|
|
626
|
-
curl -X POST http://localhost:3001/mcp \
|
|
627
|
-
-H "Authorization: Bearer your-api-key-here" \
|
|
628
|
-
-H "Content-Type: application/json" \
|
|
629
|
-
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
|
|
630
|
-
|
|
631
|
-
# Using X-API-Key header
|
|
632
|
-
curl -X POST http://localhost:3001/mcp \
|
|
633
|
-
-H "X-API-Key: your-api-key-here" \
|
|
634
|
-
-H "Content-Type: application/json" \
|
|
635
|
-
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
|
|
636
|
-
|
|
637
|
-
# Using query parameter
|
|
638
|
-
curl -X POST "http://localhost:3001/mcp?api_key=your-api-key-here" \
|
|
639
|
-
-H "Content-Type: application/json" \
|
|
640
|
-
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
---
|
|
644
|
-
|
|
645
|
-
## Tech Stack
|
|
646
|
-
|
|
647
|
-
| Category | Technology | Version |
|
|
648
|
-
| -------------- | ------------------------- | ------- |
|
|
649
|
-
| **Runtime** | Node.js | 20+ |
|
|
650
|
-
| **Server** | Express.js | 5.x |
|
|
651
|
-
| **MCP SDK** | @modelcontextprotocol/sdk | 1.24+ |
|
|
652
|
-
| **Frontend** | React | 19.x |
|
|
653
|
-
| **Build Tool** | Vite | 6.x |
|
|
654
|
-
| **Styling** | Tailwind CSS | 4.x |
|
|
655
|
-
| **Voice** | Pipecat AI + Daily | 1.x |
|
|
656
|
-
| **Validation** | Zod | 4.x |
|
|
657
|
-
| **Language** | TypeScript | 5.9+ |
|
|
658
|
-
|
|
659
|
-
---
|
|
660
|
-
|
|
661
|
-
## Publishing
|
|
662
|
-
|
|
663
|
-
### npm Package
|
|
664
|
-
|
|
665
|
-
The package is published as `@cliniq360/eigi-mcp` via GitHub Actions.
|
|
666
|
-
|
|
667
|
-
**Automated Publishing:**
|
|
668
|
-
|
|
669
|
-
1. Update version in `package.json`
|
|
670
|
-
2. Commit changes
|
|
671
|
-
3. Create a git tag: `git tag v1.0.0`
|
|
672
|
-
4. Push tag: `git push origin v1.0.0`
|
|
673
|
-
5. GitHub Actions automatically publishes to npm
|
|
674
|
-
|
|
675
|
-
**Manual Publishing (if needed):**
|
|
676
|
-
|
|
677
|
-
```bash
|
|
678
|
-
# Build for npm
|
|
679
|
-
npm run build:npm
|
|
680
|
-
|
|
681
|
-
# Publish (requires npm auth)
|
|
682
|
-
npm publish --access public
|
|
683
|
-
```
|
|
684
|
-
|
|
685
|
-
### MCP Registry
|
|
686
|
-
|
|
687
|
-
The server is registered with:
|
|
688
|
-
|
|
689
|
-
- **Registry Name**: `io.github.eigi-ai/eigi`
|
|
690
|
-
- **npm Package**: `@cliniq360/eigi-mcp`
|
|
691
|
-
|
|
692
|
-
Configuration is in `server.json`:
|
|
693
|
-
|
|
694
|
-
```json
|
|
695
|
-
{
|
|
696
|
-
"mcpName": "io.github.eigi-ai/eigi",
|
|
697
|
-
"remotes": {
|
|
698
|
-
"streamable-http": {
|
|
699
|
-
"transportType": "streamable-http",
|
|
700
|
-
"url": "https://mcp.eigi.ai/mcp"
|
|
701
|
-
}
|
|
702
|
-
},
|
|
703
|
-
"packages": {
|
|
704
|
-
"npm": {
|
|
705
|
-
"name": "@cliniq360/eigi-mcp",
|
|
706
|
-
"transportType": "stdio"
|
|
707
|
-
}
|
|
708
|
-
}
|
|
709
|
-
}
|
|
710
|
-
```
|
|
197
|
+
Set the `EIGI_API_KEY` environment variable.
|
|
711
198
|
|
|
712
|
-
|
|
199
|
+
## Requirements
|
|
713
200
|
|
|
714
|
-
|
|
201
|
+
- Node.js 20+
|
|
715
202
|
|
|
716
|
-
|
|
717
|
-
- Uses OIDC for npm provenance
|
|
718
|
-
- Builds and publishes to npm registry
|
|
719
|
-
- Adds to MCP Registry automatically
|
|
203
|
+
## Links
|
|
720
204
|
|
|
721
|
-
|
|
205
|
+
- [eigi.ai Platform](https://eigi.ai)
|
|
206
|
+
- [npm Package](https://www.npmjs.com/package/@cliniq360/eigi-mcp)
|
|
207
|
+
- [GitHub Repository](https://github.com/eigi-ai/eigi-mcp)
|
|
208
|
+
- [MCP Documentation](https://modelcontextprotocol.io)
|
|
722
209
|
|
|
723
210
|
## License
|
|
724
211
|
|
|
725
|
-
|
|
212
|
+
MIT - © ClinIQ360
|