@elastic.io/mcp 1.0.1-dev1 → 1.0.1-dev10
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 +62 -99
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +9 -0
- package/dist/cli.js.map +1 -0
- package/dist/setup.d.ts +3 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +265 -0
- package/dist/setup.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,138 +1,101 @@
|
|
|
1
1
|
# elastic.io Model Context Protocol (MCP) Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
An MCP server that connects AI assistants to the **elastic.io** iPaaS platform — letting them discover, build, modify, and debug integration flows directly.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
It is published on npm as `@elastic.io/mcp` and can be run directly via `npx @elastic.io/mcp`.
|
|
5
|
+
Published on npm as `@elastic.io/mcp`.
|
|
8
6
|
|
|
9
7
|
---
|
|
10
8
|
|
|
11
|
-
##
|
|
9
|
+
## Quick Start
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
### Prerequisites
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
1. **Node.js 18+** — download from [nodejs.org](https://nodejs.org/)
|
|
14
|
+
2. **A desktop AI client** — install one of the supported clients (see below)
|
|
15
|
+
3. **elastic.io credentials** — your account email and API key
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
### One-Command Setup
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Run this in your terminal — it will detect your installed AI clients and configure them automatically:
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
**macOS / Linux:**
|
|
22
|
+
```bash
|
|
23
|
+
npx -y @elastic.io/mcp setup
|
|
24
|
+
```
|
|
22
25
|
|
|
26
|
+
**Windows (Command Prompt):**
|
|
27
|
+
```cmd
|
|
28
|
+
npx -y @elastic.io/mcp setup
|
|
23
29
|
```
|
|
24
|
-
|
|
30
|
+
|
|
31
|
+
**Windows (PowerShell):**
|
|
32
|
+
```powershell
|
|
33
|
+
npx -y @elastic.io/mcp setup
|
|
25
34
|
```
|
|
26
35
|
|
|
27
|
-
The
|
|
36
|
+
> The command is the same on all platforms. Make sure Node.js 18+ is installed and `npx` is available in your PATH.
|
|
28
37
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
38
|
+
The setup wizard will:
|
|
39
|
+
1. Ask for your elastic.io email and API key
|
|
40
|
+
2. Detect which AI clients are installed on your machine
|
|
41
|
+
3. Let you choose which clients to configure
|
|
42
|
+
4. Write the MCP config files automatically
|
|
33
43
|
|
|
34
|
-
|
|
44
|
+
After setup, **restart your AI client** — the elastic.io tools will appear in the chat.
|
|
35
45
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
### Requirements
|
|
39
|
-
* **Node.js** (version 18 or higher)
|
|
40
|
-
* **npm** or yarn
|
|
41
|
-
* **Embedding Provider API Key** (required for creating documentation and flow sample embeddings, e.g. Gemini).
|
|
42
|
-
* **Vector Store URL and API Key** (for semantic search capabilities, e.g. Qdrant).
|
|
43
|
-
|
|
44
|
-
### Local Setup
|
|
45
|
-
1. Clone this repository and install dependencies:
|
|
46
|
-
```bash
|
|
47
|
-
npm install
|
|
48
|
-
```
|
|
49
|
-
2. Copy `.env.example` to `.env` and fill out your variables:
|
|
50
|
-
```bash
|
|
51
|
-
cp .env.example .env
|
|
52
|
-
```
|
|
53
|
-
3. Build the project:
|
|
54
|
-
```bash
|
|
55
|
-
npm run build
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Running the Server
|
|
59
|
-
To run the server locally inside your IDE (e.g. Cursor or Claude Desktop):
|
|
60
|
-
```bash
|
|
61
|
-
node dist/index.js
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
#### Using npx (no local clone needed)
|
|
65
|
-
If the package is published to npm, you can run it directly:
|
|
66
|
-
```bash
|
|
67
|
-
ELASTICIO_API_EMAIL="your_email@example.com" \
|
|
68
|
-
ELASTICIO_API_KEY="your_api_key" \
|
|
69
|
-
npx @elastic.io/mcp
|
|
70
|
-
```
|
|
46
|
+
### Supported Clients
|
|
71
47
|
|
|
72
|
-
|
|
48
|
+
| Client | macOS | Windows | Linux |
|
|
49
|
+
|---|---|---|---|
|
|
50
|
+
| [Claude Desktop](https://claude.ai/download) | `~/Library/Application Support/Claude/claude_desktop_config.json` | `%APPDATA%\Claude\claude_desktop_config.json` | `~/.config/Claude/claude_desktop_config.json` |
|
|
51
|
+
| [Claude Code](https://claude.ai/code) | `~/.claude.json` | `%USERPROFILE%\.claude.json` | `~/.claude.json` |
|
|
52
|
+
| [ChatGPT / Codex](https://openai.com/chatgpt/desktop/) | `~/.codex/config.toml` | `%USERPROFILE%\.codex\config.toml` | `~/.codex/config.toml` |
|
|
53
|
+
| [Cursor](https://cursor.com/) | `~/.cursor/mcp.json` | `%USERPROFILE%\.cursor\mcp.json` | `~/.cursor/mcp.json` |
|
|
54
|
+
| [Windsurf](https://codeium.com/windsurf) | `~/.codeium/windsurf/mcp_config.json` | `%USERPROFILE%\.codeium\windsurf\mcp_config.json` | `~/.codeium/windsurf/mcp_config.json` |
|
|
55
|
+
| [VS Code (Copilot)](https://code.visualstudio.com/) | `~/Library/Application Support/Code/User/mcp.json` | `%APPDATA%\Code\User\mcp.json` | `~/.config/Code/User/mcp.json` |
|
|
56
|
+
| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | `~/.gemini/settings.json` | `%USERPROFILE%\.gemini\settings.json` | `~/.gemini/settings.json` |
|
|
57
|
+
| [Zed](https://zed.dev/) | `~/.config/zed/settings.json` | — | `~/.config/zed/settings.json` |
|
|
58
|
+
| [Trae (ByteDance)](https://www.trae.ai/) | `~/.trae/mcp.json` | `%USERPROFILE%\.trae\mcp.json` | `~/.trae/mcp.json` |
|
|
59
|
+
| [Cline (VS Code)](https://github.com/cline/cline) | VS Code globalStorage | VS Code globalStorage | VS Code globalStorage |
|
|
60
|
+
| [Qwen Code](https://qwenlm.github.io/) | `~/.qwen/settings.json` | `%USERPROFILE%\.qwen\settings.json` | `~/.qwen/settings.json` |
|
|
61
|
+
| [Kimi Code](https://kimi.moonshot.cn/) | `~/.kimi-code/mcp.json` | `%USERPROFILE%\.kimi-code\mcp.json` | `~/.kimi-code/mcp.json` |
|
|
62
|
+
| [DeepSeek](https://www.deepseek.com/) | `~/.deepseek/mcp.json` | `%USERPROFILE%\.deepseek\mcp.json` | `~/.deepseek/mcp.json` |
|
|
73
63
|
|
|
74
|
-
|
|
75
|
-
|---|---|---|
|
|
76
|
-
| `ELASTICIO_API_EMAIL` | Yes | Your elastic.io account email |
|
|
77
|
-
| `ELASTICIO_API_KEY` | Yes | Your elastic.io API key |
|
|
78
|
-
| `ELASTICIO_API_BASE_URL` | No | API base URL (default: `https://api.elastic.io/v2`) |
|
|
64
|
+
### Manual Configuration
|
|
79
65
|
|
|
80
|
-
|
|
66
|
+
If you prefer to configure manually, add the following to your client's MCP config file:
|
|
81
67
|
|
|
82
|
-
#### Client Configuration
|
|
83
|
-
Configure your client configuration file (e.g., `mcp_config.json`) to invoke this command, providing the required environment variables:
|
|
84
|
-
|
|
85
|
-
**Using npx (recommended):**
|
|
86
68
|
```json
|
|
87
69
|
{
|
|
88
70
|
"mcpServers": {
|
|
89
|
-
"elasticio
|
|
71
|
+
"elasticio": {
|
|
90
72
|
"command": "npx",
|
|
91
73
|
"args": ["-y", "@elastic.io/mcp"],
|
|
92
74
|
"env": {
|
|
93
75
|
"ELASTICIO_API_EMAIL": "your_email@example.com",
|
|
94
|
-
"ELASTICIO_API_KEY": "your_api_key"
|
|
76
|
+
"ELASTICIO_API_KEY": "your_api_key",
|
|
77
|
+
"ELASTICIO_API_BASE_URL": "https://api.elastic.io/v2"
|
|
95
78
|
}
|
|
96
79
|
}
|
|
97
80
|
}
|
|
98
81
|
}
|
|
99
82
|
```
|
|
100
83
|
|
|
101
|
-
**
|
|
102
|
-
```json
|
|
103
|
-
{
|
|
104
|
-
"mcpServers": {
|
|
105
|
-
"elasticio-mcp": {
|
|
106
|
-
"command": "node",
|
|
107
|
-
"args": ["/path/to/project/dist/index.js"],
|
|
108
|
-
"cwd": "/path/to/project",
|
|
109
|
-
"env": {
|
|
110
|
-
"ELASTICIO_API_EMAIL": "your_email@example.com",
|
|
111
|
-
"ELASTICIO_API_KEY": "your_api_key"
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
```
|
|
84
|
+
> **Note:** ChatGPT / Codex uses TOML format — use `npx -y @elastic.io/mcp setup` for automatic configuration.
|
|
117
85
|
|
|
118
86
|
---
|
|
119
87
|
|
|
120
|
-
##
|
|
121
|
-
|
|
122
|
-
The
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
* **Ingest Flow Templates:** Parses the local JSON templates located in `resources/flow-examples/` and uploads them to the Qdrant `flow_samples` collection:
|
|
131
|
-
```bash
|
|
132
|
-
node dist/scripts/ingest_flow_examples.js
|
|
133
|
-
```
|
|
134
|
-
* **Verify Search:** Runs test search queries against Qdrant to confirm embeddings were correctly indexed:
|
|
135
|
-
```bash
|
|
136
|
-
node dist/scripts/test_search.js --query "your query string" --collection "flow_samples"
|
|
137
|
-
```
|
|
88
|
+
## How It Works
|
|
89
|
+
|
|
90
|
+
The AI client starts the MCP server as a subprocess and communicates over stdin/stdout:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
AI Client (Claude/ChatGPT/Cursor/...) <--> [stdin / stdout] <--> MCP Server <--> elastic.io API
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
The server exposes 36 tools that let the AI: list components, discover credentials, create and manage flows, build JSONata mappings, debug flow steps, manage data samples, analyze logs, and more.
|
|
138
97
|
|
|
98
|
+
### Built-in Safeguards
|
|
99
|
+
* **State-Machine Verification** — components and credentials must be discovered in the current session before they can be used, preventing hallucinated IDs.
|
|
100
|
+
* **JSONata Safety Checks** — warns when mappings have common mistakes (quoted expressions, missing `$getPassthrough()` calls).
|
|
101
|
+
* **Token Optimization** — large metadata and enums are dynamically pruned to stay within context limits.
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,MAAM,CAAC,YAAY,CAAC,CAAC;AACvB,CAAC;KAAM,CAAC;IACN,MAAM,CAAC,YAAY,CAAC,CAAC;AACvB,CAAC"}
|
package/dist/setup.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AAgPA,wBAAsB,QAAQ,kBAyD7B"}
|
package/dist/setup.js
ADDED
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import os from 'node:os';
|
|
5
|
+
import readline from 'node:readline';
|
|
6
|
+
const home = os.homedir();
|
|
7
|
+
// Resolve the full path to npx at setup time so clients that don't inherit
|
|
8
|
+
// the user's shell PATH (NVM, fnm, Homebrew, etc.) can still find it.
|
|
9
|
+
import { execSync } from 'node:child_process';
|
|
10
|
+
function resolveNpxPath() {
|
|
11
|
+
try {
|
|
12
|
+
return execSync('which npx', { encoding: 'utf-8' }).trim();
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return 'npx'; // fallback to bare name
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const npxPath = resolveNpxPath();
|
|
19
|
+
function mcpEntry(env) {
|
|
20
|
+
return {
|
|
21
|
+
command: npxPath,
|
|
22
|
+
args: ['-y', '@elastic.io/mcp@dev'],
|
|
23
|
+
env,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function writeTomlMcpServer(configPath, env) {
|
|
27
|
+
let content = '';
|
|
28
|
+
try {
|
|
29
|
+
content = fs.readFileSync(configPath, 'utf-8');
|
|
30
|
+
}
|
|
31
|
+
catch { /* file doesn't exist yet */ }
|
|
32
|
+
// Remove existing elasticio section if present
|
|
33
|
+
content = content.replace(/\n?\[mcp_servers\.elasticio\][\s\S]*?(?=\n\[|$)/, '');
|
|
34
|
+
// Build TOML section
|
|
35
|
+
const envLines = Object.entries(env)
|
|
36
|
+
.map(([k, v]) => `${k} = "${v}"`)
|
|
37
|
+
.join('\n');
|
|
38
|
+
const section = `
|
|
39
|
+
[mcp_servers.elasticio]
|
|
40
|
+
command = "${npxPath}"
|
|
41
|
+
args = ["-y", "@elastic.io/mcp@dev"]
|
|
42
|
+
startup_timeout_sec = 120
|
|
43
|
+
|
|
44
|
+
[mcp_servers.elasticio.env]
|
|
45
|
+
${envLines}
|
|
46
|
+
`;
|
|
47
|
+
fs.mkdirSync(path.dirname(configPath), { recursive: true });
|
|
48
|
+
fs.writeFileSync(configPath, content.trimEnd() + '\n' + section, 'utf-8');
|
|
49
|
+
}
|
|
50
|
+
function platformPath(mac, win, linux) {
|
|
51
|
+
if (process.platform === 'darwin')
|
|
52
|
+
return mac;
|
|
53
|
+
if (process.platform === 'win32')
|
|
54
|
+
return win;
|
|
55
|
+
return linux;
|
|
56
|
+
}
|
|
57
|
+
const clients = [
|
|
58
|
+
{
|
|
59
|
+
name: 'Claude Desktop',
|
|
60
|
+
configPath: platformPath(path.join(home, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'), path.join(home, 'AppData', 'Roaming', 'Claude', 'claude_desktop_config.json'), path.join(home, '.config', 'Claude', 'claude_desktop_config.json')),
|
|
61
|
+
writeConfig(configPath, env) {
|
|
62
|
+
const existing = readJson(configPath);
|
|
63
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
64
|
+
existing.mcpServers['elasticio'] = mcpEntry(env);
|
|
65
|
+
writeJson(configPath, existing);
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'Claude Code',
|
|
70
|
+
configPath: path.join(home, '.claude.json'),
|
|
71
|
+
writeConfig(configPath, env) {
|
|
72
|
+
const existing = readJson(configPath);
|
|
73
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
74
|
+
existing.mcpServers['elasticio'] = mcpEntry(env);
|
|
75
|
+
writeJson(configPath, existing);
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: 'ChatGPT / Codex',
|
|
80
|
+
configPath: path.join(home, '.codex', 'config.toml'),
|
|
81
|
+
writeConfig(configPath, env) {
|
|
82
|
+
writeTomlMcpServer(configPath, env);
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: 'Cursor',
|
|
87
|
+
configPath: path.join(home, '.cursor', 'mcp.json'),
|
|
88
|
+
writeConfig(configPath, env) {
|
|
89
|
+
const existing = readJson(configPath);
|
|
90
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
91
|
+
existing.mcpServers['elasticio'] = mcpEntry(env);
|
|
92
|
+
writeJson(configPath, existing);
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: 'Windsurf',
|
|
97
|
+
configPath: path.join(home, '.codeium', 'windsurf', 'mcp_config.json'),
|
|
98
|
+
writeConfig(configPath, env) {
|
|
99
|
+
const existing = readJson(configPath);
|
|
100
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
101
|
+
existing.mcpServers['elasticio'] = mcpEntry(env);
|
|
102
|
+
writeJson(configPath, existing);
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: 'Gemini CLI',
|
|
107
|
+
configPath: path.join(home, '.gemini', 'settings.json'),
|
|
108
|
+
writeConfig(configPath, env) {
|
|
109
|
+
const existing = readJson(configPath);
|
|
110
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
111
|
+
existing.mcpServers['elasticio'] = mcpEntry(env);
|
|
112
|
+
writeJson(configPath, existing);
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
name: 'Trae (ByteDance)',
|
|
117
|
+
configPath: path.join(home, '.trae', 'mcp.json'),
|
|
118
|
+
writeConfig(configPath, env) {
|
|
119
|
+
const existing = readJson(configPath);
|
|
120
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
121
|
+
existing.mcpServers['elasticio'] = mcpEntry(env);
|
|
122
|
+
writeJson(configPath, existing);
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'VS Code (Copilot)',
|
|
127
|
+
configPath: platformPath(path.join(home, 'Library', 'Application Support', 'Code', 'User', 'mcp.json'), path.join(home, 'AppData', 'Roaming', 'Code', 'User', 'mcp.json'), path.join(home, '.config', 'Code', 'User', 'mcp.json')),
|
|
128
|
+
writeConfig(configPath, env) {
|
|
129
|
+
const existing = readJson(configPath);
|
|
130
|
+
existing.servers = existing.servers || {};
|
|
131
|
+
existing.servers['elasticio'] = mcpEntry(env);
|
|
132
|
+
writeJson(configPath, existing);
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: 'Zed',
|
|
137
|
+
configPath: path.join(home, '.config', 'zed', 'settings.json'),
|
|
138
|
+
writeConfig(configPath, env) {
|
|
139
|
+
const existing = readJson(configPath);
|
|
140
|
+
existing.context_servers = existing.context_servers || {};
|
|
141
|
+
existing.context_servers['elasticio'] = {
|
|
142
|
+
command: { path: 'npx', args: ['-y', '@elastic.io/mcp@dev'] },
|
|
143
|
+
settings: env,
|
|
144
|
+
};
|
|
145
|
+
writeJson(configPath, existing);
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
name: 'Cline (VS Code)',
|
|
150
|
+
configPath: platformPath(path.join(home, 'Library', 'Application Support', 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'), path.join(home, 'AppData', 'Roaming', 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json'), path.join(home, '.config', 'Code', 'User', 'globalStorage', 'saoudrizwan.claude-dev', 'settings', 'cline_mcp_settings.json')),
|
|
151
|
+
writeConfig(configPath, env) {
|
|
152
|
+
const existing = readJson(configPath);
|
|
153
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
154
|
+
existing.mcpServers['elasticio'] = mcpEntry(env);
|
|
155
|
+
writeJson(configPath, existing);
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
name: 'Qwen Code',
|
|
160
|
+
configPath: path.join(home, '.qwen', 'settings.json'),
|
|
161
|
+
writeConfig(configPath, env) {
|
|
162
|
+
const existing = readJson(configPath);
|
|
163
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
164
|
+
existing.mcpServers['elasticio'] = mcpEntry(env);
|
|
165
|
+
writeJson(configPath, existing);
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
name: 'Kimi Code',
|
|
170
|
+
configPath: path.join(home, '.kimi-code', 'mcp.json'),
|
|
171
|
+
writeConfig(configPath, env) {
|
|
172
|
+
const existing = readJson(configPath);
|
|
173
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
174
|
+
existing.mcpServers['elasticio'] = mcpEntry(env);
|
|
175
|
+
writeJson(configPath, existing);
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
name: 'DeepSeek',
|
|
180
|
+
configPath: path.join(home, '.deepseek', 'mcp.json'),
|
|
181
|
+
writeConfig(configPath, env) {
|
|
182
|
+
const existing = readJson(configPath);
|
|
183
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
184
|
+
existing.mcpServers['elasticio'] = mcpEntry(env);
|
|
185
|
+
writeJson(configPath, existing);
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
];
|
|
189
|
+
function readJson(filePath) {
|
|
190
|
+
try {
|
|
191
|
+
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
return {};
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
function writeJson(filePath, data) {
|
|
198
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
199
|
+
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n', 'utf-8');
|
|
200
|
+
}
|
|
201
|
+
function detectClients() {
|
|
202
|
+
return clients.filter((c) => {
|
|
203
|
+
// Check if config file or its parent directory exists
|
|
204
|
+
const dir = path.dirname(c.configPath);
|
|
205
|
+
return fs.existsSync(c.configPath) || fs.existsSync(dir);
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
function ask(rl, question) {
|
|
209
|
+
return new Promise((resolve) => rl.question(question, resolve));
|
|
210
|
+
}
|
|
211
|
+
export async function runSetup() {
|
|
212
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
213
|
+
console.log('\n🔧 elastic.io MCP Server Setup\n');
|
|
214
|
+
// 1. Collect credentials
|
|
215
|
+
const email = await ask(rl, 'elastic.io email: ');
|
|
216
|
+
const apiKey = await ask(rl, 'elastic.io API key: ');
|
|
217
|
+
const baseUrl = await ask(rl, 'API base URL (press Enter for https://api.elastic.io/v2): ');
|
|
218
|
+
const env = {
|
|
219
|
+
ELASTICIO_API_EMAIL: email.trim(),
|
|
220
|
+
ELASTICIO_API_KEY: apiKey.trim(),
|
|
221
|
+
ELASTICIO_API_BASE_URL: baseUrl.trim() || 'https://api.elastic.io/v2',
|
|
222
|
+
};
|
|
223
|
+
// 2. Detect clients
|
|
224
|
+
const detected = detectClients();
|
|
225
|
+
if (detected.length === 0) {
|
|
226
|
+
console.log('\nNo supported AI clients detected. Supported clients:');
|
|
227
|
+
clients.forEach((c) => console.log(` - ${c.name}`));
|
|
228
|
+
console.log('\nInstall one of the above clients and run setup again.');
|
|
229
|
+
rl.close();
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
console.log('\nDetected AI clients:');
|
|
233
|
+
detected.forEach((c, i) => console.log(` ${i + 1}. ${c.name}`));
|
|
234
|
+
const selection = await ask(rl, `\nInstall to (comma-separated numbers, or "all"): `);
|
|
235
|
+
rl.close();
|
|
236
|
+
let selected;
|
|
237
|
+
if (selection.trim().toLowerCase() === 'all') {
|
|
238
|
+
selected = detected;
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
const indices = selection.split(',').map((s) => parseInt(s.trim(), 10) - 1);
|
|
242
|
+
selected = indices.filter((i) => i >= 0 && i < detected.length).map((i) => detected[i]);
|
|
243
|
+
}
|
|
244
|
+
if (selected.length === 0) {
|
|
245
|
+
console.log('No clients selected. Exiting.');
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
// 3. Write configs
|
|
249
|
+
for (const client of selected) {
|
|
250
|
+
try {
|
|
251
|
+
client.writeConfig(client.configPath, env);
|
|
252
|
+
console.log(`✅ ${client.name} — configured (${client.configPath})`);
|
|
253
|
+
}
|
|
254
|
+
catch (err) {
|
|
255
|
+
console.error(`❌ ${client.name} — failed: ${err.message}`);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
console.log('\nDone! Restart your AI client to pick up the new MCP server.\n');
|
|
259
|
+
}
|
|
260
|
+
// Self-execute when run directly
|
|
261
|
+
runSetup().then(() => process.exit(0)).catch((err) => {
|
|
262
|
+
console.error(err);
|
|
263
|
+
process.exit(1);
|
|
264
|
+
});
|
|
265
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,QAAQ,MAAM,eAAe,CAAC;AAQrC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AAE1B,2EAA2E;AAC3E,sEAAsE;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC,CAAC,wBAAwB;IACxC,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;AAEjC,SAAS,QAAQ,CAAC,GAA2B;IAC3C,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC;QACnC,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,GAA2B;IACzE,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;IAExC,+CAA+C;IAC/C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iDAAiD,EAAE,EAAE,CAAC,CAAC;IAEjF,qBAAqB;IACrB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;SAChC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,OAAO,GAAG;;aAEL,OAAO;;;;;EAKlB,QAAQ;CACT,CAAC;IAEA,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa;IAC3D,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC9C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,GAAG,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,OAAO,GAAmB;IAC9B;QACE,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,YAAY,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC,EACzF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,EAC7E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CACnE;QACD,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;QAC3C,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;QACpD,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;QAClD,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;QACtE,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;QACvD,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC;QAChD,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,UAAU,EAAE,YAAY,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAC7E,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EACjE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CACvD;QACD,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC;YAC1C,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC;QAC9D,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;YAC1D,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG;gBACtC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC,EAAE;gBAC7D,QAAQ,EAAE,GAAG;aACd,CAAC;YACF,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,UAAU,EAAE,YAAY,CACtB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,wBAAwB,EAAE,UAAU,EAAE,yBAAyB,CAAC,EACnJ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,wBAAwB,EAAE,UAAU,EAAE,yBAAyB,CAAC,EACvI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,wBAAwB,EAAE,UAAU,EAAE,yBAAyB,CAAC,CAC7H;QACD,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,eAAe,CAAC;QACrD,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC;QACrD,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,CAAC;QACpD,WAAW,CAAC,UAAU,EAAE,GAAG;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;YAChD,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;KACF;CACF,CAAC;AAEF,SAAS,QAAQ,CAAC,QAAgB;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB,EAAE,IAAyB;IAC5D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,sDAAsD;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,GAAG,CAAC,EAAsB,EAAE,QAAgB;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtF,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAElD,yBAAyB;IACzB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,4DAA4D,CAAC,CAAC;IAE5F,MAAM,GAAG,GAA2B;QAClC,mBAAmB,EAAE,KAAK,CAAC,IAAI,EAAE;QACjC,iBAAiB,EAAE,MAAM,CAAC,IAAI,EAAE;QAChC,sBAAsB,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,2BAA2B;KACtE,CAAC;IAEF,oBAAoB;IACpB,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IAEjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;QACtE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAEjE,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,EAAE,EAAE,oDAAoD,CAAC,CAAC;IACtF,EAAE,CAAC,KAAK,EAAE,CAAC;IAEX,IAAI,QAAwB,CAAC;IAC7B,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;QAC7C,QAAQ,GAAG,QAAQ,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5E,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,mBAAmB;IACnB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,kBAAkB,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,IAAI,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;AACjF,CAAC;AAED,iCAAiC;AACjC,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elastic.io/mcp",
|
|
3
|
-
"version": "1.0.1-
|
|
3
|
+
"version": "1.0.1-dev10",
|
|
4
4
|
"description": "elastic.io Model Context Protocol (MCP) Server",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"
|
|
7
|
+
"mcp": "dist/cli.js"
|
|
8
8
|
},
|
|
9
9
|
"type": "module",
|
|
10
10
|
"files": [
|