@node2flow/sqlite-mcp 1.0.1 → 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.
@@ -0,0 +1,250 @@
1
+ /**
2
+ * LibSQL Client (Remote)
3
+ * Wraps @libsql/client for remote SQLite databases (Turso, libSQL server)
4
+ * Implements the same SqliteClientInterface as SqliteClient
5
+ */
6
+ import { createClient } from '@libsql/client';
7
+ export class LibSqlClient {
8
+ client;
9
+ config;
10
+ constructor(config) {
11
+ this.config = config;
12
+ this.client = createClient({
13
+ url: config.url,
14
+ authToken: config.authToken,
15
+ });
16
+ }
17
+ // ========== Query & Execute ==========
18
+ async query(sql, params) {
19
+ const result = await this.client.execute({
20
+ sql,
21
+ args: params ?? [],
22
+ });
23
+ const columns = result.columns;
24
+ const rows = result.rows.map((row) => {
25
+ const obj = {};
26
+ for (let i = 0; i < columns.length; i++) {
27
+ obj[columns[i]] = row[i];
28
+ }
29
+ return obj;
30
+ });
31
+ return { columns, rows, rowCount: rows.length };
32
+ }
33
+ async execute(sql, params) {
34
+ const result = await this.client.execute({
35
+ sql,
36
+ args: params ?? [],
37
+ });
38
+ return {
39
+ changes: result.rowsAffected,
40
+ lastInsertRowid: result.lastInsertRowid ?? 0,
41
+ };
42
+ }
43
+ async runScript(sql) {
44
+ const statements = sql
45
+ .split(';')
46
+ .map((s) => s.trim())
47
+ .filter((s) => s.length > 0);
48
+ const batch = statements.map((stmt) => ({ sql: stmt, args: [] }));
49
+ await this.client.batch(batch, 'write');
50
+ return { statementsRun: statements.length };
51
+ }
52
+ // ========== Schema Inspection ==========
53
+ async listTables() {
54
+ const result = await this.client.execute({
55
+ sql: "SELECT name, type FROM sqlite_master WHERE type IN ('table', 'view') AND name NOT LIKE 'sqlite_%' AND name NOT LIKE '_litestream_%' ORDER BY name",
56
+ args: [],
57
+ });
58
+ const tables = [];
59
+ for (const row of result.rows) {
60
+ const name = row[0];
61
+ const type = row[1];
62
+ let rowCount = 0;
63
+ try {
64
+ const countResult = await this.client.execute({
65
+ sql: `SELECT COUNT(*) as count FROM "${name}"`,
66
+ args: [],
67
+ });
68
+ rowCount = countResult.rows[0][0];
69
+ }
70
+ catch {
71
+ // View or inaccessible table
72
+ }
73
+ tables.push({ name, type, rowCount });
74
+ }
75
+ return tables;
76
+ }
77
+ async describeTable(table) {
78
+ const colResult = await this.client.execute({
79
+ sql: `PRAGMA table_info("${table}")`,
80
+ args: [],
81
+ });
82
+ const columns = colResult.rows.map((row) => ({
83
+ cid: row[0],
84
+ name: row[1],
85
+ type: row[2],
86
+ notnull: row[3],
87
+ dflt_value: row[4],
88
+ pk: row[5],
89
+ }));
90
+ const schemaResult = await this.client.execute({
91
+ sql: 'SELECT sql FROM sqlite_master WHERE name = ?',
92
+ args: [table],
93
+ });
94
+ const sql = schemaResult.rows.length > 0 ? schemaResult.rows[0][0] : '';
95
+ return { columns, sql };
96
+ }
97
+ async listIndexes(table) {
98
+ const result = await this.client.execute({
99
+ sql: `PRAGMA index_list("${table}")`,
100
+ args: [],
101
+ });
102
+ return result.rows.map((row) => ({
103
+ seq: row[0],
104
+ name: row[1],
105
+ unique: row[2],
106
+ origin: row[3],
107
+ partial: row[4],
108
+ }));
109
+ }
110
+ async listForeignKeys(table) {
111
+ const result = await this.client.execute({
112
+ sql: `PRAGMA foreign_key_list("${table}")`,
113
+ args: [],
114
+ });
115
+ return result.rows.map((row) => ({
116
+ id: row[0],
117
+ seq: row[1],
118
+ table: row[2],
119
+ from: row[3],
120
+ to: row[4],
121
+ on_update: row[5],
122
+ on_delete: row[6],
123
+ match: row[7],
124
+ }));
125
+ }
126
+ // ========== Schema Management ==========
127
+ async createTable(table, columns, ifNotExists) {
128
+ const colDefs = columns.map((col) => {
129
+ let def = `"${col.name}" ${col.type}`;
130
+ if (col.primaryKey)
131
+ def += ' PRIMARY KEY';
132
+ if (col.notNull)
133
+ def += ' NOT NULL';
134
+ if (col.unique)
135
+ def += ' UNIQUE';
136
+ if (col.default !== undefined && col.default !== null) {
137
+ def += ` DEFAULT ${typeof col.default === 'string' ? `'${col.default}'` : col.default}`;
138
+ }
139
+ return def;
140
+ });
141
+ const exists = ifNotExists ? ' IF NOT EXISTS' : '';
142
+ await this.client.execute({
143
+ sql: `CREATE TABLE${exists} "${table}" (${colDefs.join(', ')})`,
144
+ args: [],
145
+ });
146
+ }
147
+ async alterTable(table, action, params) {
148
+ let sql;
149
+ switch (action) {
150
+ case 'add_column': {
151
+ sql = `ALTER TABLE "${table}" ADD COLUMN "${params.column}" ${params.type}`;
152
+ if (params.notNull)
153
+ sql += ' NOT NULL';
154
+ if (params.default !== undefined) {
155
+ sql += ` DEFAULT ${typeof params.default === 'string' ? `'${params.default}'` : params.default}`;
156
+ }
157
+ break;
158
+ }
159
+ case 'rename_column':
160
+ sql = `ALTER TABLE "${table}" RENAME COLUMN "${params.oldName}" TO "${params.newName}"`;
161
+ break;
162
+ case 'rename_table':
163
+ sql = `ALTER TABLE "${table}" RENAME TO "${params.newTableName}"`;
164
+ break;
165
+ default:
166
+ throw new Error(`Unknown alter action: ${action}`);
167
+ }
168
+ await this.client.execute({ sql, args: [] });
169
+ }
170
+ async dropTable(table, ifExists) {
171
+ const exists = ifExists ? ' IF EXISTS' : '';
172
+ await this.client.execute({
173
+ sql: `DROP TABLE${exists} "${table}"`,
174
+ args: [],
175
+ });
176
+ }
177
+ // ========== Index Management ==========
178
+ async createIndex(table, columns, indexName, unique, ifNotExists) {
179
+ const name = indexName || `idx_${table}_${columns.join('_')}`;
180
+ const uniqueStr = unique ? ' UNIQUE' : '';
181
+ const exists = ifNotExists ? ' IF NOT EXISTS' : '';
182
+ const cols = columns.map((c) => `"${c}"`).join(', ');
183
+ await this.client.execute({
184
+ sql: `CREATE${uniqueStr} INDEX${exists} "${name}" ON "${table}" (${cols})`,
185
+ args: [],
186
+ });
187
+ }
188
+ async dropIndex(indexName, ifExists) {
189
+ const exists = ifExists ? ' IF EXISTS' : '';
190
+ await this.client.execute({
191
+ sql: `DROP INDEX${exists} "${indexName}"`,
192
+ args: [],
193
+ });
194
+ }
195
+ // ========== Database Management ==========
196
+ async getInfo() {
197
+ const [pageCountR, pageSizeR, journalR, encodingR, versionR, tablesR] = await Promise.all([
198
+ this.client.execute({ sql: 'PRAGMA page_count', args: [] }),
199
+ this.client.execute({ sql: 'PRAGMA page_size', args: [] }),
200
+ this.client.execute({ sql: 'PRAGMA journal_mode', args: [] }),
201
+ this.client.execute({ sql: 'PRAGMA encoding', args: [] }),
202
+ this.client.execute({ sql: 'SELECT sqlite_version() as version', args: [] }),
203
+ this.client.execute({
204
+ sql: "SELECT COUNT(*) as count FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'",
205
+ args: [],
206
+ }),
207
+ ]);
208
+ const pageCount = pageCountR.rows[0][0];
209
+ const pageSize = pageSizeR.rows[0][0];
210
+ const journalMode = journalR.rows[0][0];
211
+ const encoding = encodingR.rows[0][0];
212
+ const sqliteVersion = versionR.rows[0][0];
213
+ const tableCount = tablesR.rows[0][0];
214
+ return {
215
+ filePath: this.config.url,
216
+ fileSize: pageCount * pageSize, // Estimate from pages
217
+ tableCount,
218
+ pageCount,
219
+ pageSize,
220
+ journalMode,
221
+ walMode: journalMode === 'wal',
222
+ encoding,
223
+ sqliteVersion,
224
+ };
225
+ }
226
+ async vacuum() {
227
+ const beforeR = await this.client.execute({ sql: 'PRAGMA page_count', args: [] });
228
+ const pageSizeR = await this.client.execute({ sql: 'PRAGMA page_size', args: [] });
229
+ const sizeBefore = beforeR.rows[0][0] * pageSizeR.rows[0][0];
230
+ await this.client.execute({ sql: 'VACUUM', args: [] });
231
+ const afterR = await this.client.execute({ sql: 'PRAGMA page_count', args: [] });
232
+ const sizeAfter = afterR.rows[0][0] * pageSizeR.rows[0][0];
233
+ return { sizeBefore, sizeAfter };
234
+ }
235
+ async integrityCheck() {
236
+ const result = await this.client.execute({
237
+ sql: 'PRAGMA integrity_check',
238
+ args: [],
239
+ });
240
+ const messages = result.rows.map((row) => row[0]);
241
+ return {
242
+ ok: messages.length === 1 && messages[0] === 'ok',
243
+ results: messages,
244
+ };
245
+ }
246
+ close() {
247
+ this.client.close();
248
+ }
249
+ }
250
+ //# sourceMappingURL=libsql-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"libsql-client.js","sourceRoot":"","sources":["../src/libsql-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAe,MAAM,gBAAgB,CAAC;AAc3D,MAAM,OAAO,YAAY;IACf,MAAM,CAAS;IACf,MAAM,CAAe;IAE7B,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;YACzB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IAExC,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,MAAkB;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,GAAG;YACH,IAAI,EAAG,MAAgB,IAAI,EAAE;SAC9B,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACnC,MAAM,GAAG,GAA4B,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,MAAkB;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,GAAG;YACH,IAAI,EAAG,MAAgB,IAAI,EAAE;SAC9B,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,MAAM,UAAU,GAAG,GAAG;aACnB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE/B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAW,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED,0CAA0C;IAE1C,KAAK,CAAC,UAAU;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,GAAG,EAAE,mJAAmJ;YACxJ,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAW,CAAC;YAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAW,CAAC;YAC9B,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBAC5C,GAAG,EAAE,kCAAkC,IAAI,GAAG;oBAC9C,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;gBACH,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa;QAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAC1C,GAAG,EAAE,sBAAsB,KAAK,IAAI;YACpC,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,MAAM,OAAO,GAAiB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzD,GAAG,EAAE,GAAG,CAAC,CAAC,CAAW;YACrB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAW;YACtB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAW;YACtB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAW;YACzB,UAAU,EAAE,GAAG,CAAC,CAAC,CAAkB;YACnC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAW;SACrB,CAAC,CAAC,CAAC;QAEJ,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7C,GAAG,EAAE,8CAA8C;YACnD,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,GAAG,EAAE,sBAAsB,KAAK,IAAI;YACpC,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,EAAE,GAAG,CAAC,CAAC,CAAW;YACrB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAW;YACtB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAW;YACxB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAW;YACxB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAW;SAC1B,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAa;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,GAAG,EAAE,4BAA4B,KAAK,IAAI;YAC1C,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,EAAE,EAAE,GAAG,CAAC,CAAC,CAAW;YACpB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAW;YACrB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAW;YACvB,IAAI,EAAE,GAAG,CAAC,CAAC,CAAW;YACtB,EAAE,EAAE,GAAG,CAAC,CAAC,CAAW;YACpB,SAAS,EAAE,GAAG,CAAC,CAAC,CAAW;YAC3B,SAAS,EAAE,GAAG,CAAC,CAAC,CAAW;YAC3B,KAAK,EAAE,GAAG,CAAC,CAAC,CAAW;SACxB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,0CAA0C;IAE1C,KAAK,CAAC,WAAW,CACf,KAAa,EACb,OAA2B,EAC3B,WAAqB;QAErB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAClC,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,UAAU;gBAAE,GAAG,IAAI,cAAc,CAAC;YAC1C,IAAI,GAAG,CAAC,OAAO;gBAAE,GAAG,IAAI,WAAW,CAAC;YACpC,IAAI,GAAG,CAAC,MAAM;gBAAE,GAAG,IAAI,SAAS,CAAC;YACjC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACtD,GAAG,IAAI,YAAY,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC1F,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACxB,GAAG,EAAE,eAAe,MAAM,KAAK,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC/D,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CACd,KAAa,EACb,MAAc,EACd,MAA+B;QAE/B,IAAI,GAAW,CAAC;QAChB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,GAAG,GAAG,gBAAgB,KAAK,iBAAiB,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5E,IAAI,MAAM,CAAC,OAAO;oBAAE,GAAG,IAAI,WAAW,CAAC;gBACvC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACjC,GAAG,IAAI,YAAY,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnG,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,eAAe;gBAClB,GAAG,GAAG,gBAAgB,KAAK,oBAAoB,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,OAAO,GAAG,CAAC;gBACxF,MAAM;YACR,KAAK,cAAc;gBACjB,GAAG,GAAG,gBAAgB,KAAK,gBAAgB,MAAM,CAAC,YAAY,GAAG,CAAC;gBAClE,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,QAAkB;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACxB,GAAG,EAAE,aAAa,MAAM,KAAK,KAAK,GAAG;YACrC,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAED,yCAAyC;IAEzC,KAAK,CAAC,WAAW,CACf,KAAa,EACb,OAAiB,EACjB,SAAkB,EAClB,MAAgB,EAChB,WAAqB;QAErB,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACxB,GAAG,EAAE,SAAS,SAAS,SAAS,MAAM,KAAK,IAAI,SAAS,KAAK,MAAM,IAAI,GAAG;YAC1E,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,QAAkB;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACxB,GAAG,EAAE,aAAa,MAAM,KAAK,SAAS,GAAG;YACzC,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC;IAED,4CAA4C;IAE5C,KAAK,CAAC,OAAO;QACX,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,GACnE,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,qBAAqB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,oCAAoC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;gBAClB,GAAG,EAAE,+FAA+F;gBACpG,IAAI,EAAE,EAAE;aACT,CAAC;SACH,CAAC,CAAC;QAEL,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;QAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;QAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;QAChD,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;QACpD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;QAEhD,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;YACzB,QAAQ,EAAE,SAAS,GAAG,QAAQ,EAAE,sBAAsB;YACtD,UAAU;YACV,SAAS;YACT,QAAQ;YACR,WAAW;YACX,OAAO,EAAE,WAAW,KAAK,KAAK;YAC9B,QAAQ;YACR,aAAa;SACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACnF,MAAM,UAAU,GAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAY,GAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAY,CAAC;QAErF,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACjF,MAAM,SAAS,GAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAY,GAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAY,CAAC;QAEnF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,GAAG,EAAE,wBAAwB;YAC7B,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAW,CAAC,CAAC;QAC5D,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI;YACjD,OAAO,EAAE,QAAQ;SAClB,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
package/dist/server.d.ts CHANGED
@@ -1,14 +1,16 @@
1
1
  /**
2
- * Shared MCP Server — used by both stdio and HTTP modes
2
+ * Shared MCP Server — used by stdio, HTTP, and CF Worker modes
3
3
  */
4
4
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
- import { SqliteClient } from './client.js';
5
+ import type { SqliteClientInterface } from './types.js';
6
6
  export interface SqliteMcpConfig {
7
- dbPath: string;
7
+ dbPath?: string;
8
+ url?: string;
9
+ authToken?: string;
8
10
  readonly?: boolean;
9
11
  timeout?: number;
10
12
  }
11
- export declare function handleToolCall(toolName: string, args: Record<string, unknown>, client: SqliteClient): import("./types.js").DatabaseInfo | import("./types.js").QueryResult | import("./types.js").ExecuteResult | {
13
+ export declare function handleToolCall(toolName: string, args: Record<string, unknown>, client: SqliteClientInterface): Promise<import("./types.js").DatabaseInfo | import("./types.js").QueryResult | import("./types.js").ExecuteResult | {
12
14
  statementsRun: number;
13
15
  } | import("./types.js").TableInfo[] | {
14
16
  columns: import("./types.js").ColumnInfo[];
@@ -49,6 +51,6 @@ export declare function handleToolCall(toolName: string, args: Record<string, un
49
51
  dropped: boolean;
50
52
  table?: undefined;
51
53
  action?: undefined;
52
- };
54
+ }>;
53
55
  export declare function createServer(config?: SqliteMcpConfig): McpServer;
54
56
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwFrB;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,eAAe,aAmLpD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,qBAAqB,EAAoB,MAAM,YAAY,CAAC;AAE1E,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,MAAM,EAAE,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwF9B;AAqBD,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,eAAe,aA0LpD"}
package/dist/server.js CHANGED
@@ -1,11 +1,10 @@
1
1
  /**
2
- * Shared MCP Server — used by both stdio and HTTP modes
2
+ * Shared MCP Server — used by stdio, HTTP, and CF Worker modes
3
3
  */
4
4
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
5
  import { ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
6
- import { SqliteClient } from './client.js';
7
6
  import { TOOLS } from './tools.js';
8
- export function handleToolCall(toolName, args, client) {
7
+ export async function handleToolCall(toolName, args, client) {
9
8
  switch (toolName) {
10
9
  // ========== Query & Execute ==========
11
10
  case 'sqlite_query':
@@ -25,20 +24,20 @@ export function handleToolCall(toolName, args, client) {
25
24
  return client.listForeignKeys(args.table);
26
25
  // ========== Schema Management ==========
27
26
  case 'sqlite_create_table': {
28
- client.createTable(args.table, args.columns, args.ifNotExists);
27
+ await client.createTable(args.table, args.columns, args.ifNotExists);
29
28
  return { success: true, table: args.table };
30
29
  }
31
30
  case 'sqlite_alter_table': {
32
- client.alterTable(args.table, args.action, args);
31
+ await client.alterTable(args.table, args.action, args);
33
32
  return { success: true, table: args.table, action: args.action };
34
33
  }
35
34
  case 'sqlite_drop_table': {
36
- client.dropTable(args.table, args.ifExists);
35
+ await client.dropTable(args.table, args.ifExists);
37
36
  return { success: true, table: args.table, dropped: true };
38
37
  }
39
38
  // ========== Index Management ==========
40
39
  case 'sqlite_create_index': {
41
- client.createIndex(args.table, args.columns, args.indexName, args.unique, args.ifNotExists);
40
+ await client.createIndex(args.table, args.columns, args.indexName, args.unique, args.ifNotExists);
42
41
  return {
43
42
  success: true,
44
43
  table: args.table,
@@ -47,7 +46,7 @@ export function handleToolCall(toolName, args, client) {
47
46
  };
48
47
  }
49
48
  case 'sqlite_drop_index': {
50
- client.dropIndex(args.indexName, args.ifExists);
49
+ await client.dropIndex(args.indexName, args.ifExists);
51
50
  return { success: true, indexName: args.indexName, dropped: true };
52
51
  }
53
52
  // ========== Database Management ==========
@@ -61,10 +60,28 @@ export function handleToolCall(toolName, args, client) {
61
60
  throw new Error(`Unknown tool: ${toolName}`);
62
61
  }
63
62
  }
63
+ /**
64
+ * Create client from config — supports both local (better-sqlite3) and remote (@libsql/client)
65
+ */
66
+ async function createClient(config) {
67
+ if (config.url) {
68
+ const { LibSqlClient } = await import('./libsql-client.js');
69
+ return new LibSqlClient({ url: config.url, authToken: config.authToken });
70
+ }
71
+ if (config.dbPath) {
72
+ const { SqliteClient } = await import('./client.js');
73
+ return new SqliteClient({
74
+ dbPath: config.dbPath,
75
+ readonly: config.readonly,
76
+ timeout: config.timeout,
77
+ });
78
+ }
79
+ throw new Error('Either SQLITE_DB_URL or SQLITE_DB_PATH is required');
80
+ }
64
81
  export function createServer(config) {
65
82
  const server = new McpServer({
66
83
  name: 'sqlite-mcp',
67
- version: '1.0.0',
84
+ version: '2.0.0',
68
85
  });
69
86
  let client = null;
70
87
  // Register all 15 tools with annotations
@@ -74,28 +91,35 @@ export function createServer(config) {
74
91
  inputSchema: tool.inputSchema,
75
92
  annotations: tool.annotations,
76
93
  }, async (args) => {
77
- const dbPath = config?.dbPath ||
78
- args.SQLITE_DB_PATH;
79
- if (!dbPath) {
94
+ if (!config?.dbPath && !config?.url) {
80
95
  return {
81
96
  content: [
82
97
  {
83
98
  type: 'text',
84
- text: 'Error: SQLITE_DB_PATH is required',
99
+ text: 'Error: Database not configured. Set SQLITE_DB_URL (remote) or SQLITE_DB_PATH (local).',
85
100
  },
86
101
  ],
87
102
  isError: true,
88
103
  };
89
104
  }
90
105
  if (!client) {
91
- client = new SqliteClient({
92
- dbPath,
93
- readonly: config?.readonly,
94
- timeout: config?.timeout,
95
- });
106
+ try {
107
+ client = await createClient(config);
108
+ }
109
+ catch (error) {
110
+ return {
111
+ content: [
112
+ {
113
+ type: 'text',
114
+ text: `Error connecting to database: ${error instanceof Error ? error.message : String(error)}`,
115
+ },
116
+ ],
117
+ isError: true,
118
+ };
119
+ }
96
120
  }
97
121
  try {
98
- const result = handleToolCall(tool.name, args, client);
122
+ const result = await handleToolCall(tool.name, args, client);
99
123
  return {
100
124
  content: [
101
125
  {
@@ -172,6 +196,8 @@ export function createServer(config) {
172
196
  ],
173
197
  }));
174
198
  // Register resources
199
+ const connectionType = config?.url ? 'remote' : config?.dbPath ? 'local' : 'not configured';
200
+ const connectionTarget = config?.url ?? config?.dbPath ?? '(not configured)';
175
201
  server.resource('server-info', 'sqlite://server-info', {
176
202
  description: 'Connection status and available tools for this SQLite MCP server',
177
203
  mimeType: 'application/json',
@@ -182,9 +208,10 @@ export function createServer(config) {
182
208
  mimeType: 'application/json',
183
209
  text: JSON.stringify({
184
210
  name: 'sqlite-mcp',
185
- version: '1.0.0',
211
+ version: '2.0.0',
186
212
  connected: !!config,
187
- database: config?.dbPath ?? '(not configured)',
213
+ connection_type: connectionType,
214
+ database: connectionTarget,
188
215
  tools_available: TOOLS.length,
189
216
  tool_categories: {
190
217
  query_and_execute: 3,
@@ -198,7 +225,6 @@ export function createServer(config) {
198
225
  ],
199
226
  }));
200
227
  // Override tools/list handler to return raw JSON Schema with property descriptions.
201
- // McpServer's Zod processing strips raw JSON Schema properties, returning empty schemas.
202
228
  server.server.setRequestHandler(ListToolsRequestSchema, () => ({
203
229
  tools: TOOLS.map((tool) => ({
204
230
  name: tool.name,
@@ -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/dist/types.d.ts CHANGED
@@ -6,6 +6,10 @@ export interface SqliteConfig {
6
6
  readonly?: boolean;
7
7
  timeout?: number;
8
8
  }
9
+ export interface LibSqlConfig {
10
+ url: string;
11
+ authToken?: string;
12
+ }
9
13
  export interface ColumnInfo {
10
14
  cid: number;
11
15
  name: string;
@@ -64,4 +68,36 @@ export interface ExecuteResult {
64
68
  changes: number;
65
69
  lastInsertRowid: number | bigint;
66
70
  }
71
+ /**
72
+ * Common interface for both SqliteClient (better-sqlite3) and LibSqlClient (@libsql/client)
73
+ */
74
+ export interface SqliteClientInterface {
75
+ query(sql: string, params?: unknown[]): Promise<QueryResult>;
76
+ execute(sql: string, params?: unknown[]): Promise<ExecuteResult>;
77
+ runScript(sql: string): Promise<{
78
+ statementsRun: number;
79
+ }>;
80
+ listTables(): Promise<TableInfo[]>;
81
+ describeTable(table: string): Promise<{
82
+ columns: ColumnInfo[];
83
+ sql: string;
84
+ }>;
85
+ listIndexes(table: string): Promise<IndexInfo[]>;
86
+ listForeignKeys(table: string): Promise<ForeignKeyInfo[]>;
87
+ createTable(table: string, columns: ColumnDefinition[], ifNotExists?: boolean): Promise<void>;
88
+ alterTable(table: string, action: string, params: Record<string, unknown>): Promise<void>;
89
+ dropTable(table: string, ifExists?: boolean): Promise<void>;
90
+ createIndex(table: string, columns: string[], indexName?: string, unique?: boolean, ifNotExists?: boolean): Promise<void>;
91
+ dropIndex(indexName: string, ifExists?: boolean): Promise<void>;
92
+ getInfo(): Promise<DatabaseInfo>;
93
+ vacuum(): Promise<{
94
+ sizeBefore: number;
95
+ sizeAfter: number;
96
+ }>;
97
+ integrityCheck(): Promise<{
98
+ ok: boolean;
99
+ results: string[];
100
+ }>;
101
+ close(): void;
102
+ }
67
103
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}