@elastic.io/mcp 1.0.1-dev10 → 1.0.1-dev3
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 +99 -62
- package/dist/index.js +199 -194
- package/dist/index.js.map +1 -1
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +10 -131
- package/dist/setup.js.map +1 -1
- package/package.json +3 -2
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -9
- package/dist/cli.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,101 +1,138 @@
|
|
|
1
1
|
# elastic.io Model Context Protocol (MCP) Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A professional, production-ready TypeScript-based Model Context Protocol (MCP) server that connects Large Language Models (LLMs) to the **elastic.io** iPaaS platform REST API v2.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
This server enables AI assistants (such as Antigravity, Claude Desktop, Claude Code, Cursor, or custom frontends) to discover, construct, modify, manage, and debug integration flows directly.
|
|
6
|
+
|
|
7
|
+
It is published on npm as `@elastic.io/mcp` and can be run directly via `npx @elastic.io/mcp`.
|
|
6
8
|
|
|
7
9
|
---
|
|
8
10
|
|
|
9
|
-
##
|
|
11
|
+
## What is the MCP Server?
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
This server implements the **Model Context Protocol (MCP)**, a standard protocol that lets LLMs securely query and mutate data in external systems.
|
|
12
14
|
|
|
13
|
-
|
|
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
|
|
15
|
+
Specifically, this server acts as an intelligent intermediary between an LLM agent and the elastic.io integration platform, exposing 36 distinct tools that translate high-level requests into raw API operations. It allows LLMs to list components, discover credentials, create and manage flows, build mappings with JSONata expressions, debug individual flow steps, manage data samples, analyze run-time logs, and more.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
---
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
## How It Works
|
|
20
20
|
|
|
21
|
-
**
|
|
22
|
-
```bash
|
|
23
|
-
npx -y @elastic.io/mcp setup
|
|
24
|
-
```
|
|
21
|
+
The server runs in **Stdio mode**: the LLM client starts the server as a subprocess, and communication occurs over standard input/output streams.
|
|
25
22
|
|
|
26
|
-
**Windows (Command Prompt):**
|
|
27
|
-
```cmd
|
|
28
|
-
npx -y @elastic.io/mcp setup
|
|
29
23
|
```
|
|
30
|
-
|
|
31
|
-
**Windows (PowerShell):**
|
|
32
|
-
```powershell
|
|
33
|
-
npx -y @elastic.io/mcp setup
|
|
24
|
+
LLM Client (Cursor/Claude Code/Claude Desktop) <--> [stdin / stdout] <--> MCP Server
|
|
34
25
|
```
|
|
35
26
|
|
|
36
|
-
|
|
27
|
+
The server loads authentication credentials (`ELASTICIO_API_EMAIL` and `ELASTICIO_API_KEY`) from environment variables or a local `.env` file.
|
|
37
28
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
4. Write the MCP config files automatically
|
|
29
|
+
### Core Safeguards & Optimizations
|
|
30
|
+
* **State-Machine Verification:** To prevent the LLM from configuring flows using cached or hallucinated IDs, the validation engine enforces that components and credentials must be fetched/discovered in the current session before they can be configured in a graph.
|
|
31
|
+
* **JSONata Safety Checks:** The server reviews generated mappings, warning the LLM if it wraps JSONata mappers in outer quotes (making them strings) or references variables directly instead of using `$getPassthrough().step_id.body.field`.
|
|
32
|
+
* **Token Optimization:** Component details are retrieved in two steps to prevent token bloat. Large metadata objects and enums are dynamically pruned when they exceed limits.
|
|
43
33
|
|
|
44
|
-
|
|
34
|
+
---
|
|
45
35
|
|
|
46
|
-
|
|
36
|
+
## Execution Process & Requirements
|
|
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
|
+
```
|
|
47
71
|
|
|
48
|
-
|
|
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` |
|
|
72
|
+
**Environment variables:**
|
|
63
73
|
|
|
64
|
-
|
|
74
|
+
| Variable | Required | Description |
|
|
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`) |
|
|
65
79
|
|
|
66
|
-
|
|
80
|
+
Semantic search (documentation, flow samples) is handled server-side through the elastic.io API — no additional configuration needed.
|
|
67
81
|
|
|
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):**
|
|
68
86
|
```json
|
|
69
87
|
{
|
|
70
88
|
"mcpServers": {
|
|
71
|
-
"elasticio": {
|
|
89
|
+
"elasticio-mcp": {
|
|
72
90
|
"command": "npx",
|
|
73
91
|
"args": ["-y", "@elastic.io/mcp"],
|
|
74
92
|
"env": {
|
|
75
93
|
"ELASTICIO_API_EMAIL": "your_email@example.com",
|
|
76
|
-
"ELASTICIO_API_KEY": "your_api_key"
|
|
77
|
-
"ELASTICIO_API_BASE_URL": "https://api.elastic.io/v2"
|
|
94
|
+
"ELASTICIO_API_KEY": "your_api_key"
|
|
78
95
|
}
|
|
79
96
|
}
|
|
80
97
|
}
|
|
81
98
|
}
|
|
82
99
|
```
|
|
83
100
|
|
|
84
|
-
|
|
101
|
+
**Using a local clone:**
|
|
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
|
+
```
|
|
85
117
|
|
|
86
118
|
---
|
|
87
119
|
|
|
88
|
-
##
|
|
89
|
-
|
|
90
|
-
The
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
120
|
+
## Embedding & Ingestion Process
|
|
121
|
+
|
|
122
|
+
The server uses semantic search to locate documentation and similar flow configuration examples for the LLM. You must populate the vector database by ingesting local resources:
|
|
123
|
+
|
|
124
|
+
### Ingesting Local Files
|
|
125
|
+
The project includes command-line scripts to parse, embed, and index local resources:
|
|
126
|
+
* **Ingest Documentation:** Parses the markdown files located in `resources/elasticio.github.io/content/` and uploads them to the Qdrant `documentation` collection:
|
|
127
|
+
```bash
|
|
128
|
+
node dist/scripts/ingest_docs.js
|
|
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
|
+
```
|
|
97
138
|
|
|
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/index.js
CHANGED
|
@@ -9,217 +9,222 @@ import { logger } from './api/logger.js';
|
|
|
9
9
|
import { ingestionQueue } from './api/samples.js';
|
|
10
10
|
import crypto from 'node:crypto';
|
|
11
11
|
const args = process.argv.slice(2);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
res.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// Global HTTP request logging middleware
|
|
31
|
-
app.use((req, res, next) => {
|
|
32
|
-
const start = Date.now();
|
|
33
|
-
res.on('finish', () => {
|
|
34
|
-
const duration = Date.now() - start;
|
|
35
|
-
logger.info(`[HTTP] ${req.method} ${req.originalUrl} - Status: ${res.statusCode} (${duration}ms)`);
|
|
36
|
-
});
|
|
37
|
-
next();
|
|
38
|
-
});
|
|
39
|
-
// Custom Security Headers middleware to enforce baseline security controls
|
|
40
|
-
app.use((req, res, next) => {
|
|
41
|
-
res.setHeader('X-Content-Type-Options', 'nosniff');
|
|
42
|
-
res.setHeader('X-Frame-Options', 'DENY');
|
|
43
|
-
res.setHeader('X-XSS-Protection', '1; mode=block');
|
|
44
|
-
res.setHeader('Strict-Transport-Security', 'max-age=15552000; includeSubDomains');
|
|
45
|
-
res.setHeader('Content-Security-Policy', "default-src 'none'");
|
|
46
|
-
next();
|
|
47
|
-
});
|
|
48
|
-
app.get('/health', (req, res) => {
|
|
49
|
-
res.status(200).json({
|
|
50
|
-
status: 'OK',
|
|
51
|
-
activeSessions: sessionManager.activeSessionCount()
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
const connectionRateLimits = new Map();
|
|
55
|
-
const sseRateLimiter = (limit, windowMs) => {
|
|
56
|
-
return (req, res, next) => {
|
|
57
|
-
const ip = req.headers['x-forwarded-for'] || req.ip || req.socket.remoteAddress || 'unknown';
|
|
58
|
-
const now = Date.now();
|
|
59
|
-
let info = connectionRateLimits.get(ip);
|
|
60
|
-
if (!info) {
|
|
61
|
-
info = { timestamps: [] };
|
|
62
|
-
connectionRateLimits.set(ip, info);
|
|
63
|
-
}
|
|
64
|
-
info.timestamps = info.timestamps.filter((ts) => now - ts < windowMs);
|
|
65
|
-
if (info.timestamps.length >= limit) {
|
|
66
|
-
logger.warn(`[Rate Limit Exceeded] IP: ${ip} exceeded session connection limit for ${req.path}`);
|
|
67
|
-
res.status(429).send('Too Many Requests: SSE connection rate limit exceeded. Please wait a minute and try again.');
|
|
12
|
+
if (args.includes('setup')) {
|
|
13
|
+
import('./setup.js');
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const transportFlag = args.find((arg) => arg.startsWith('--transport='));
|
|
17
|
+
const isSseMode = transportFlag ? transportFlag.split('=')[1] === 'sse' : false;
|
|
18
|
+
if (isSseMode) {
|
|
19
|
+
const app = express();
|
|
20
|
+
const sessionManager = new SessionManager();
|
|
21
|
+
sessionManager.startReaper(30 * 60 * 1000); // 30 minutes idle timeout
|
|
22
|
+
const port = config.port;
|
|
23
|
+
// Custom CORS middleware to support cross-origin browser dashboards or clients
|
|
24
|
+
app.use((req, res, next) => {
|
|
25
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
26
|
+
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, DELETE, OPTIONS');
|
|
27
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, mcp-session-id, x-elasticio-email, x-elasticio-api-key');
|
|
28
|
+
if (req.method === 'OPTIONS') {
|
|
29
|
+
res.sendStatus(200);
|
|
68
30
|
return;
|
|
69
31
|
}
|
|
70
|
-
info.timestamps.push(now);
|
|
71
32
|
next();
|
|
33
|
+
});
|
|
34
|
+
// Global HTTP request logging middleware
|
|
35
|
+
app.use((req, res, next) => {
|
|
36
|
+
const start = Date.now();
|
|
37
|
+
res.on('finish', () => {
|
|
38
|
+
const duration = Date.now() - start;
|
|
39
|
+
logger.info(`[HTTP] ${req.method} ${req.originalUrl} - Status: ${res.statusCode} (${duration}ms)`);
|
|
40
|
+
});
|
|
41
|
+
next();
|
|
42
|
+
});
|
|
43
|
+
// Custom Security Headers middleware to enforce baseline security controls
|
|
44
|
+
app.use((req, res, next) => {
|
|
45
|
+
res.setHeader('X-Content-Type-Options', 'nosniff');
|
|
46
|
+
res.setHeader('X-Frame-Options', 'DENY');
|
|
47
|
+
res.setHeader('X-XSS-Protection', '1; mode=block');
|
|
48
|
+
res.setHeader('Strict-Transport-Security', 'max-age=15552000; includeSubDomains');
|
|
49
|
+
res.setHeader('Content-Security-Policy', "default-src 'none'");
|
|
50
|
+
next();
|
|
51
|
+
});
|
|
52
|
+
app.get('/health', (req, res) => {
|
|
53
|
+
res.status(200).json({
|
|
54
|
+
status: 'OK',
|
|
55
|
+
activeSessions: sessionManager.activeSessionCount()
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
const connectionRateLimits = new Map();
|
|
59
|
+
const sseRateLimiter = (limit, windowMs) => {
|
|
60
|
+
return (req, res, next) => {
|
|
61
|
+
const ip = req.headers['x-forwarded-for'] || req.ip || req.socket.remoteAddress || 'unknown';
|
|
62
|
+
const now = Date.now();
|
|
63
|
+
let info = connectionRateLimits.get(ip);
|
|
64
|
+
if (!info) {
|
|
65
|
+
info = { timestamps: [] };
|
|
66
|
+
connectionRateLimits.set(ip, info);
|
|
67
|
+
}
|
|
68
|
+
info.timestamps = info.timestamps.filter((ts) => now - ts < windowMs);
|
|
69
|
+
if (info.timestamps.length >= limit) {
|
|
70
|
+
logger.warn(`[Rate Limit Exceeded] IP: ${ip} exceeded session connection limit for ${req.path}`);
|
|
71
|
+
res.status(429).send('Too Many Requests: SSE connection rate limit exceeded. Please wait a minute and try again.');
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
info.timestamps.push(now);
|
|
75
|
+
next();
|
|
76
|
+
};
|
|
72
77
|
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const token = Buffer.from(`${emailHeader}:${apiKeyHeader}`).toString('base64');
|
|
80
|
-
authHeader = `Basic ${token}`;
|
|
81
|
-
}
|
|
82
|
-
if (config.nodeEnv !== 'production') {
|
|
83
|
-
const queryEmail = req.query.email;
|
|
84
|
-
const queryApiKey = req.query.apiKey;
|
|
85
|
-
const queryAuth = req.query.auth;
|
|
86
|
-
if (!authHeader && typeof queryEmail === 'string' && typeof queryApiKey === 'string') {
|
|
87
|
-
const token = Buffer.from(`${queryEmail}:${queryApiKey}`).toString('base64');
|
|
78
|
+
const getAuthHeader = (req) => {
|
|
79
|
+
let authHeader = req.headers['authorization'];
|
|
80
|
+
const emailHeader = req.headers['x-elasticio-email'];
|
|
81
|
+
const apiKeyHeader = req.headers['x-elasticio-api-key'];
|
|
82
|
+
if (!authHeader && typeof emailHeader === 'string' && typeof apiKeyHeader === 'string') {
|
|
83
|
+
const token = Buffer.from(`${emailHeader}:${apiKeyHeader}`).toString('base64');
|
|
88
84
|
authHeader = `Basic ${token}`;
|
|
89
85
|
}
|
|
90
|
-
if (
|
|
91
|
-
|
|
86
|
+
if (config.nodeEnv !== 'production') {
|
|
87
|
+
const queryEmail = req.query.email;
|
|
88
|
+
const queryApiKey = req.query.apiKey;
|
|
89
|
+
const queryAuth = req.query.auth;
|
|
90
|
+
if (!authHeader && typeof queryEmail === 'string' && typeof queryApiKey === 'string') {
|
|
91
|
+
const token = Buffer.from(`${queryEmail}:${queryApiKey}`).toString('base64');
|
|
92
|
+
authHeader = `Basic ${token}`;
|
|
93
|
+
}
|
|
94
|
+
if (!authHeader && typeof queryAuth === 'string') {
|
|
95
|
+
authHeader = queryAuth;
|
|
96
|
+
}
|
|
92
97
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
98
|
+
return authHeader;
|
|
99
|
+
};
|
|
100
|
+
const handleSessionRoute = async (req, res, next) => {
|
|
101
|
+
try {
|
|
102
|
+
const sessionId = req.headers['mcp-session-id'] || req.query.sessionId;
|
|
103
|
+
if (typeof sessionId === 'string' &&
|
|
104
|
+
sessionId.trim() !== '' &&
|
|
105
|
+
sessionId !== 'undefined' &&
|
|
106
|
+
sessionId !== 'null') {
|
|
107
|
+
// Existing session
|
|
108
|
+
const session = sessionManager.getSession(sessionId);
|
|
109
|
+
if (!session) {
|
|
110
|
+
res.status(404).send(`Session with ID '${sessionId}' not found.`);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
// Verify credentials to prevent session hijacking
|
|
114
|
+
const currentAuth = getAuthHeader(req);
|
|
115
|
+
if (!currentAuth || currentAuth !== session.authHeader) {
|
|
116
|
+
res.status(401).send('Unauthorized: Credentials do not match the session owner.');
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
session.lastActive = Date.now();
|
|
120
|
+
if (req.method === 'DELETE') {
|
|
121
|
+
sessionManager.removeSession(sessionId);
|
|
122
|
+
res.sendStatus(200);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
await session.transport.handleRequest(req, res, req.body);
|
|
107
126
|
return;
|
|
108
127
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (!currentAuth || currentAuth !== session.authHeader) {
|
|
112
|
-
res.status(401).send('Unauthorized: Credentials do not match the session owner.');
|
|
128
|
+
if (req.method !== 'GET' && req.method !== 'POST') {
|
|
129
|
+
res.status(405).send('Method Not Allowed: New session must be GET or POST.');
|
|
113
130
|
return;
|
|
114
131
|
}
|
|
115
|
-
|
|
116
|
-
if (
|
|
117
|
-
|
|
118
|
-
res.sendStatus(200);
|
|
132
|
+
const authHeader = getAuthHeader(req);
|
|
133
|
+
if (!authHeader) {
|
|
134
|
+
res.status(401).send('Unauthorized: Authorization header or "x-elasticio-email" & "x-elasticio-api-key" headers are required.');
|
|
119
135
|
return;
|
|
120
136
|
}
|
|
121
|
-
|
|
122
|
-
|
|
137
|
+
const generatedSessionId = crypto.randomUUID();
|
|
138
|
+
// Create new session resources
|
|
139
|
+
const client = createElasticioClient(authHeader);
|
|
140
|
+
const server = createMcpServer(client);
|
|
141
|
+
const transport = new StreamableHTTPServerTransport({
|
|
142
|
+
sessionIdGenerator: () => generatedSessionId,
|
|
143
|
+
enableJsonResponse: true
|
|
144
|
+
});
|
|
145
|
+
transport.onerror = (err) => {
|
|
146
|
+
logger.error('[SSE Transport Error]', err.message || err, err.stack || '');
|
|
147
|
+
};
|
|
148
|
+
await server.connect(transport);
|
|
149
|
+
sessionManager.registerSession(generatedSessionId, {
|
|
150
|
+
server,
|
|
151
|
+
transport,
|
|
152
|
+
client,
|
|
153
|
+
authHeader,
|
|
154
|
+
lastActive: Date.now()
|
|
155
|
+
});
|
|
156
|
+
res.setHeader('mcp-session-id', generatedSessionId);
|
|
157
|
+
logger.info(`[Session Created] ID: ${generatedSessionId} (Active: ${sessionManager.activeSessionCount()})`);
|
|
158
|
+
await transport.handleRequest(req, res, req.body);
|
|
159
|
+
req.on('close', () => {
|
|
160
|
+
sessionManager.removeSession(generatedSessionId);
|
|
161
|
+
logger.info(`[Session Closed] ID: ${generatedSessionId} (Active: ${sessionManager.activeSessionCount()})`);
|
|
162
|
+
});
|
|
123
163
|
}
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
return;
|
|
164
|
+
catch (err) {
|
|
165
|
+
next(err);
|
|
127
166
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
167
|
+
};
|
|
168
|
+
app.get('/sse', sseRateLimiter(10, 60000), handleSessionRoute);
|
|
169
|
+
app.post('/sse', express.json({ limit: '2mb' }), handleSessionRoute);
|
|
170
|
+
app.delete('/sse', handleSessionRoute);
|
|
171
|
+
app.post('/messages', express.json({ limit: '2mb' }), handleSessionRoute);
|
|
172
|
+
app.delete('/messages', handleSessionRoute);
|
|
173
|
+
app.post('/api/samples', express.json({ limit: '50mb' }), (req, res, next) => {
|
|
174
|
+
try {
|
|
175
|
+
const authHeader = getAuthHeader(req);
|
|
176
|
+
if (!authHeader) {
|
|
177
|
+
res.status(401).send('Unauthorized: Missing credentials.');
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const flows = Array.isArray(req.body) ? req.body : [req.body];
|
|
181
|
+
const purge = req.query.purge === 'true';
|
|
182
|
+
ingestionQueue.enqueue(flows, purge).catch((err) => {
|
|
183
|
+
logger.error('[Samples Ingest Queue Error]', err);
|
|
184
|
+
});
|
|
185
|
+
res.status(202).json({
|
|
186
|
+
status: 'Accepted',
|
|
187
|
+
message: `Ingestion of ${flows.length} flow samples started in the background.${purge ? ' Collection purged first.' : ''}`
|
|
188
|
+
});
|
|
132
189
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const client = createElasticioClient(authHeader);
|
|
136
|
-
const server = createMcpServer(client);
|
|
137
|
-
const transport = new StreamableHTTPServerTransport({
|
|
138
|
-
sessionIdGenerator: () => generatedSessionId,
|
|
139
|
-
enableJsonResponse: true
|
|
140
|
-
});
|
|
141
|
-
transport.onerror = (err) => {
|
|
142
|
-
logger.error('[SSE Transport Error]', err.message || err, err.stack || '');
|
|
143
|
-
};
|
|
144
|
-
await server.connect(transport);
|
|
145
|
-
sessionManager.registerSession(generatedSessionId, {
|
|
146
|
-
server,
|
|
147
|
-
transport,
|
|
148
|
-
client,
|
|
149
|
-
authHeader,
|
|
150
|
-
lastActive: Date.now()
|
|
151
|
-
});
|
|
152
|
-
res.setHeader('mcp-session-id', generatedSessionId);
|
|
153
|
-
logger.info(`[Session Created] ID: ${generatedSessionId} (Active: ${sessionManager.activeSessionCount()})`);
|
|
154
|
-
await transport.handleRequest(req, res, req.body);
|
|
155
|
-
req.on('close', () => {
|
|
156
|
-
sessionManager.removeSession(generatedSessionId);
|
|
157
|
-
logger.info(`[Session Closed] ID: ${generatedSessionId} (Active: ${sessionManager.activeSessionCount()})`);
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
catch (err) {
|
|
161
|
-
next(err);
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
app.get('/sse', sseRateLimiter(10, 60000), handleSessionRoute);
|
|
165
|
-
app.post('/sse', express.json({ limit: '2mb' }), handleSessionRoute);
|
|
166
|
-
app.delete('/sse', handleSessionRoute);
|
|
167
|
-
app.post('/messages', express.json({ limit: '2mb' }), handleSessionRoute);
|
|
168
|
-
app.delete('/messages', handleSessionRoute);
|
|
169
|
-
app.post('/api/samples', express.json({ limit: '50mb' }), (req, res, next) => {
|
|
170
|
-
try {
|
|
171
|
-
const authHeader = getAuthHeader(req);
|
|
172
|
-
if (!authHeader) {
|
|
173
|
-
res.status(401).send('Unauthorized: Missing credentials.');
|
|
174
|
-
return;
|
|
190
|
+
catch (err) {
|
|
191
|
+
next(err);
|
|
175
192
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
193
|
+
});
|
|
194
|
+
app.use((err, req, res, next) => {
|
|
195
|
+
logger.error('[SSE Server Express Error]', err.message || err, err.stack || '');
|
|
196
|
+
if (!res.headersSent) {
|
|
197
|
+
res.status(500).send('Internal Server Error');
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
app.listen(port, () => {
|
|
201
|
+
logger.info(`[elastic.io MCP Server] Running in SSE mode on port ${port}`);
|
|
202
|
+
logger.info(`[SSE Endpoint] GET http://localhost:${port}/sse`);
|
|
203
|
+
logger.info(`[Message Endpoint] POST http://localhost:${port}/messages`);
|
|
204
|
+
logger.info(`[Server Start] SSE mode listening on port ${port}`);
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
const email = config.elasticioApiEmail;
|
|
209
|
+
const apiKey = config.elasticioApiKey;
|
|
210
|
+
if (!email || !apiKey) {
|
|
211
|
+
logger.error('[Error] Missing elastic.io credentials. For local Stdio mode, please set ELASTICIO_API_EMAIL and ELASTICIO_API_KEY in your environment or .env file.');
|
|
212
|
+
logger.error('[Server Error] Missing elastic.io credentials on startup');
|
|
213
|
+
process.exit(1);
|
|
194
214
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
logger.error('[Server Error] Missing elastic.io credentials on startup');
|
|
209
|
-
process.exit(1);
|
|
215
|
+
const token = Buffer.from(`${email}:${apiKey}`).toString('base64');
|
|
216
|
+
const authHeader = `Basic ${token}`;
|
|
217
|
+
const client = createElasticioClient(authHeader);
|
|
218
|
+
const server = createMcpServer(client);
|
|
219
|
+
const transport = new StdioServerTransport();
|
|
220
|
+
server.connect(transport).then(() => {
|
|
221
|
+
logger.info('[elastic.io MCP Server] Running in local stdio mode.');
|
|
222
|
+
logger.info('[Server Start] Local stdio mode initialized successfully');
|
|
223
|
+
}).catch((err) => {
|
|
224
|
+
logger.error('[Fatal Error] Failed to start:', err);
|
|
225
|
+
logger.error(`[Server Error] ${err.message || err}`);
|
|
226
|
+
process.exit(1);
|
|
227
|
+
});
|
|
210
228
|
}
|
|
211
|
-
|
|
212
|
-
const authHeader = `Basic ${token}`;
|
|
213
|
-
const client = createElasticioClient(authHeader);
|
|
214
|
-
const server = createMcpServer(client);
|
|
215
|
-
const transport = new StdioServerTransport();
|
|
216
|
-
server.connect(transport).then(() => {
|
|
217
|
-
logger.info('[elastic.io MCP Server] Running in local stdio mode.');
|
|
218
|
-
logger.info('[Server Start] Local stdio mode initialized successfully');
|
|
219
|
-
}).catch((err) => {
|
|
220
|
-
logger.error('[Fatal Error] Failed to start:', err);
|
|
221
|
-
logger.error(`[Server Error] ${err.message || err}`);
|
|
222
|
-
process.exit(1);
|
|
223
|
-
});
|
|
224
|
-
}
|
|
229
|
+
} // close setup else
|
|
225
230
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AAsGA,wBAAsB,QAAQ,kBAyD7B"}
|
package/dist/setup.js
CHANGED
|
@@ -4,60 +4,19 @@ import path from 'node:path';
|
|
|
4
4
|
import os from 'node:os';
|
|
5
5
|
import readline from 'node:readline';
|
|
6
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
7
|
function mcpEntry(env) {
|
|
20
8
|
return {
|
|
21
|
-
command:
|
|
9
|
+
command: 'npx',
|
|
22
10
|
args: ['-y', '@elastic.io/mcp@dev'],
|
|
23
11
|
env,
|
|
24
12
|
};
|
|
25
13
|
}
|
|
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
14
|
const clients = [
|
|
58
15
|
{
|
|
59
16
|
name: 'Claude Desktop',
|
|
60
|
-
configPath:
|
|
17
|
+
configPath: process.platform === 'darwin'
|
|
18
|
+
? path.join(home, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json')
|
|
19
|
+
: path.join(home, 'AppData', 'Roaming', 'Claude', 'claude_desktop_config.json'),
|
|
61
20
|
writeConfig(configPath, env) {
|
|
62
21
|
const existing = readJson(configPath);
|
|
63
22
|
existing.mcpServers = existing.mcpServers || {};
|
|
@@ -76,55 +35,8 @@ const clients = [
|
|
|
76
35
|
},
|
|
77
36
|
},
|
|
78
37
|
{
|
|
79
|
-
name: 'ChatGPT
|
|
80
|
-
configPath: path.join(home, '.
|
|
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')),
|
|
38
|
+
name: 'ChatGPT',
|
|
39
|
+
configPath: path.join(home, '.chatgpt', 'mcp.json'),
|
|
128
40
|
writeConfig(configPath, env) {
|
|
129
41
|
const existing = readJson(configPath);
|
|
130
42
|
existing.servers = existing.servers || {};
|
|
@@ -133,41 +45,8 @@ const clients = [
|
|
|
133
45
|
},
|
|
134
46
|
},
|
|
135
47
|
{
|
|
136
|
-
name: '
|
|
137
|
-
configPath: path.join(home, '.
|
|
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'),
|
|
48
|
+
name: 'Cursor',
|
|
49
|
+
configPath: path.join(home, '.cursor', 'mcp.json'),
|
|
171
50
|
writeConfig(configPath, env) {
|
|
172
51
|
const existing = readJson(configPath);
|
|
173
52
|
existing.mcpServers = existing.mcpServers || {};
|
|
@@ -176,8 +55,8 @@ const clients = [
|
|
|
176
55
|
},
|
|
177
56
|
},
|
|
178
57
|
{
|
|
179
|
-
name: '
|
|
180
|
-
configPath: path.join(home, '.
|
|
58
|
+
name: 'Windsurf',
|
|
59
|
+
configPath: path.join(home, '.codeium', 'windsurf', 'mcp_config.json'),
|
|
181
60
|
writeConfig(configPath, env) {
|
|
182
61
|
const existing = readJson(configPath);
|
|
183
62
|
existing.mcpServers = existing.mcpServers || {};
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
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,SAAS,QAAQ,CAAC,GAA2B;IAC3C,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC;QACnC,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAmB;IAC9B;QACE,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,OAAO,CAAC,QAAQ,KAAK,QAAQ;YACvC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC;YAC3F,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC;QACjF,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,SAAS;QACf,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC;QACnD,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,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;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,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elastic.io/mcp",
|
|
3
|
-
"version": "1.0.1-
|
|
3
|
+
"version": "1.0.1-dev3",
|
|
4
4
|
"description": "elastic.io Model Context Protocol (MCP) Server",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"mcp": "dist/
|
|
7
|
+
"elasticio-mcp-server": "dist/index.js",
|
|
8
|
+
"elasticio-mcp-setup": "dist/setup.js"
|
|
8
9
|
},
|
|
9
10
|
"type": "module",
|
|
10
11
|
"files": [
|
package/dist/cli.d.ts
DELETED
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
DELETED
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|