doris-mcp-server 1.0.2 → 1.0.3
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/LICENSE +17 -17
- package/README.md +101 -101
- package/dist/index.js +34 -17
- package/dist/index.js.map +1 -1
- package/package.json +50 -44
package/LICENSE
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
Apache License
|
|
2
|
-
Version 2.0, January 2004
|
|
3
|
-
http://www.apache.org/licenses/
|
|
4
|
-
|
|
5
|
-
Copyright 2024 doris-mcp-server-ts contributors
|
|
6
|
-
|
|
7
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
you may not use this file except in compliance with the License.
|
|
9
|
-
You may obtain a copy of the License at
|
|
10
|
-
|
|
11
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
|
|
13
|
-
Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
See the License for the specific language governing permissions and
|
|
17
|
-
limitations under the License.
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
Copyright 2024 doris-mcp-server-ts contributors
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
package/README.md
CHANGED
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
# doris-mcp-server
|
|
2
|
-
|
|
3
|
-
Apache Doris MCP Server implemented in TypeScript.
|
|
4
|
-
|
|
5
|
-
Connects to Apache Doris via the MySQL-compatible protocol (port 9030) and exposes the same tool interface as the official [apache/doris-mcp-server](https://github.com/apache/doris-mcp-server), with zero Python dependencies.
|
|
6
|
-
|
|
7
|
-
## Requirements
|
|
8
|
-
|
|
9
|
-
- Node.js >= 18
|
|
10
|
-
- Apache Doris (any version with MySQL protocol enabled, default port 9030)
|
|
11
|
-
|
|
12
|
-
## Installation
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
npm install -g doris-mcp-server
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## Usage
|
|
19
|
-
|
|
20
|
-
### Stdio mode (for MCP clients like Cursor, Kiro, Claude Desktop)
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
doris-mcp-server \
|
|
24
|
-
--db-host 127.0.0.1 \
|
|
25
|
-
--db-port 9030 \
|
|
26
|
-
--db-user root \
|
|
27
|
-
--db-password your_password
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Environment variables
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
export DORIS_HOST=127.0.0.1
|
|
34
|
-
export DORIS_PORT=9030
|
|
35
|
-
export DORIS_USER=root
|
|
36
|
-
export DORIS_PASSWORD=your_password
|
|
37
|
-
export DORIS_DATABASE=information_schema
|
|
38
|
-
|
|
39
|
-
doris-mcp-server
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### MCP client configuration (Kiro / Cursor)
|
|
43
|
-
|
|
44
|
-
```json
|
|
45
|
-
{
|
|
46
|
-
"mcpServers": {
|
|
47
|
-
"doris": {
|
|
48
|
-
"command": "doris-mcp-server",
|
|
49
|
-
"args": [
|
|
50
|
-
"--db-host", "127.0.0.1",
|
|
51
|
-
"--db-port", "9030",
|
|
52
|
-
"--db-user", "root",
|
|
53
|
-
"--db-password", "your_password"
|
|
54
|
-
]
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Available Tools
|
|
61
|
-
|
|
62
|
-
| Tool | Description |
|
|
63
|
-
|------|-------------|
|
|
64
|
-
| `exec_query` | Execute a SQL query and return results as JSON |
|
|
65
|
-
| `get_catalog_list` | List all catalogs |
|
|
66
|
-
| `get_db_list` | List all databases |
|
|
67
|
-
| `get_db_table_list` | List all tables in a database |
|
|
68
|
-
| `get_table_schema` | Get column definitions for a table |
|
|
69
|
-
| `get_table_comment` | Get the table-level comment |
|
|
70
|
-
| `get_table_column_comments` | Get comments for all columns in a table |
|
|
71
|
-
| `get_table_indexes` | Get index information for a table |
|
|
72
|
-
| `get_recent_audit_logs` | Query recent audit log records |
|
|
73
|
-
| `get_sql_explain` | Get the execution plan for a SQL query |
|
|
74
|
-
| `get_table_data_size` | Get data size information for a table or database |
|
|
75
|
-
|
|
76
|
-
All metadata tools support optional `db_name` and `catalog_name` parameters for multi-catalog environments.
|
|
77
|
-
|
|
78
|
-
## Command Line Arguments
|
|
79
|
-
|
|
80
|
-
| Argument | Description | Default |
|
|
81
|
-
|----------|-------------|---------|
|
|
82
|
-
| `--db-host` | Doris FE host | `127.0.0.1` |
|
|
83
|
-
| `--db-port` | Doris MySQL port | `9030` |
|
|
84
|
-
| `--db-user` | Database username | `root` |
|
|
85
|
-
| `--db-password` | Database password | _(empty)_ |
|
|
86
|
-
| `--db-database` | Default database | `information_schema` |
|
|
87
|
-
|
|
88
|
-
## Comparison with official Python server
|
|
89
|
-
|
|
90
|
-
| Feature | This package | apache/doris-mcp-server |
|
|
91
|
-
|---------|-------------|------------------------|
|
|
92
|
-
| Language | TypeScript / Node.js | Python |
|
|
93
|
-
| Transport | stdio | stdio + HTTP |
|
|
94
|
-
| Core query tools | All 11 | All 11+ |
|
|
95
|
-
| Advanced analytics | No | Yes (7 tools) |
|
|
96
|
-
| ADBC / Arrow Flight | No | Yes |
|
|
97
|
-
| Zero extra runtime | Yes (Node.js only) | No (Python 3.12+) |
|
|
98
|
-
|
|
99
|
-
## License
|
|
100
|
-
|
|
101
|
-
Apache 2.0
|
|
1
|
+
# doris-mcp-server
|
|
2
|
+
|
|
3
|
+
Apache Doris MCP Server implemented in TypeScript.
|
|
4
|
+
|
|
5
|
+
Connects to Apache Doris via the MySQL-compatible protocol (port 9030) and exposes the same tool interface as the official [apache/doris-mcp-server](https://github.com/apache/doris-mcp-server), with zero Python dependencies.
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
- Node.js >= 18
|
|
10
|
+
- Apache Doris (any version with MySQL protocol enabled, default port 9030)
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install -g doris-mcp-server
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
### Stdio mode (for MCP clients like Cursor, Kiro, Claude Desktop)
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
doris-mcp-server \
|
|
24
|
+
--db-host 127.0.0.1 \
|
|
25
|
+
--db-port 9030 \
|
|
26
|
+
--db-user root \
|
|
27
|
+
--db-password your_password
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Environment variables
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
export DORIS_HOST=127.0.0.1
|
|
34
|
+
export DORIS_PORT=9030
|
|
35
|
+
export DORIS_USER=root
|
|
36
|
+
export DORIS_PASSWORD=your_password
|
|
37
|
+
export DORIS_DATABASE=information_schema
|
|
38
|
+
|
|
39
|
+
doris-mcp-server
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### MCP client configuration (Kiro / Cursor)
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"mcpServers": {
|
|
47
|
+
"doris": {
|
|
48
|
+
"command": "doris-mcp-server",
|
|
49
|
+
"args": [
|
|
50
|
+
"--db-host", "127.0.0.1",
|
|
51
|
+
"--db-port", "9030",
|
|
52
|
+
"--db-user", "root",
|
|
53
|
+
"--db-password", "your_password"
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Available Tools
|
|
61
|
+
|
|
62
|
+
| Tool | Description |
|
|
63
|
+
|------|-------------|
|
|
64
|
+
| `exec_query` | Execute a SQL query and return results as JSON |
|
|
65
|
+
| `get_catalog_list` | List all catalogs |
|
|
66
|
+
| `get_db_list` | List all databases |
|
|
67
|
+
| `get_db_table_list` | List all tables in a database |
|
|
68
|
+
| `get_table_schema` | Get column definitions for a table |
|
|
69
|
+
| `get_table_comment` | Get the table-level comment |
|
|
70
|
+
| `get_table_column_comments` | Get comments for all columns in a table |
|
|
71
|
+
| `get_table_indexes` | Get index information for a table |
|
|
72
|
+
| `get_recent_audit_logs` | Query recent audit log records |
|
|
73
|
+
| `get_sql_explain` | Get the execution plan for a SQL query |
|
|
74
|
+
| `get_table_data_size` | Get data size information for a table or database |
|
|
75
|
+
|
|
76
|
+
All metadata tools support optional `db_name` and `catalog_name` parameters for multi-catalog environments.
|
|
77
|
+
|
|
78
|
+
## Command Line Arguments
|
|
79
|
+
|
|
80
|
+
| Argument | Description | Default |
|
|
81
|
+
|----------|-------------|---------|
|
|
82
|
+
| `--db-host` | Doris FE host | `127.0.0.1` |
|
|
83
|
+
| `--db-port` | Doris MySQL port | `9030` |
|
|
84
|
+
| `--db-user` | Database username | `root` |
|
|
85
|
+
| `--db-password` | Database password | _(empty)_ |
|
|
86
|
+
| `--db-database` | Default database | `information_schema` |
|
|
87
|
+
|
|
88
|
+
## Comparison with official Python server
|
|
89
|
+
|
|
90
|
+
| Feature | This package | apache/doris-mcp-server |
|
|
91
|
+
|---------|-------------|------------------------|
|
|
92
|
+
| Language | TypeScript / Node.js | Python |
|
|
93
|
+
| Transport | stdio | stdio + HTTP |
|
|
94
|
+
| Core query tools | All 11 | All 11+ |
|
|
95
|
+
| Advanced analytics | No | Yes (7 tools) |
|
|
96
|
+
| ADBC / Arrow Flight | No | Yes |
|
|
97
|
+
| Zero extra runtime | Yes (Node.js only) | No (Python 3.12+) |
|
|
98
|
+
|
|
99
|
+
## License
|
|
100
|
+
|
|
101
|
+
Apache 2.0
|
package/dist/index.js
CHANGED
|
@@ -30,17 +30,38 @@ async function getConnection() {
|
|
|
30
30
|
connectTimeout: 10000,
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
// SHOW / DESCRIBE / EXPLAIN 等命令 Doris Nereids 优化器不支持,需要提前关闭
|
|
34
|
+
const NEREIDS_UNSUPPORTED = /^\s*(SHOW|DESCRIBE|DESC|EXPLAIN|ALTER|DROP|CREATE|ADMIN|RECOVER|TRUNCATE)\b/i;
|
|
35
|
+
async function query(sql, params, database) {
|
|
34
36
|
const conn = await getConnection();
|
|
35
37
|
try {
|
|
36
|
-
|
|
38
|
+
if (database) {
|
|
39
|
+
await conn.query(`USE \`${database}\``);
|
|
40
|
+
}
|
|
41
|
+
// 对已知不兼容 Nereids 的命令,提前关闭优化器
|
|
42
|
+
if (NEREIDS_UNSUPPORTED.test(sql)) {
|
|
43
|
+
await conn.query("SET enable_nereids_planner=false");
|
|
44
|
+
}
|
|
45
|
+
// 有参数时用 execute (prepared statement),无参数时用 query (text protocol)
|
|
46
|
+
// Doris Nereids 在 prepared statement 阶段就会拒绝不支持的命令
|
|
47
|
+
const [rows] = params ? await conn.execute(sql, params) : await conn.query(sql);
|
|
37
48
|
return rows;
|
|
38
49
|
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
// 兜底:如果仍然遇到 Nereids 错误,关闭优化器后用 text protocol 重试
|
|
52
|
+
const errInfo = JSON.stringify({ message: err?.message, sqlMessage: err?.sqlMessage, code: err?.code });
|
|
53
|
+
if (errInfo.includes('MustFallbackException') || errInfo.includes('fallback')) {
|
|
54
|
+
await conn.query("SET enable_nereids_planner=false");
|
|
55
|
+
const [rows] = params ? await conn.execute(sql, params) : await conn.query(sql);
|
|
56
|
+
return rows;
|
|
57
|
+
}
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
39
60
|
finally {
|
|
40
61
|
await conn.end();
|
|
41
62
|
}
|
|
42
63
|
}
|
|
43
|
-
const server = new Server({ name: "doris-mcp-server", version: "1.0.
|
|
64
|
+
const server = new Server({ name: "doris-mcp-server", version: "1.0.3" }, { capabilities: { tools: {} } });
|
|
44
65
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
45
66
|
tools: [
|
|
46
67
|
{
|
|
@@ -162,9 +183,7 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
162
183
|
switch (name) {
|
|
163
184
|
case "exec_query": {
|
|
164
185
|
const { sql, database } = z.object({ sql: z.string(), database: z.string().optional() }).parse(args);
|
|
165
|
-
|
|
166
|
-
await query(`USE \`${database}\``);
|
|
167
|
-
rows = await query(sql);
|
|
186
|
+
rows = await query(sql, undefined, database);
|
|
168
187
|
break;
|
|
169
188
|
}
|
|
170
189
|
case "get_db_list":
|
|
@@ -182,17 +201,17 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
182
201
|
}
|
|
183
202
|
case "get_table_comment": {
|
|
184
203
|
const { database, table } = z.object({ database: z.string(), table: z.string() }).parse(args);
|
|
185
|
-
rows = await query(`SELECT COLUMN_NAME, COLUMN_COMMENT, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
|
|
186
|
-
FROM information_schema.COLUMNS
|
|
187
|
-
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
|
|
204
|
+
rows = await query(`SELECT COLUMN_NAME, COLUMN_COMMENT, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
|
|
205
|
+
FROM information_schema.COLUMNS
|
|
206
|
+
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
|
|
188
207
|
ORDER BY ORDINAL_POSITION`, [database, table]);
|
|
189
208
|
break;
|
|
190
209
|
}
|
|
191
210
|
case "get_table_indexes": {
|
|
192
211
|
const { database, table } = z.object({ database: z.string(), table: z.string() }).parse(args);
|
|
193
|
-
rows = await query(`SELECT INDEX_NAME, COLUMN_NAME, INDEX_TYPE, NON_UNIQUE
|
|
194
|
-
FROM information_schema.STATISTICS
|
|
195
|
-
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
|
|
212
|
+
rows = await query(`SELECT INDEX_NAME, COLUMN_NAME, INDEX_TYPE, NON_UNIQUE
|
|
213
|
+
FROM information_schema.STATISTICS
|
|
214
|
+
WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
|
|
196
215
|
ORDER BY INDEX_NAME, SEQ_IN_INDEX`, [database, table]);
|
|
197
216
|
break;
|
|
198
217
|
}
|
|
@@ -204,18 +223,16 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
|
204
223
|
case "get_table_status": {
|
|
205
224
|
const { database, table } = z.object({ database: z.string(), table: z.string().optional() }).parse(args);
|
|
206
225
|
const sql = table
|
|
207
|
-
? `SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH, INDEX_LENGTH, TABLE_COMMENT, CREATE_TIME
|
|
226
|
+
? `SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH, INDEX_LENGTH, TABLE_COMMENT, CREATE_TIME
|
|
208
227
|
FROM information_schema.TABLES WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?`
|
|
209
|
-
: `SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH, INDEX_LENGTH, TABLE_COMMENT, CREATE_TIME
|
|
228
|
+
: `SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH, INDEX_LENGTH, TABLE_COMMENT, CREATE_TIME
|
|
210
229
|
FROM information_schema.TABLES WHERE TABLE_SCHEMA = ? ORDER BY TABLE_NAME`;
|
|
211
230
|
rows = table ? await query(sql, [database, table]) : await query(sql, [database]);
|
|
212
231
|
break;
|
|
213
232
|
}
|
|
214
233
|
case "explain_query": {
|
|
215
234
|
const { sql, database } = z.object({ sql: z.string(), database: z.string().optional() }).parse(args);
|
|
216
|
-
|
|
217
|
-
await query(`USE \`${database}\``);
|
|
218
|
-
rows = await query(`EXPLAIN ${sql}`);
|
|
235
|
+
rows = await query(`EXPLAIN ${sql}`, undefined, database);
|
|
219
236
|
break;
|
|
220
237
|
}
|
|
221
238
|
case "get_running_queries":
|
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,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,6BAA6B;AAC7B,SAAS,SAAS;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE;QAClD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAC1D,CAAC,CAAC;IACF,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC;QACjD,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC;QAC5C,QAAQ,EAAE,GAAG,CAAC,eAAe,EAAE,gBAAgB,EAAE,EAAE,CAAC;QACpD,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,aAAa;IAC1B,OAAO,KAAK,CAAC,gBAAgB,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;QACtC,cAAc,EAAE,KAAK;KACtB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,GAAW,EAAE,MAAmC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,44 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "doris-mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Apache Doris MCP Server - TypeScript implementation using MySQL protocol",
|
|
5
|
-
"keywords": [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "doris-mcp-server",
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"description": "Apache Doris MCP Server - TypeScript implementation using MySQL protocol",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"doris",
|
|
7
|
+
"mcp",
|
|
8
|
+
"model-context-protocol",
|
|
9
|
+
"database",
|
|
10
|
+
"analytics",
|
|
11
|
+
"sql"
|
|
12
|
+
],
|
|
13
|
+
"author": "iakuf",
|
|
14
|
+
"license": "Apache-2.0",
|
|
15
|
+
"homepage": "https://github.com/iakuf/doris-mcp-server-ts#readme",
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/iakuf/doris-mcp-server-ts.git"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/iakuf/doris-mcp-server-ts/issues"
|
|
22
|
+
},
|
|
23
|
+
"type": "module",
|
|
24
|
+
"main": "dist/index.js",
|
|
25
|
+
"bin": {
|
|
26
|
+
"doris-mcp-server": "dist/index.js"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"dist",
|
|
30
|
+
"README.md",
|
|
31
|
+
"LICENSE"
|
|
32
|
+
],
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
35
|
+
"mysql2": "^3.14.0",
|
|
36
|
+
"zod": "^3.24.0"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/node": "^22.0.0",
|
|
40
|
+
"tsx": "^4.19.0",
|
|
41
|
+
"typescript": "^5.7.0"
|
|
42
|
+
},
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=18.0.0"
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "tsc",
|
|
48
|
+
"start": "tsx src/index.ts"
|
|
49
|
+
}
|
|
50
|
+
}
|