easy-sqlite-mcp 1.0.2 → 1.0.4

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 CHANGED
@@ -2,16 +2,74 @@
2
2
 
3
3
  A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server implemented in Node.js and TypeScript, designed to enable LLMs to interact directly with SQLite databases.
4
4
 
5
- ## Features
6
-
7
- This server provides 7 core tools covering all requirements from connection management to data querying:
8
-
9
- 1. **Connection Management**:
10
- * `sqlite_open`: Open a specific SQLite database file path.
11
- * `sqlite_close`: Close the current database connection.
12
- * `sqlite_status`: Check connection status, file path, and database summary.
13
- 2. **Data Operations**:
14
- * `sqlite_query`: Execute read-only `SELECT` queries and return results in a structured format.
5
+ ## Modes
6
+
7
+ Easy SQLite MCP supports two startup modes. The server description is generated at startup so MCP clients and agents can clearly understand which mode is active.
8
+
9
+ ### Manual Mode
10
+
11
+ Manual mode is used when `SQLITE_PATH` is not provided.
12
+
13
+ In this mode, the agent must explicitly open and close a database:
14
+
15
+ 1. Call `sqlite_open(path)` before using database tools.
16
+ 2. Use query, execute, and schema discovery tools.
17
+ 3. Call `sqlite_close` when finished.
18
+
19
+ Only one SQLite database file can be open at a time. Opening another file closes the previous connection first.
20
+
21
+ Server description:
22
+
23
+ ```text
24
+ Manual: This is a SQLite tool. Before using it, call sqlite_open(path) to open a database file. After use, call sqlite_close to close it. Only one database file can be open at a time.
25
+ ```
26
+
27
+ Available tools in Manual mode:
28
+
29
+ - `sqlite_open`
30
+ - `sqlite_close`
31
+ - `sqlite_status`
32
+ - `sqlite_query`
33
+ - `sqlite_execute`
34
+ - `sqlite_list_tables`
35
+ - `sqlite_describe_table`
36
+
37
+ ### Fixed Mode
38
+
39
+ Fixed mode is used when `SQLITE_PATH` is provided as an environment variable.
40
+
41
+ In this mode, the server automatically opens the configured SQLite database during startup. The agent does not need to call `sqlite_open`, and connection switching is disabled.
42
+
43
+ Server description:
44
+
45
+ ```text
46
+ Fixed: This is a SQLite tool connected to Path:<SQLITE_PATH>
47
+ ```
48
+
49
+ Available tools in Fixed mode:
50
+
51
+ - `sqlite_status`
52
+ - `sqlite_query`
53
+ - `sqlite_execute`
54
+ - `sqlite_list_tables`
55
+ - `sqlite_describe_table`
56
+
57
+ Example:
58
+
59
+ ```bash
60
+ SQLITE_PATH=/data/app.sqlite npx easy-sqlite-mcp
61
+ ```
62
+
63
+ ## Features
64
+
65
+ This server provides SQLite tools covering all requirements from connection management to data querying:
66
+
67
+ 1. **Connection Management**:
68
+ * `sqlite_open`: Open a specific SQLite database file path. Manual mode only.
69
+ * `sqlite_close`: Close the current database connection. Manual mode only.
70
+ * `sqlite_status`: Check connection status, file path, and database summary.
71
+ 2. **Data Operations**:
72
+ * `sqlite_query`: Execute read-only `SELECT` queries and return results in a structured format.
15
73
  * `sqlite_execute`: Execute write or modification operations (e.g., `INSERT`, `UPDATE`, `DELETE`, `CREATE`, `DROP`).
16
74
  3. **Schema Discovery**:
17
75
  * `sqlite_list_tables`: List all user-defined tables in the database.
@@ -33,51 +91,102 @@ npm run build
33
91
  npm run dev # Watch for changes and run in development mode
34
92
  ```
35
93
 
36
- ## Claude Desktop Example
37
-
38
- ```json
39
- {
40
- "mcpServers": {
41
- "easy-mysql-mcp": {
42
- "command": "npx",
43
- "args": [
44
- "-y",
45
- "easy-mysql-mcp"
46
- ]
47
- }
48
- }
49
- }
50
- ```
51
-
52
- ## Codex config.toml Example
53
-
54
- ```
55
- [mcp_servers.easy-sqlite-mcp]
56
- args = ["-y", "easy-sqlite-mcp"]
57
- command = "npx"
58
- enabled = true
59
- ```
60
-
61
- ## OpenCode opencode.jsonc Example
62
-
63
- ```json
64
- {
65
- "$schema": "https://opencode.ai/config.json",
66
- "mcp": {
67
- "easy-mysql-mcp": {
68
- "type": "local",
69
- "command": ["npx", "-y", "easy-mysql-mcp"],
70
- "enabled": true,
71
- },
72
- },
73
- }
74
- ```
75
-
76
- ## Agent Skills (`/skills`)
77
-
78
- The `/skills` directory contains Agent Skills designed to work in conjunction with this MCP Server. These skill documents provide Large Language Models (LLMs) with the knowledge of how to use this server for professional, high-level database operations. You can add these skills to your AI agent's workspace.
79
-
80
- ## Tech Stack
94
+ ## Claude Desktop Example
95
+
96
+ Manual mode:
97
+
98
+ ```json
99
+ {
100
+ "mcpServers": {
101
+ "easy-sqlite-mcp": {
102
+ "command": "npx",
103
+ "args": [
104
+ "-y",
105
+ "easy-sqlite-mcp"
106
+ ]
107
+ }
108
+ }
109
+ }
110
+ ```
111
+
112
+ Fixed mode example:
113
+
114
+ ```json
115
+ {
116
+ "mcpServers": {
117
+ "easy-sqlite-mcp": {
118
+ "command": "npx",
119
+ "args": [
120
+ "-y",
121
+ "easy-sqlite-mcp"
122
+ ],
123
+ "env": {
124
+ "SQLITE_PATH": "/absolute/path/to/database.sqlite"
125
+ }
126
+ }
127
+ }
128
+ }
129
+ ```
130
+
131
+ ## Codex config.toml Example
132
+
133
+ Manual mode:
134
+
135
+ ```
136
+ [mcp_servers.easy-sqlite-mcp]
137
+ args = ["-y", "easy-sqlite-mcp"]
138
+ command = "npx"
139
+ enabled = true
140
+ ```
141
+
142
+ Fixed mode example:
143
+
144
+ ```
145
+ [mcp_servers.easy-sqlite-mcp]
146
+ args = ["-y", "easy-sqlite-mcp"]
147
+ command = "npx"
148
+ enabled = true
149
+
150
+ [mcp_servers.easy-sqlite-mcp.env]
151
+ SQLITE_PATH = "/absolute/path/to/database.sqlite"
152
+ ```
153
+
154
+ ## OpenCode opencode.jsonc Example
155
+
156
+ Manual mode:
157
+
158
+ ```json
159
+ {
160
+ "$schema": "https://opencode.ai/config.json",
161
+ "mcp": {
162
+ "easy-sqlite-mcp": {
163
+ "type": "local",
164
+ "command": ["npx", "-y", "easy-sqlite-mcp"],
165
+ "enabled": true,
166
+ },
167
+ },
168
+ }
169
+ ```
170
+
171
+ Fixed mode example:
172
+
173
+ ```json
174
+ {
175
+ "$schema": "https://opencode.ai/config.json",
176
+ "mcp": {
177
+ "easy-sqlite-mcp": {
178
+ "type": "local",
179
+ "command": ["npx", "-y", "easy-sqlite-mcp"],
180
+ "enabled": true,
181
+ "environment": {
182
+ "SQLITE_PATH": "/absolute/path/to/database.sqlite"
183
+ },
184
+ },
185
+ },
186
+ }
187
+ ```
188
+
189
+ ## Tech Stack
81
190
  - **Runtime**: Node.js (>= 18)
82
191
  - **Language**: TypeScript
83
192
  - **SDK**: @modelcontextprotocol/sdk
package/dist/index.js CHANGED
@@ -9,13 +9,17 @@
9
9
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
10
10
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
11
11
  import { registerSqliteTools } from "./tools/sqlite.js";
12
+ const sqlitePath = process.env.SQLITE_PATH?.trim();
12
13
  // Create MCP server instance
13
14
  const server = new McpServer({
14
15
  name: "easy-sqlite-mcp",
15
- version: "1.0.0",
16
+ version: "1.0.3",
17
+ description: sqlitePath
18
+ ? `Fixed: This is a SQLite tool connected to Path:${sqlitePath}`
19
+ : "Manual: This is a SQLite tool. Before using it, call sqlite_open(path) to open a database file. After use, call sqlite_close to close it. Only one database file can be open at a time.",
16
20
  });
17
21
  // Register all SQLite tools
18
- registerSqliteTools(server);
22
+ registerSqliteTools(server, { fixedDatabasePath: sqlitePath });
19
23
  // Start the server with stdio transport
20
24
  async function main() {
21
25
  const transport = new StdioServerTransport();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,6BAA6B;AAC7B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,4BAA4B;AAC5B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAE5B,wCAAwC;AACxC,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACvD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;AAEnD,6BAA6B;AAC7B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,UAAU;QACrB,CAAC,CAAC,kDAAkD,UAAU,EAAE;QAChE,CAAC,CAAC,yLAAyL;CAC9L,CAAC,CAAC;AAEH,4BAA4B;AAC5B,mBAAmB,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC;AAE/D,wCAAwC;AACxC,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACvD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export type RegisterSqliteToolsOptions = {
3
+ fixedDatabasePath?: string;
4
+ };
2
5
  /**
3
6
  * Register all SQLite tools on the MCP server.
4
7
  */
5
- export declare function registerSqliteTools(server: McpServer): void;
8
+ export declare function registerSqliteTools(server: McpServer, options?: RegisterSqliteToolsOptions): void;
6
9
  //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/tools/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmS3D"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/tools/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,MAAM,MAAM,0BAA0B,GAAG;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,0BAA+B,GACvC,IAAI,CA8SN"}
@@ -4,66 +4,75 @@ const sqliteManager = new SqliteManager();
4
4
  /**
5
5
  * Register all SQLite tools on the MCP server.
6
6
  */
7
- export function registerSqliteTools(server) {
8
- // ─── sqlite_open ───────────────────────────────────────────────
9
- server.registerTool("sqlite_open", {
10
- title: "Open SQLite Database",
11
- description: `Open an SQLite database file at the specified path.
12
-
13
- Args:
14
- - file_path (string): Absolute or relative path to the .db / .sqlite file.
7
+ export function registerSqliteTools(server, options = {}) {
8
+ const fixedDatabasePath = options.fixedDatabasePath?.trim();
9
+ if (fixedDatabasePath) {
10
+ const result = sqliteManager.open(fixedDatabasePath);
11
+ if (!result.success) {
12
+ throw new Error(result.message);
13
+ }
14
+ }
15
+ if (!fixedDatabasePath) {
16
+ // ─── sqlite_open ───────────────────────────────────────────────
17
+ server.registerTool("sqlite_open", {
18
+ title: "Open SQLite Database",
19
+ description: `Open an SQLite database file at the specified path.
20
+
21
+ Args:
22
+ - file_path (string): Absolute or relative path to the .db / .sqlite file.
15
23
 
16
24
  Returns:
17
25
  { "success": boolean, "message": string }
18
26
 
19
27
  Examples:
20
28
  - "Open the users database" -> file_path="/data/users.db"
21
-
22
- Error Handling:
29
+
30
+ Error Handling:
23
31
  - Returns success=false with message if the file cannot be opened.`,
24
- inputSchema: {
25
- file_path: z
26
- .string()
27
- .min(1, "file_path is required")
28
- .describe("Path to the SQLite database file"),
29
- },
30
- annotations: {
31
- readOnlyHint: false,
32
- destructiveHint: false,
33
- idempotentHint: true,
34
- openWorldHint: false,
35
- },
36
- }, async ({ file_path }) => {
37
- const result = sqliteManager.open(file_path);
38
- return {
39
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
40
- structuredContent: result,
41
- };
42
- });
43
- // ─── sqlite_close ──────────────────────────────────────────────
44
- server.registerTool("sqlite_close", {
45
- title: "Close SQLite Database",
46
- description: `Close the currently open SQLite database connection.
47
-
48
- Returns:
49
- { "success": boolean, "message": string }
50
-
51
- Error Handling:
32
+ inputSchema: {
33
+ file_path: z
34
+ .string()
35
+ .min(1, "file_path is required")
36
+ .describe("Path to the SQLite database file"),
37
+ },
38
+ annotations: {
39
+ readOnlyHint: false,
40
+ destructiveHint: false,
41
+ idempotentHint: true,
42
+ openWorldHint: false,
43
+ },
44
+ }, async ({ file_path }) => {
45
+ const result = sqliteManager.open(file_path);
46
+ return {
47
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
48
+ structuredContent: result,
49
+ };
50
+ });
51
+ // ─── sqlite_close ──────────────────────────────────────────────
52
+ server.registerTool("sqlite_close", {
53
+ title: "Close SQLite Database",
54
+ description: `Close the currently open SQLite database connection.
55
+
56
+ Returns:
57
+ { "success": boolean, "message": string }
58
+
59
+ Error Handling:
52
60
  - Returns success=false if no database is currently open.`,
53
- inputSchema: {},
54
- annotations: {
55
- readOnlyHint: false,
56
- destructiveHint: false,
57
- idempotentHint: true,
58
- openWorldHint: false,
59
- },
60
- }, async () => {
61
- const result = sqliteManager.close();
62
- return {
63
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
64
- structuredContent: result,
65
- };
66
- });
61
+ inputSchema: {},
62
+ annotations: {
63
+ readOnlyHint: false,
64
+ destructiveHint: false,
65
+ idempotentHint: true,
66
+ openWorldHint: false,
67
+ },
68
+ }, async () => {
69
+ const result = sqliteManager.close();
70
+ return {
71
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
72
+ structuredContent: result,
73
+ };
74
+ });
75
+ }
67
76
  // ─── sqlite_status ─────────────────────────────────────────────
68
77
  server.registerTool("sqlite_status", {
69
78
  title: "SQLite Database Status",
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/tools/sqlite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE;;;;;;;;;;;;qEAYkD;QAC/D,WAAW,EAAE;YACX,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;iBAC/B,QAAQ,CAAC,kCAAkC,CAAC;SAChD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAClE,iBAAiB,EAAE,MAAM;SAC1B,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE;;;;;;4DAMyC;QACtD,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAClE,iBAAiB,EAAE,MAAM;SAC1B,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE;;;;;;;;IAQf;QACE,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAClE,iBAAiB,EAAE,MAAM;SAC1B,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE;;;;;;;;;;;uDAWoC;QACjD,WAAW,EAAE;YACX,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;iBAC/B,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,MAAM,EAAE,CAAC;iBACN,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;iBACnB,QAAQ,EAAE;iBACV,QAAQ,CAAC,yCAAyC,CAAC;SACvD;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAChD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBAClE,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;gBACtD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE;;;;;;;;;;;2DAWwC;QACrD,WAAW,EAAE;YACX,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,EAAE,2BAA2B,CAAC;iBACnC,QAAQ,CAAC,yDAAyD,CAAC;YACtE,MAAM,EAAE,CAAC;iBACN,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;iBACnB,QAAQ,EAAE;iBACV,QAAQ,CAAC,6CAA6C,CAAC;SAC3D;QACD,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAClD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBAClE,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;gBACtD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE;;;;;;0DAMuC;QACpD,WAAW,EAAE,EAAE;QACf,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC;YAC1C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBAClE,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;gBACtD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE;;;;;;;;;;;;;;;;+CAgB4B;QACzC,WAAW,EAAE;YACX,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;iBAChC,QAAQ,CAAC,+BAA+B,CAAC;SAC7C;QACD,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACvD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBAClE,iBAAiB,EAAE,MAAM;aAC1B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;gBACtD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/tools/sqlite.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy-sqlite-mcp",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "A high-performance Model Context Protocol (MCP) server for SQLite database interaction.",
5
5
  "keywords": [
6
6
  "mcp",
@@ -1,37 +0,0 @@
1
- ---
2
- name: sqlite-mcp
3
- description: A skill specialized in operating SQLite databases. Use this skill when users mention "query database", "read .db or .sqlite files", "store structured data in SQLite", or need to perform SQL operations. This skill provides functionality to open/close databases, execute SQL queries (SELECT), perform write operations (INSERT/UPDATE/DELETE), and explore table schemas.
4
- ---
5
-
6
- # SQLite MCP Skill
7
-
8
- This skill allows you to interact with SQLite databases through a series of MCP tools.
9
-
10
- ## Core Workflow
11
-
12
- ### 1. Open Database
13
- Before any operation, you must use `sqlite_open` to open the database file.
14
- - **Tool**: `sqlite_open`
15
- - **Parameters**: `file_path` (Absolute or relative path)
16
-
17
- ### 2. Explore Structure (Optional)
18
- If the database content is unclear, you can list tables or view table definitions first.
19
- - **List Tables**: `sqlite_list_tables`
20
- - **View Structure**: `sqlite_describe_table` (requires `table_name`)
21
-
22
- ### 3. Data Operation
23
- - **Read Data**: Use `sqlite_query` to execute `SELECT` statements.
24
- - **Write Data**: Use `sqlite_execute` to execute `INSERT`, `UPDATE`, `DELETE`, or DDL statements (e.g., `CREATE TABLE`).
25
- - **Parameterized Queries**: It is recommended to use the `params` parameter (e.g., `{ ":id": 1 }`) to prevent SQL injection.
26
-
27
- ### 4. Check Status
28
- You can use `sqlite_status` at any time to confirm the current database path and connection status.
29
-
30
- ### 5. Close Database
31
- After work is finished, use `sqlite_close` to release resources.
32
-
33
- ## Best Practices
34
- - **Security First**: Prioritize parameterized queries over direct SQL string concatenation.
35
- - **Transaction Management**: Ensure logical consistency for multi-step write operations.
36
- - **Path Handling**: Ensure correct path formatting (supports `/` or `\\`).
37
- - **Error Handling**: If an operation fails, check `sqlite_status` to ensure the database is correctly opened.