mcp-rgek 1.0.0
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 +36 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +226 -0
- package/dist/index.js.map +1 -0
- package/package.json +30 -0
package/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# MCP RGEK - Knowledge Base Server
|
|
2
|
+
|
|
3
|
+
MCP Server for accessing RGEK Knowledge Base.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g mcp-rgek
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Configuration
|
|
12
|
+
|
|
13
|
+
Set environment variables:
|
|
14
|
+
```bash
|
|
15
|
+
export RGEK_API_URL="http://your-api-url:8000"
|
|
16
|
+
export RGEK_API_USER="your-username"
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
Add to your MCP client configuration:
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"mcpServers": {
|
|
25
|
+
"rgek": {
|
|
26
|
+
"command": "mcp-rgek"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Tools
|
|
33
|
+
|
|
34
|
+
- `search_articles`: Search articles by query with optional filters
|
|
35
|
+
- `get_article`: Get specific article by ID
|
|
36
|
+
- `list_categories`: List available areas and tags
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
3
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import axios from 'axios';
|
|
6
|
+
const API_BASE_URL = process.env.RGEK_API_URL || 'http://localhost:8181/base';
|
|
7
|
+
const API_USER = process.env.RGEK_API_USER;
|
|
8
|
+
class RGEKServer {
|
|
9
|
+
server;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.server = new Server({
|
|
12
|
+
name: 'mcp-rgek',
|
|
13
|
+
version: '1.0.0',
|
|
14
|
+
}, {
|
|
15
|
+
capabilities: {
|
|
16
|
+
tools: {},
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
this.setupToolHandlers();
|
|
20
|
+
}
|
|
21
|
+
setupToolHandlers() {
|
|
22
|
+
this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
23
|
+
tools: [
|
|
24
|
+
{
|
|
25
|
+
name: 'search_articles',
|
|
26
|
+
description: 'Search for information in the RGEK knowledge base. Use this when the user asks for specific information, documentation, procedures, or knowledge that might be stored in the company knowledge base.',
|
|
27
|
+
inputSchema: {
|
|
28
|
+
type: 'object',
|
|
29
|
+
properties: {
|
|
30
|
+
keywords: {
|
|
31
|
+
type: 'array',
|
|
32
|
+
items: { type: 'string' },
|
|
33
|
+
description: 'Keywords extracted from user query to search for relevant information (max 5)',
|
|
34
|
+
maxItems: 5,
|
|
35
|
+
},
|
|
36
|
+
areas: {
|
|
37
|
+
type: 'array',
|
|
38
|
+
items: { type: 'number' },
|
|
39
|
+
description: 'Optional area IDs to filter by',
|
|
40
|
+
},
|
|
41
|
+
tags: {
|
|
42
|
+
type: 'array',
|
|
43
|
+
items: { type: 'number' },
|
|
44
|
+
description: 'Optional tag IDs to filter by',
|
|
45
|
+
},
|
|
46
|
+
page: {
|
|
47
|
+
type: 'number',
|
|
48
|
+
description: 'Page number (default: 1)',
|
|
49
|
+
default: 1,
|
|
50
|
+
},
|
|
51
|
+
per_page: {
|
|
52
|
+
type: 'number',
|
|
53
|
+
description: 'Items per page (default: 10)',
|
|
54
|
+
default: 10,
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
required: ['keywords'],
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'get_article',
|
|
62
|
+
description: 'Get a specific article by ID',
|
|
63
|
+
inputSchema: {
|
|
64
|
+
type: 'object',
|
|
65
|
+
properties: {
|
|
66
|
+
id: {
|
|
67
|
+
type: 'number',
|
|
68
|
+
description: 'Article ID',
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
required: ['id'],
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
name: 'list_categories',
|
|
76
|
+
description: 'List available areas and tags',
|
|
77
|
+
inputSchema: {
|
|
78
|
+
type: 'object',
|
|
79
|
+
properties: {},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
}));
|
|
84
|
+
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
85
|
+
const { name, arguments: args } = request.params;
|
|
86
|
+
try {
|
|
87
|
+
switch (name) {
|
|
88
|
+
case 'search_articles':
|
|
89
|
+
return await this.searchArticles(args);
|
|
90
|
+
case 'get_article':
|
|
91
|
+
return await this.getArticle(args);
|
|
92
|
+
case 'list_categories':
|
|
93
|
+
return await this.listCategories();
|
|
94
|
+
default:
|
|
95
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
return {
|
|
100
|
+
content: [
|
|
101
|
+
{
|
|
102
|
+
type: 'text',
|
|
103
|
+
text: `Error: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
async getToken() {
|
|
111
|
+
if (!API_USER) {
|
|
112
|
+
throw new Error('RGEK_API_USER not configured');
|
|
113
|
+
}
|
|
114
|
+
const response = await axios.post(`${API_BASE_URL}/security/token/`, {
|
|
115
|
+
usuario: API_USER
|
|
116
|
+
}, {
|
|
117
|
+
headers: {
|
|
118
|
+
'Content-Type': 'application/json'
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
return response.data.resultado.respuesta.token;
|
|
122
|
+
}
|
|
123
|
+
async makeRequest(endpoint, params) {
|
|
124
|
+
const token = await this.getToken();
|
|
125
|
+
const response = await axios.get(`${API_BASE_URL}${endpoint}`, {
|
|
126
|
+
headers: {
|
|
127
|
+
'Authorization': `Bearer ${token}`
|
|
128
|
+
},
|
|
129
|
+
params,
|
|
130
|
+
});
|
|
131
|
+
return response.data;
|
|
132
|
+
}
|
|
133
|
+
async searchArticles(args) {
|
|
134
|
+
const { keywords, areas, tags, page = 1, per_page = 10 } = args;
|
|
135
|
+
const token = await this.getToken();
|
|
136
|
+
const searches = keywords.slice(0, 5).map((keyword) => axios.post(`${API_BASE_URL}/conocimiento/buscar/combinado`, {
|
|
137
|
+
keyword,
|
|
138
|
+
areas: areas || [],
|
|
139
|
+
tags: tags || [],
|
|
140
|
+
}, {
|
|
141
|
+
headers: {
|
|
142
|
+
'Authorization': `Bearer ${token}`,
|
|
143
|
+
'Content-Type': 'application/json'
|
|
144
|
+
},
|
|
145
|
+
params: { page: 1, per_page: 20 },
|
|
146
|
+
}));
|
|
147
|
+
const responses = await Promise.all(searches);
|
|
148
|
+
const allArticles = new Map();
|
|
149
|
+
let totalResults = 0;
|
|
150
|
+
responses.forEach(response => {
|
|
151
|
+
const data = response.data.resultado.respuesta;
|
|
152
|
+
totalResults += data.total;
|
|
153
|
+
data.data.forEach((article) => {
|
|
154
|
+
if (!allArticles.has(article.id)) {
|
|
155
|
+
allArticles.set(article.id, article);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
const uniqueArticles = Array.from(allArticles.values())
|
|
160
|
+
.slice((page - 1) * per_page, page * per_page);
|
|
161
|
+
return {
|
|
162
|
+
content: [
|
|
163
|
+
{
|
|
164
|
+
type: 'text',
|
|
165
|
+
text: JSON.stringify({
|
|
166
|
+
keywords_used: keywords,
|
|
167
|
+
articles: uniqueArticles,
|
|
168
|
+
total: allArticles.size,
|
|
169
|
+
total_searches: totalResults,
|
|
170
|
+
page,
|
|
171
|
+
per_page,
|
|
172
|
+
}, null, 2),
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
async getArticle(args) {
|
|
178
|
+
const { id } = args;
|
|
179
|
+
const token = await this.getToken();
|
|
180
|
+
const response = await axios.get(`${API_BASE_URL}/conocimiento/articulo/${id}`, {
|
|
181
|
+
headers: {
|
|
182
|
+
'Authorization': `Bearer ${token}`
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
return {
|
|
186
|
+
content: [
|
|
187
|
+
{
|
|
188
|
+
type: 'text',
|
|
189
|
+
text: JSON.stringify(response.data.resultado.respuesta, null, 2),
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
async listCategories() {
|
|
195
|
+
const token = await this.getToken();
|
|
196
|
+
const [areasResponse, tagsResponse] = await Promise.all([
|
|
197
|
+
axios.get(`${API_BASE_URL}/conocimiento/areas`, {
|
|
198
|
+
headers: { 'Authorization': `Bearer ${token}` },
|
|
199
|
+
params: { page: 1, per_page: 100 }
|
|
200
|
+
}),
|
|
201
|
+
axios.get(`${API_BASE_URL}/conocimiento/tags`, {
|
|
202
|
+
headers: { 'Authorization': `Bearer ${token}` },
|
|
203
|
+
params: { page: 1, per_page: 100 }
|
|
204
|
+
}),
|
|
205
|
+
]);
|
|
206
|
+
return {
|
|
207
|
+
content: [
|
|
208
|
+
{
|
|
209
|
+
type: 'text',
|
|
210
|
+
text: JSON.stringify({
|
|
211
|
+
areas: areasResponse.data.resultado.respuesta.data,
|
|
212
|
+
tags: tagsResponse.data.resultado.respuesta.data,
|
|
213
|
+
}, null, 2),
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
async run() {
|
|
219
|
+
const transport = new StdioServerTransport();
|
|
220
|
+
await this.server.connect(transport);
|
|
221
|
+
console.error('RGEK MCP server running on stdio');
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const server = new RGEKServer();
|
|
225
|
+
server.run().catch(console.error);
|
|
226
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,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,OAAO,CAAC;AAE1B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,4BAA4B,CAAC;AAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAE3C,MAAM,UAAU;IACN,MAAM,CAAS;IAEvB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB;YACE,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACjE,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EAAE,sMAAsM;oBACnN,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,QAAQ,EAAE;gCACR,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gCACzB,WAAW,EAAE,+EAA+E;gCAC5F,QAAQ,EAAE,CAAC;6BACZ;4BACD,KAAK,EAAE;gCACL,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gCACzB,WAAW,EAAE,gCAAgC;6BAC9C;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gCACzB,WAAW,EAAE,+BAA+B;6BAC7C;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,0BAA0B;gCACvC,OAAO,EAAE,CAAC;6BACX;4BACD,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,8BAA8B;gCAC3C,OAAO,EAAE,EAAE;6BACZ;yBACF;wBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;qBACvB;iBACF;gBACD;oBACE,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,8BAA8B;oBAC3C,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE;gCACF,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,YAAY;6BAC1B;yBACF;wBACD,QAAQ,EAAE,CAAC,IAAI,CAAC;qBACjB;iBACF;gBACD;oBACE,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EAAE,+BAA+B;oBAC5C,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,EAAE;qBACf;iBACF;aACF;SACF,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjD,IAAI,CAAC;gBACH,QAAQ,IAAI,EAAE,CAAC;oBACb,KAAK,iBAAiB;wBACpB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBACzC,KAAK,aAAa;wBAChB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACrC,KAAK,iBAAiB;wBACpB,OAAO,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBACrC;wBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;yBAC3E;qBACF;iBACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,kBAAkB,EAAE;YACnE,OAAO,EAAE,QAAQ;SAClB,EAAE;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,MAAY;QACtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,QAAQ,EAAE,EAAE;YAC7D,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,KAAK,EAAE;aACnC;YACD,MAAM;SACP,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAS;QACpC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,EAAE,CAC5D,KAAK,CAAC,IAAI,CACR,GAAG,YAAY,gCAAgC,EAC/C;YACE,OAAO;YACP,KAAK,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,EAAE,IAAI,IAAI,EAAE;SACjB,EACD;YACE,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,KAAK,EAAE;gBAClC,cAAc,EAAE,kBAAkB;aACnC;YACD,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;SAClC,CACF,CACF,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC9B,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YAC/C,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;gBACjC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;oBACjC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;aACpD,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,IAAI,GAAG,QAAQ,CAAC,CAAC;QAEjD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,aAAa,EAAE,QAAQ;wBACvB,QAAQ,EAAE,cAAc;wBACxB,KAAK,EAAE,WAAW,CAAC,IAAI;wBACvB,cAAc,EAAE,YAAY;wBAC5B,IAAI;wBACJ,QAAQ;qBACT,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAAS;QAChC,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEpC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,0BAA0B,EAAE,EAAE,EAAE;YAC9E,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,KAAK,EAAE;aACnC;SACF,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;iBACjE;aACF;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEpC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACtD,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,qBAAqB,EAAE;gBAC9C,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE;gBAC/C,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;aACnC,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,oBAAoB,EAAE;gBAC7C,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE;gBAC/C,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;aACnC,CAAC;SACH,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI;wBAClD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI;qBACjD,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAChC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mcp-rgek",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "MCP Server for RGEK Knowledge Base",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"mcp-rgek": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"start": "node dist/index.js",
|
|
13
|
+
"dev": "tsx src/index.ts"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@modelcontextprotocol/sdk": "^0.6.0",
|
|
17
|
+
"axios": "^1.6.0"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@types/node": "^20.0.0",
|
|
21
|
+
"typescript": "^5.0.0",
|
|
22
|
+
"tsx": "^4.0.0"
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist/**/*"
|
|
26
|
+
],
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
}
|
|
30
|
+
}
|