@backendkit-labs/mcp-server 0.16.0 → 0.16.2
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 +299 -30
- package/dist/resources/platform-resources.d.ts +9 -0
- package/dist/resources/platform-resources.d.ts.map +1 -0
- package/dist/resources/platform-resources.js +74 -0
- package/dist/resources/platform-resources.js.map +1 -0
- package/dist/resources/resource-auth.d.ts +10 -0
- package/dist/resources/resource-auth.d.ts.map +1 -0
- package/dist/resources/resource-auth.js +61 -0
- package/dist/resources/resource-auth.js.map +1 -0
- package/dist/server.js +14 -11
- package/dist/server.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,55 +1,324 @@
|
|
|
1
1
|
# @backendkit-labs/mcp-server
|
|
2
2
|
|
|
3
|
-
MCP
|
|
3
|
+
MCP (Model Context Protocol) server that exposes code intelligence, skills management, and project context as tools for any MCP-compatible AI client (Claude Desktop, agent-core, Cursor, etc.).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://www.npmjs.com/package/@backendkit-labs/mcp-server)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
> **Status: `stable`** — Maintained and production-ready. No new features during the pilot phase.
|
|
8
|
+
|
|
9
|
+
## Table of contents
|
|
10
|
+
|
|
11
|
+
- [Installation](#installation)
|
|
12
|
+
- [Running the server](#running-the-server)
|
|
13
|
+
- [Tools reference](#tools-reference)
|
|
14
|
+
- [Code intelligence index](#code-intelligence-index)
|
|
15
|
+
- [Connecting via agent-core](#connecting-via-agent-core)
|
|
16
|
+
- [Connecting via Claude Desktop](#connecting-via-claude-desktop)
|
|
17
|
+
- [HTTP mode](#http-mode)
|
|
18
|
+
- [Environment variables](#environment-variables)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install -g @backendkit-labs/mcp-server
|
|
26
|
+
# or use via npx:
|
|
27
|
+
npx @backendkit-labs/mcp-server
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Binary: `bk-mcp`
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Running the server
|
|
35
|
+
|
|
36
|
+
### Stdio mode (default — for Claude Desktop, agent-core)
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
bk-mcp
|
|
40
|
+
|
|
41
|
+
# Against a specific project
|
|
42
|
+
BK_CWD=/my-project bk-mcp
|
|
43
|
+
|
|
44
|
+
# With a custom app name
|
|
45
|
+
BK_APP_NAME=my-app BK_CWD=/my-project bk-mcp
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### HTTP mode (multi-session)
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
bk-mcp --http --port 3100
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Tools reference
|
|
57
|
+
|
|
58
|
+
### `stack_detect`
|
|
59
|
+
|
|
60
|
+
Detect the project's technology stack using file detection and the code index.
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
Args:
|
|
64
|
+
cwd string? Project directory (defaults to server cwd)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Example:**
|
|
68
|
+
```
|
|
69
|
+
What stack does this project use?
|
|
70
|
+
→ stack_detect()
|
|
71
|
+
→ "Detected stack: typescript, node, react, docker"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### `code_index`
|
|
77
|
+
|
|
78
|
+
Index the codebase into a SQLite graph database. Incremental — only re-indexes changed files.
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
Args:
|
|
82
|
+
cwd string? Project directory
|
|
83
|
+
watch boolean? Enable file watcher for live updates (default: false)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Example:**
|
|
87
|
+
```
|
|
88
|
+
Index this codebase
|
|
89
|
+
→ code_index({ watch: true })
|
|
90
|
+
→ "Indexed 234 files, 4,821 symbols. File watcher enabled."
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**What gets indexed:** functions, classes, interfaces, types, enums from TypeScript/JS/Go/Python/Java/Kotlin. Callers and callees are recorded for each symbol (call graph).
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### `code_search`
|
|
98
|
+
|
|
99
|
+
Search for symbols by name or keyword.
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
Args:
|
|
103
|
+
query string Symbol name or keyword
|
|
104
|
+
limit number? Max results (default 20)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Example:**
|
|
108
|
+
```
|
|
109
|
+
Where is TokenValidator defined?
|
|
110
|
+
→ code_search({ query: "TokenValidator" })
|
|
111
|
+
→ "**TokenValidator** (class) — src/auth/token-validator.ts:15
|
|
112
|
+
class TokenValidator { validate(token: string): DecodedToken | null }"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Fuzzy search:**
|
|
116
|
+
```
|
|
117
|
+
All functions related to payment
|
|
118
|
+
→ code_search({ query: "payment", limit: 30 })
|
|
119
|
+
→ PaymentProcessor, processPayment, validatePayment, createPaymentIntent, ...
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### `code_context`
|
|
125
|
+
|
|
126
|
+
Given a task description, find the most relevant symbols and return their code, callers, and callees. Bootstraps context for a coding task without manual file reading.
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
Args:
|
|
130
|
+
task string Task or feature description
|
|
131
|
+
max_symbols number? Max symbols (default 10)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Example:**
|
|
135
|
+
```
|
|
136
|
+
I need to add rate limiting to the login endpoint
|
|
137
|
+
→ code_context({ task: "add rate limiting to login endpoint" })
|
|
138
|
+
→
|
|
139
|
+
### loginHandler (function) — src/routes/auth.ts:67-89
|
|
140
|
+
> calledBy: router.post | calls: validateCredentials, createSession
|
|
141
|
+
\`\`\`typescript
|
|
142
|
+
async function loginHandler(req: Request, res: Response) {
|
|
143
|
+
const { email, password } = req.body;
|
|
144
|
+
...
|
|
145
|
+
}
|
|
146
|
+
\`\`\`
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
The agent immediately knows which files and symbols are relevant.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### `skills_search`
|
|
154
|
+
|
|
155
|
+
Search available skills by query.
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
Args:
|
|
159
|
+
query string Search term
|
|
160
|
+
cwd string? Project directory for stack detection
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Example:**
|
|
164
|
+
```
|
|
165
|
+
Find skills for TypeScript testing
|
|
166
|
+
→ skills_search({ query: "typescript testing" })
|
|
167
|
+
→ "- **ts-jest-setup** ✓ [global, typescript, ACTIVE]
|
|
168
|
+
Configure Jest for TypeScript with proper transforms
|
|
169
|
+
- **vitest-config** [node, typescript]
|
|
170
|
+
Set up Vitest for unit testing"
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
`✓` means the skill matches the detected stack.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
### `skills_install`
|
|
178
|
+
|
|
179
|
+
Install a skill pack from GitHub or a local path.
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
Args:
|
|
183
|
+
source string GitHub URL or local path
|
|
184
|
+
skill string? Install only a specific skill
|
|
185
|
+
pack string? Override the derived pack name
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Example:**
|
|
189
|
+
```
|
|
190
|
+
Install our company skills repo
|
|
191
|
+
→ skills_install({ source: "https://github.com/my-org/agent-skills" })
|
|
192
|
+
→ "Installed pack "backend" with 12 skill(s)."
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
### `skills_list`
|
|
198
|
+
|
|
199
|
+
List all installed skill packs.
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
Args: (none)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**Example:**
|
|
206
|
+
```
|
|
207
|
+
What packs are installed?
|
|
208
|
+
→ skills_list()
|
|
209
|
+
→ "**global** (builtin)
|
|
210
|
+
Skills: code-review, refactor-pattern, ...
|
|
211
|
+
**my-org-backend** (installed 2026-06-01)
|
|
212
|
+
Skills: stripe-integration, postgres-pattern, ..."
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Code intelligence index
|
|
218
|
+
|
|
219
|
+
The indexer uses **Tree-sitter** (WASM) to parse source code into a SQLite graph with symbols and their relationships. Storage location:
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
~/.{BK_APP_NAME}/code-index/{base64url(CWD)}.db
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Default: `~/.deepseek-code/code-index/{hash}.db`
|
|
226
|
+
|
|
227
|
+
Supported languages: TypeScript, JavaScript, Go, Python, Java, Kotlin, Rust.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Connecting via agent-core
|
|
232
|
+
|
|
233
|
+
```typescript
|
|
234
|
+
import { createCodingEngine } from '@backendkit-labs/agent-coding';
|
|
235
|
+
|
|
236
|
+
const engine = createCodingEngine({
|
|
237
|
+
providers: { deepseek: { apiKey: process.env.DEEPSEEK_API_KEY! } },
|
|
238
|
+
defaultProvider: 'deepseek',
|
|
239
|
+
mcpServers: [
|
|
240
|
+
{
|
|
241
|
+
name: 'code-intelligence',
|
|
242
|
+
command: 'bk-mcp',
|
|
243
|
+
args: [],
|
|
244
|
+
env: {
|
|
245
|
+
BK_APP_NAME: 'my-app',
|
|
246
|
+
BK_CWD: process.cwd(),
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
subAgentContextMessages: 20,
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
// Index then query
|
|
254
|
+
await engine.run('Index this codebase');
|
|
255
|
+
await engine.run('Find all functions that directly access the database without using the repository layer');
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Connecting via Claude Desktop
|
|
261
|
+
|
|
262
|
+
Add to your Claude Desktop config:
|
|
263
|
+
|
|
264
|
+
**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
265
|
+
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
8
266
|
|
|
9
267
|
```json
|
|
10
268
|
{
|
|
11
269
|
"mcpServers": {
|
|
12
|
-
"bk-
|
|
13
|
-
"command": "
|
|
14
|
-
"args": ["-y", "@backendkit-labs/mcp-server"],
|
|
270
|
+
"bk-code": {
|
|
271
|
+
"command": "bk-mcp",
|
|
15
272
|
"env": {
|
|
16
|
-
"BK_APP_NAME": "
|
|
17
|
-
"BK_CWD":
|
|
273
|
+
"BK_APP_NAME": "claude-code",
|
|
274
|
+
"BK_CWD": "/path/to/your/project"
|
|
18
275
|
}
|
|
19
276
|
}
|
|
20
277
|
}
|
|
21
278
|
}
|
|
22
279
|
```
|
|
23
280
|
|
|
24
|
-
|
|
281
|
+
Restart Claude Desktop — the tools will appear in the tool picker.
|
|
25
282
|
|
|
26
|
-
|
|
27
|
-
|------|-------------|
|
|
28
|
-
| `skills_search` | Search loaded skills by keyword |
|
|
29
|
-
| `skills_install` | Install a skill pack from GitHub or local path |
|
|
30
|
-
| `skills_list` | List all loaded skills |
|
|
31
|
-
| `code_search` | Full-text search across the project codebase |
|
|
32
|
-
| `code_context` | Get code context around a symbol or file |
|
|
33
|
-
| `code_index` | Trigger a full re-index of the project |
|
|
34
|
-
| `stack_detect` | Detect the project's technology stack |
|
|
283
|
+
### Multiple projects
|
|
35
284
|
|
|
36
|
-
|
|
285
|
+
```json
|
|
286
|
+
{
|
|
287
|
+
"mcpServers": {
|
|
288
|
+
"bk-api": {
|
|
289
|
+
"command": "bk-mcp",
|
|
290
|
+
"env": { "BK_CWD": "/projects/api-server", "BK_APP_NAME": "claude-code" }
|
|
291
|
+
},
|
|
292
|
+
"bk-frontend": {
|
|
293
|
+
"command": "bk-mcp",
|
|
294
|
+
"env": { "BK_CWD": "/projects/frontend", "BK_APP_NAME": "claude-code" }
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
```
|
|
37
299
|
|
|
38
|
-
|
|
39
|
-
|----------|---------|-------------|
|
|
40
|
-
| `BK_APP_NAME` | `deepseek-code` | App name for `~/.{appName}/` data directory |
|
|
41
|
-
| `BK_CWD` | `process.cwd()` | Project directory to index and serve |
|
|
300
|
+
---
|
|
42
301
|
|
|
43
|
-
##
|
|
302
|
+
## HTTP mode
|
|
44
303
|
|
|
45
304
|
```bash
|
|
46
|
-
|
|
47
|
-
|
|
305
|
+
BK_CWD=/my-project bk-mcp --http --port 3100
|
|
306
|
+
```
|
|
48
307
|
|
|
49
|
-
|
|
50
|
-
|
|
308
|
+
Connect:
|
|
309
|
+
|
|
310
|
+
```typescript
|
|
311
|
+
await mcp.connectStreamableHTTP({
|
|
312
|
+
name: 'code-intelligence',
|
|
313
|
+
baseUrl: 'http://localhost:3100',
|
|
314
|
+
});
|
|
51
315
|
```
|
|
52
316
|
|
|
53
|
-
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## Environment variables
|
|
54
320
|
|
|
55
|
-
|
|
321
|
+
| Variable | Default | Description |
|
|
322
|
+
|----------|---------|-------------|
|
|
323
|
+
| `BK_APP_NAME` | `deepseek-code` | App name — determines `~/.{name}/` storage |
|
|
324
|
+
| `BK_CWD` | `process.cwd()` | Project directory to index and serve |
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Resources — platform-level resources served by mcp-server.
|
|
3
|
+
*
|
|
4
|
+
* Each resource fetches from director-api at read time and is ABAC-gated
|
|
5
|
+
* via abac-service. URIs follow the director:// scheme defined in ARCHITECTURE.md.
|
|
6
|
+
*/
|
|
7
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
|
+
export declare function registerPlatformResources(srv: McpServer, bearerToken?: string): void;
|
|
9
|
+
//# sourceMappingURL=platform-resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-resources.d.ts","sourceRoot":"","sources":["../../src/resources/platform-resources.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgEzE,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAqBpF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Resources — platform-level resources served by mcp-server.
|
|
4
|
+
*
|
|
5
|
+
* Each resource fetches from director-api at read time and is ABAC-gated
|
|
6
|
+
* via abac-service. URIs follow the director:// scheme defined in ARCHITECTURE.md.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.registerPlatformResources = registerPlatformResources;
|
|
10
|
+
const resource_auth_js_1 = require("./resource-auth.js");
|
|
11
|
+
const DIRECTOR_URL = process.env.DIRECTOR_URL ?? 'http://localhost:4000';
|
|
12
|
+
const DIRECTOR_API_KEY = process.env.DIRECTOR_API_KEY ?? '';
|
|
13
|
+
function directorHeaders() {
|
|
14
|
+
return DIRECTOR_API_KEY ? { 'X-Api-Key': DIRECTOR_API_KEY } : {};
|
|
15
|
+
}
|
|
16
|
+
async function directorGet(path) {
|
|
17
|
+
const res = await fetch(`${DIRECTOR_URL}/api${path}`, {
|
|
18
|
+
headers: directorHeaders(),
|
|
19
|
+
signal: AbortSignal.timeout(5_000),
|
|
20
|
+
});
|
|
21
|
+
if (!res.ok)
|
|
22
|
+
throw new Error(`director-api ${res.status}: ${path}`);
|
|
23
|
+
return res.json();
|
|
24
|
+
}
|
|
25
|
+
const PLATFORM_RESOURCES = [
|
|
26
|
+
{
|
|
27
|
+
uri: 'director://workflows',
|
|
28
|
+
name: 'Active Workflows',
|
|
29
|
+
description: 'Lista de workflows activos en director-api con sus pasos y estado.',
|
|
30
|
+
mimeType: 'application/json',
|
|
31
|
+
fetch: async () => {
|
|
32
|
+
const data = await directorGet('/workflows');
|
|
33
|
+
return JSON.stringify(data, null, 2);
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
uri: 'director://agents/health',
|
|
38
|
+
name: 'Agent Health',
|
|
39
|
+
description: 'Estado en tiempo real de todos los agentes desplegados.',
|
|
40
|
+
mimeType: 'application/json',
|
|
41
|
+
fetch: async () => {
|
|
42
|
+
const data = await directorGet('/director/status');
|
|
43
|
+
return JSON.stringify(data, null, 2);
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
uri: 'director://deployables',
|
|
48
|
+
name: 'Deployable Catalog',
|
|
49
|
+
description: 'Catálogo completo de deployables (agentes y apps) registrados.',
|
|
50
|
+
mimeType: 'application/json',
|
|
51
|
+
fetch: async () => {
|
|
52
|
+
const data = await directorGet('/deployables');
|
|
53
|
+
return JSON.stringify(data, null, 2);
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
// ── Registration ──────────────────────────────────────────────────────────────
|
|
58
|
+
function registerPlatformResources(srv, bearerToken) {
|
|
59
|
+
for (const def of PLATFORM_RESOURCES) {
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
|
+
srv.resource(def.name, def.uri, { description: def.description, mimeType: def.mimeType }, async (uri) => {
|
|
62
|
+
// ABAC check — evaluated lazily at read time so the JWT is fresh
|
|
63
|
+
const auth = await (0, resource_auth_js_1.resolveResourceAuth)(bearerToken);
|
|
64
|
+
if (!auth.isAllowed(uri.toString())) {
|
|
65
|
+
throw new Error(`Access denied to resource: ${uri}`);
|
|
66
|
+
}
|
|
67
|
+
const text = await def.fetch();
|
|
68
|
+
return {
|
|
69
|
+
contents: [{ uri: uri.toString(), mimeType: def.mimeType, text }],
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=platform-resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-resources.js","sourceRoot":"","sources":["../../src/resources/platform-resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Resource authorization — calls abac-service to get allowed URI patterns
|
|
3
|
+
* for a given JWT, then provides a matcher to gate resources/list and resources/read.
|
|
4
|
+
*/
|
|
5
|
+
export interface ResourceAuthContext {
|
|
6
|
+
patterns: string[];
|
|
7
|
+
isAllowed(uri: string): boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function resolveResourceAuth(bearerToken: string | undefined): Promise<ResourceAuthContext>;
|
|
10
|
+
//# sourceMappingURL=resource-auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-auth.d.ts","sourceRoot":"","sources":["../../src/resources/resource-auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAMD,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA2BvG"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Resource authorization — calls abac-service to get allowed URI patterns
|
|
4
|
+
* for a given JWT, then provides a matcher to gate resources/list and resources/read.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.resolveResourceAuth = resolveResourceAuth;
|
|
8
|
+
const ABAC_URL = process.env.ABAC_URL ?? 'http://localhost:3005';
|
|
9
|
+
/** Cache per JWT to avoid hammering abac-service on every resource call. */
|
|
10
|
+
const cache = new Map();
|
|
11
|
+
const CACHE_TTL_MS = 60_000; // 1 minute
|
|
12
|
+
async function resolveResourceAuth(bearerToken) {
|
|
13
|
+
if (!bearerToken)
|
|
14
|
+
return allowAll();
|
|
15
|
+
const token = bearerToken.startsWith('Bearer ') ? bearerToken.slice(7) : bearerToken;
|
|
16
|
+
// Check cache
|
|
17
|
+
const hit = cache.get(token);
|
|
18
|
+
if (hit && hit.expiresAt > Date.now()) {
|
|
19
|
+
return buildContext(hit.patterns);
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
const res = await fetch(`${ABAC_URL}/resources/allowed`, {
|
|
23
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
24
|
+
signal: AbortSignal.timeout(3_000),
|
|
25
|
+
});
|
|
26
|
+
if (!res.ok)
|
|
27
|
+
return denyAll();
|
|
28
|
+
const body = (await res.json());
|
|
29
|
+
const patterns = body.patterns ?? [];
|
|
30
|
+
cache.set(token, { patterns, expiresAt: Date.now() + CACHE_TTL_MS });
|
|
31
|
+
return buildContext(patterns);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// abac-service unreachable → fail open (allow) in dev, fail closed in prod
|
|
35
|
+
const isDev = (process.env.NODE_ENV ?? 'development') === 'development';
|
|
36
|
+
return isDev ? allowAll() : denyAll();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function buildContext(patterns) {
|
|
40
|
+
return {
|
|
41
|
+
patterns,
|
|
42
|
+
isAllowed: (uri) => patterns.some(p => matchesPattern(p, uri)),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function allowAll() {
|
|
46
|
+
return { patterns: ['**'], isAllowed: () => true };
|
|
47
|
+
}
|
|
48
|
+
function denyAll() {
|
|
49
|
+
return { patterns: [], isAllowed: () => false };
|
|
50
|
+
}
|
|
51
|
+
/** Glob-style match: * = single segment, ** = any depth */
|
|
52
|
+
function matchesPattern(pattern, uri) {
|
|
53
|
+
const re = new RegExp('^' +
|
|
54
|
+
pattern
|
|
55
|
+
.replace(/[.+^${}()|[\]\\]/g, '\\$&')
|
|
56
|
+
.replace(/\*\*/g, '.+')
|
|
57
|
+
.replace(/\*/g, '[^/]+')
|
|
58
|
+
+ '$');
|
|
59
|
+
return re.test(uri);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=resource-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-auth.js","sourceRoot":"","sources":["../../src/resources/resource-auth.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAaH,kDA2BC;AAtCD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,uBAAuB,CAAC;AAOjE,4EAA4E;AAC5E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqD,CAAC;AAC3E,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,WAAW;AAEjC,KAAK,UAAU,mBAAmB,CAAC,WAA+B;IACrE,IAAI,CAAC,WAAW;QAAE,OAAO,QAAQ,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAErF,cAAc;IACd,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACpC,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,oBAAoB,EAAE;YACrD,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;YAC7C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,OAAO,EAAE,CAAC;QAE9B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA2B,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;QACrE,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACL,2EAA2E;QAC3E,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,KAAK,aAAa,CAAC;QACxE,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB;IACpC,OAAO;QACH,QAAQ;QACR,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KACzE,CAAC;AACN,CAAC;AAED,SAAS,QAAQ;IACb,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,OAAO;IACZ,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;AACpD,CAAC;AAED,2DAA2D;AAC3D,SAAS,cAAc,CAAC,OAAe,EAAE,GAAW;IAChD,MAAM,EAAE,GAAG,IAAI,MAAM,CACjB,GAAG;QACH,OAAO;aACF,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;aACpC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;aACtB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;UAC1B,GAAG,CACR,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -51,6 +51,7 @@ const graph_store_js_1 = require("./indexer/graph-store.js");
|
|
|
51
51
|
const indexer_js_1 = require("./indexer/indexer.js");
|
|
52
52
|
const watcher_js_1 = require("./indexer/watcher.js");
|
|
53
53
|
const stack_detector_js_1 = require("./indexer/stack-detector.js");
|
|
54
|
+
const platform_resources_js_1 = require("./resources/platform-resources.js");
|
|
54
55
|
const APP_NAME = process.env.BK_APP_NAME ?? 'deepseek-code';
|
|
55
56
|
const CWD = process.env.BK_CWD ?? process.cwd();
|
|
56
57
|
// --- Code index setup ---
|
|
@@ -62,20 +63,22 @@ const watcher = new watcher_js_1.FileWatcher();
|
|
|
62
63
|
// Server factory — creates a fresh McpServer with all tools registered.
|
|
63
64
|
// Called once for stdio mode; called per-session in HTTP mode.
|
|
64
65
|
// ---------------------------------------------------------------------------
|
|
65
|
-
function buildServer() {
|
|
66
|
+
function buildServer(bearerToken) {
|
|
66
67
|
const srv = new mcp_js_1.McpServer({
|
|
67
68
|
name: '@backendkit-labs/mcp-server',
|
|
68
69
|
version: '0.2.0',
|
|
69
70
|
});
|
|
70
71
|
registerTools(srv);
|
|
72
|
+
(0, platform_resources_js_1.registerPlatformResources)(srv, bearerToken);
|
|
71
73
|
return srv;
|
|
72
74
|
}
|
|
73
75
|
function registerTools(srv) {
|
|
76
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
77
|
+
const t = srv.tool.bind(srv);
|
|
74
78
|
// ---------------------------------------------------------------------------
|
|
75
79
|
// stack_detect
|
|
76
80
|
// ---------------------------------------------------------------------------
|
|
77
|
-
|
|
78
|
-
srv.tool('stack_detect', 'Detect the technology stack of the current project using the code index (languages, frameworks, libraries).', {
|
|
81
|
+
t('stack_detect', 'Detect the technology stack of the current project using the code index (languages, frameworks, libraries).', {
|
|
79
82
|
cwd: zod_1.z.string().optional().describe('Project directory (defaults to server cwd)'),
|
|
80
83
|
}, async ({ cwd: _cwd }) => {
|
|
81
84
|
const graphTech = (0, stack_detector_js_1.detectStackFromGraph)(store);
|
|
@@ -95,7 +98,7 @@ function registerTools(srv) {
|
|
|
95
98
|
// ---------------------------------------------------------------------------
|
|
96
99
|
// skills_search
|
|
97
100
|
// ---------------------------------------------------------------------------
|
|
98
|
-
|
|
101
|
+
t('skills_search', 'Search available skills by query. Returns matching skills and whether they are active for the current project.', {
|
|
99
102
|
query: zod_1.z.string().describe('Search term — skill name, trigger keyword, or description'),
|
|
100
103
|
cwd: zod_1.z.string().optional().describe('Project directory to detect stack (defaults to server cwd)'),
|
|
101
104
|
}, async ({ query, cwd }) => {
|
|
@@ -120,7 +123,7 @@ function registerTools(srv) {
|
|
|
120
123
|
// ---------------------------------------------------------------------------
|
|
121
124
|
// skills_install
|
|
122
125
|
// ---------------------------------------------------------------------------
|
|
123
|
-
|
|
126
|
+
t('skills_install', 'Install a skill pack from a GitHub repository or local path.', {
|
|
124
127
|
source: zod_1.z.string().describe('GitHub URL (https://github.com/org/repo) or local path'),
|
|
125
128
|
skill: zod_1.z.string().optional().describe('Install only this specific skill by name'),
|
|
126
129
|
pack: zod_1.z.string().optional().describe('Override the derived pack name'),
|
|
@@ -139,7 +142,7 @@ function registerTools(srv) {
|
|
|
139
142
|
// ---------------------------------------------------------------------------
|
|
140
143
|
// skills_list
|
|
141
144
|
// ---------------------------------------------------------------------------
|
|
142
|
-
|
|
145
|
+
t('skills_list', 'List all installed skill packs including builtin packs.', {}, async () => {
|
|
143
146
|
const packs = await (0, list_js_1.skillsList)(APP_NAME);
|
|
144
147
|
const lines = packs.map(p => {
|
|
145
148
|
const tag = p.builtin ? 'builtin' : `installed ${p.installedAt.slice(0, 10)}`;
|
|
@@ -150,8 +153,7 @@ function registerTools(srv) {
|
|
|
150
153
|
// ---------------------------------------------------------------------------
|
|
151
154
|
// code_search
|
|
152
155
|
// ---------------------------------------------------------------------------
|
|
153
|
-
|
|
154
|
-
srv.tool('code_search', 'Search the codebase for symbols (functions, classes, interfaces, types) by name or keyword.', {
|
|
156
|
+
t('code_search', 'Search the codebase for symbols (functions, classes, interfaces, types) by name or keyword.', {
|
|
155
157
|
query: zod_1.z.string().describe('Symbol name or keyword to search for'),
|
|
156
158
|
limit: zod_1.z.number().optional().describe('Max results to return (default 20)'),
|
|
157
159
|
}, ({ query, limit }) => {
|
|
@@ -165,7 +167,7 @@ function registerTools(srv) {
|
|
|
165
167
|
// ---------------------------------------------------------------------------
|
|
166
168
|
// code_context
|
|
167
169
|
// ---------------------------------------------------------------------------
|
|
168
|
-
|
|
170
|
+
t('code_context', 'Get relevant code context for a task — finds the symbols most related to the task and returns their code, callers, and callees.', {
|
|
169
171
|
task: zod_1.z.string().describe('Task or feature description to find context for'),
|
|
170
172
|
max_symbols: zod_1.z.number().optional().describe('Max symbols to return (default 10)'),
|
|
171
173
|
}, async ({ task, max_symbols }) => {
|
|
@@ -192,7 +194,7 @@ function registerTools(srv) {
|
|
|
192
194
|
// ---------------------------------------------------------------------------
|
|
193
195
|
// code_index (trigger manual re-index)
|
|
194
196
|
// ---------------------------------------------------------------------------
|
|
195
|
-
|
|
197
|
+
t('code_index', 'Trigger a full re-index of the project codebase. Run this after installing new files or if search results seem stale.', {
|
|
196
198
|
cwd: zod_1.z.string().optional().describe('Directory to index (defaults to server cwd)'),
|
|
197
199
|
}, async ({ cwd }) => {
|
|
198
200
|
const dir = cwd ?? CWD;
|
|
@@ -270,12 +272,13 @@ async function startHttp() {
|
|
|
270
272
|
return;
|
|
271
273
|
}
|
|
272
274
|
const body = await parseBody(req);
|
|
275
|
+
const bearerToken = req.headers['authorization'];
|
|
273
276
|
const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
|
|
274
277
|
sessionIdGenerator: () => (0, node_crypto_1.randomUUID)(),
|
|
275
278
|
});
|
|
276
279
|
// Connect a fresh McpServer per session so each session has
|
|
277
280
|
// isolated protocol state (initialized, tool list, etc.)
|
|
278
|
-
const sessionServer = buildServer();
|
|
281
|
+
const sessionServer = buildServer(bearerToken);
|
|
279
282
|
await sessionServer.connect(transport);
|
|
280
283
|
// handleRequest processes the initialize message and sets transport.sessionId
|
|
281
284
|
await transport.handleRequest(req, res, body);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backendkit-labs/mcp-server",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.2",
|
|
4
4
|
"description": "MCP server for agent-framework — skills, code intelligence, agent context",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"files": ["dist/", "README.md"],
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
|
-
"url": "https://github.com/BackendKit-labs/backendkit-agent-framework.git",
|
|
13
|
+
"url": "git+https://github.com/BackendKit-labs/backendkit-agent-framework.git",
|
|
14
14
|
"directory": "packages/mcp-server"
|
|
15
15
|
},
|
|
16
16
|
"publishConfig": { "access": "public" },
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"prepublishOnly": "npm run build"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@backendkit-labs/agent-core": "
|
|
26
|
-
"@backendkit-labs/agent-coding": "
|
|
25
|
+
"@backendkit-labs/agent-core": "^0.24.0",
|
|
26
|
+
"@backendkit-labs/agent-coding": "^0.20.0",
|
|
27
27
|
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
28
28
|
"better-sqlite3": "^12.10.0",
|
|
29
29
|
"chokidar": "^5.0.0",
|