@node2flow/sqlite-mcp 1.0.0 → 2.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 +70 -8
- package/dist/client.d.ts +23 -23
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +17 -17
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -14
- package/dist/index.js.map +1 -1
- package/dist/libsql-client.d.ts +39 -0
- package/dist/libsql-client.d.ts.map +1 -0
- package/dist/libsql-client.js +250 -0
- package/dist/libsql-client.js.map +1 -0
- package/dist/server.d.ts +7 -5
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +48 -22
- package/dist/server.js.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +24 -4
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +36 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/worker.d.ts +11 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +77 -0
- package/dist/worker.js.map +1 -0
- package/package.json +8 -3
package/dist/worker.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Worker entry — Stateless Streamable HTTP MCP
|
|
3
|
+
*
|
|
4
|
+
* Supports remote databases only (SQLITE_DB_URL) — CF Workers have no local filesystem.
|
|
5
|
+
* Each request creates a new transport + server.
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: {
|
|
8
|
+
fetch(request: Request): Promise<Response>;
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
11
|
+
//# sourceMappingURL=worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;mBA+BoB,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;;AADlD,wBAiEE"}
|
package/dist/worker.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare Worker entry — Stateless Streamable HTTP MCP
|
|
3
|
+
*
|
|
4
|
+
* Supports remote databases only (SQLITE_DB_URL) — CF Workers have no local filesystem.
|
|
5
|
+
* Each request creates a new transport + server.
|
|
6
|
+
*/
|
|
7
|
+
import { WebStandardStreamableHTTPServerTransport, } from '@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js';
|
|
8
|
+
import { createServer } from './server.js';
|
|
9
|
+
import { TOOLS } from './tools.js';
|
|
10
|
+
function corsHeaders() {
|
|
11
|
+
return {
|
|
12
|
+
'Access-Control-Allow-Origin': '*',
|
|
13
|
+
'Access-Control-Allow-Methods': 'GET, POST, DELETE, OPTIONS',
|
|
14
|
+
'Access-Control-Allow-Headers': 'Content-Type, mcp-session-id, Accept, mcp-protocol-version',
|
|
15
|
+
'Access-Control-Expose-Headers': 'mcp-session-id',
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function addCors(response) {
|
|
19
|
+
const headers = new Headers(response.headers);
|
|
20
|
+
for (const [key, value] of Object.entries(corsHeaders())) {
|
|
21
|
+
headers.set(key, value);
|
|
22
|
+
}
|
|
23
|
+
return new Response(response.body, {
|
|
24
|
+
status: response.status,
|
|
25
|
+
statusText: response.statusText,
|
|
26
|
+
headers,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export default {
|
|
30
|
+
async fetch(request) {
|
|
31
|
+
const url = new URL(request.url);
|
|
32
|
+
// CORS preflight
|
|
33
|
+
if (request.method === 'OPTIONS') {
|
|
34
|
+
return new Response(null, { status: 204, headers: corsHeaders() });
|
|
35
|
+
}
|
|
36
|
+
// Health check
|
|
37
|
+
if (url.pathname === '/' && request.method === 'GET') {
|
|
38
|
+
return addCors(Response.json({
|
|
39
|
+
name: 'sqlite-mcp',
|
|
40
|
+
version: '2.0.0',
|
|
41
|
+
status: 'ok',
|
|
42
|
+
tools: TOOLS.length,
|
|
43
|
+
transport: 'streamable-http',
|
|
44
|
+
mode: 'remote-only (Turso/libSQL)',
|
|
45
|
+
endpoints: { mcp: '/mcp' },
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
// Only /mcp endpoint
|
|
49
|
+
if (url.pathname !== '/mcp') {
|
|
50
|
+
return addCors(new Response('Not Found', { status: 404 }));
|
|
51
|
+
}
|
|
52
|
+
if (request.method !== 'POST') {
|
|
53
|
+
return addCors(Response.json({ jsonrpc: '2.0', error: { code: -32000, message: 'Method not allowed. Use POST.' }, id: null }, { status: 405 }));
|
|
54
|
+
}
|
|
55
|
+
// Only SQLITE_DB_URL is supported in CF Workers (no local filesystem)
|
|
56
|
+
const dbUrl = url.searchParams.get('SQLITE_DB_URL') || '';
|
|
57
|
+
const authToken = url.searchParams.get('SQLITE_AUTH_TOKEN') || '';
|
|
58
|
+
if (!dbUrl) {
|
|
59
|
+
return addCors(Response.json({ jsonrpc: '2.0', error: { code: -32000, message: 'SQLITE_DB_URL query parameter is required (e.g. libsql://db-name.turso.io)' }, id: null }, { status: 400 }));
|
|
60
|
+
}
|
|
61
|
+
const config = { url: dbUrl, authToken: authToken || undefined };
|
|
62
|
+
try {
|
|
63
|
+
const transport = new WebStandardStreamableHTTPServerTransport({
|
|
64
|
+
sessionIdGenerator: undefined,
|
|
65
|
+
enableJsonResponse: true,
|
|
66
|
+
});
|
|
67
|
+
const server = createServer(config);
|
|
68
|
+
await server.connect(transport);
|
|
69
|
+
const response = await transport.handleRequest(request);
|
|
70
|
+
return addCors(response);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
return addCors(Response.json({ jsonrpc: '2.0', error: { code: -32603, message: error.message || 'Internal server error' }, id: null }, { status: 500 }));
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,wCAAwC,GACzC,MAAM,+DAA+D,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,SAAS,WAAW;IAClB,OAAO;QACL,6BAA6B,EAAE,GAAG;QAClC,8BAA8B,EAAE,4BAA4B;QAC5D,8BAA8B,EAAE,4DAA4D;QAC5F,+BAA+B,EAAE,gBAAgB;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,QAAkB;IACjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;QACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,eAAe;IACb,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEjC,iBAAiB;QACjB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,eAAe;QACf,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACrD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,OAAO;gBAChB,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,SAAS,EAAE,iBAAiB;gBAC5B,IAAI,EAAE,4BAA4B;gBAClC,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;aAC3B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,qBAAqB;QACrB,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO,OAAO,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC1B,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,+BAA+B,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAC/F,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAElE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC1B,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,4EAA4E,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAC5I,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,IAAI,SAAS,EAAE,CAAC;QAEjE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,wCAAwC,CAAC;gBAC7D,kBAAkB,EAAE,SAAS;gBAC7B,kBAAkB,EAAE,IAAI;aACzB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEhC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACxD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAC1B,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,uBAAuB,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EACxG,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node2flow/sqlite-mcp",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "MCP server for SQLite databases — query,
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "MCP server for SQLite databases — local files (better-sqlite3) or remote Turso/libSQL via URL. 15 tools for query, schema, indexes, and optimization",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"sqlite",
|
|
7
|
+
"turso",
|
|
8
|
+
"libsql",
|
|
7
9
|
"mcp",
|
|
8
10
|
"model-context-protocol",
|
|
9
11
|
"database",
|
|
@@ -21,6 +23,7 @@
|
|
|
21
23
|
},
|
|
22
24
|
"type": "module",
|
|
23
25
|
"main": "dist/index.js",
|
|
26
|
+
"module": "./src/index.ts",
|
|
24
27
|
"types": "dist/index.d.ts",
|
|
25
28
|
"bin": {
|
|
26
29
|
"sqlite-mcp": "dist/index.js"
|
|
@@ -37,6 +40,7 @@
|
|
|
37
40
|
"prepublishOnly": "npm run build"
|
|
38
41
|
},
|
|
39
42
|
"dependencies": {
|
|
43
|
+
"@libsql/client": "^0.14.0",
|
|
40
44
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
41
45
|
"better-sqlite3": "^11.0.0"
|
|
42
46
|
},
|
|
@@ -44,7 +48,8 @@
|
|
|
44
48
|
"@types/better-sqlite3": "^7.6.0",
|
|
45
49
|
"@types/node": "^22.0.0",
|
|
46
50
|
"tsx": "^4.19.0",
|
|
47
|
-
"typescript": "^5.7.0"
|
|
51
|
+
"typescript": "^5.7.0",
|
|
52
|
+
"wrangler": "^4.0.0"
|
|
48
53
|
},
|
|
49
54
|
"engines": {
|
|
50
55
|
"node": ">=18"
|