hyperdb-mcp 0.7.3 → 1.0.0-rc.1
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 +13 -2
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# hyperdb-mcp
|
|
2
2
|
|
|
3
|
-
> **Note:** This crate is AI-assisted but human-directed — much of the code was written by AI coding assistants under close review, with the design and engineering trade-offs decided by an experienced developer.
|
|
3
|
+
> **Note:** This crate is AI-assisted but human-directed — much of the code was written by AI coding assistants under close review, with the design and engineering trade-offs decided by an experienced developer. As of 1.0.0 the public API is stable and follows [semantic versioning](https://semver.org/), so breaking changes require a major release.
|
|
4
4
|
|
|
5
5
|
An MCP (Model Context Protocol) server that turns the Hyper columnar database into an instant SQL analytics engine. Data flows in from other MCP plugins or files, lands in Hyper automatically, and becomes queryable with SQL — no setup, no schema files, no database management.
|
|
6
6
|
|
|
@@ -17,6 +17,7 @@ LLMs are powerful at reasoning but cannot natively crunch millions of rows. This
|
|
|
17
17
|
Unlike flat-text memory systems that store blobs and retrieve by similarity search, HyperDB gives LLMs **structured, queryable long-term memory**. The persistent database survives across sessions — anything the LLM stores there can be JOINed, filtered, aggregated, and reasoned over with full SQL in any future conversation.
|
|
18
18
|
|
|
19
19
|
This means an LLM can:
|
|
20
|
+
|
|
20
21
|
- **Accumulate knowledge over time** — store reference tables, project decisions, user preferences, learned facts
|
|
21
22
|
- **Cross-reference across sessions** — JOIN today's analysis against historical data from last week
|
|
22
23
|
- **Answer complex recall questions** — "Which projects had budget overruns in Q1?" is a SQL query, not a fuzzy text search
|
|
@@ -76,6 +77,7 @@ The npm package bundles both the `hyperdb-mcp` binary and the `hyperd` database
|
|
|
76
77
|
`nvm` (Node Version Manager) makes it easy to install and switch between Node.js versions.
|
|
77
78
|
|
|
78
79
|
**macOS / Linux** ([nvm-sh/nvm](https://github.com/nvm-sh/nvm)):
|
|
80
|
+
|
|
79
81
|
```bash
|
|
80
82
|
# install nvm if you don't have it
|
|
81
83
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
|
|
@@ -87,6 +89,7 @@ node --version # should report v22.x.x or newer
|
|
|
87
89
|
```
|
|
88
90
|
|
|
89
91
|
**Windows** ([coreybutler/nvm-windows](https://github.com/coreybutler/nvm-windows)): download the installer, then in a new shell:
|
|
92
|
+
|
|
90
93
|
```powershell
|
|
91
94
|
nvm install lts
|
|
92
95
|
nvm use lts
|
|
@@ -127,6 +130,7 @@ current directory for `.hyperd/current/hyperd`; it does not perform a general
|
|
|
127
130
|
### MCP Client Configuration
|
|
128
131
|
|
|
129
132
|
Each AI tool reads MCP server config from a different file but uses the same JSON shape. The base config block using npx (recommended):
|
|
133
|
+
|
|
130
134
|
```json
|
|
131
135
|
{
|
|
132
136
|
"mcpServers": {
|
|
@@ -140,6 +144,7 @@ Each AI tool reads MCP server config from a different file but uses the same JSO
|
|
|
140
144
|
```
|
|
141
145
|
|
|
142
146
|
Or if you built from source:
|
|
147
|
+
|
|
143
148
|
```json
|
|
144
149
|
{
|
|
145
150
|
"mcpServers": {
|
|
@@ -155,6 +160,7 @@ Or if you built from source:
|
|
|
155
160
|
```
|
|
156
161
|
|
|
157
162
|
By default, persistent storage lives at the platform data dir (`~/Library/Application Support/hyperdb/workspace.hyper` on macOS, `~/.local/share/hyperdb/workspace.hyper` on Linux, `%APPDATA%\hyperdb\workspace.hyper` on Windows). To use a custom path:
|
|
163
|
+
|
|
158
164
|
```json
|
|
159
165
|
"args": ["--persistent-db", "/path/to/my-project.hyper"]
|
|
160
166
|
```
|
|
@@ -171,6 +177,7 @@ process trying to attach the same file can instead receive contextual
|
|
|
171
177
|
Create or edit `~/.claude/.mcp.json` (global) or `.mcp.json` in the project root (project-scoped). Use the base config block above.
|
|
172
178
|
|
|
173
179
|
After adding the config:
|
|
180
|
+
|
|
174
181
|
1. Start a new Claude Code session. You'll be prompted to approve the server on first use.
|
|
175
182
|
2. **Auto-approve tools (optional):** Add `"mcp__HyperDB__*"` to the `permissions.allow` array in `~/.claude/settings.json`.
|
|
176
183
|
|
|
@@ -386,7 +393,7 @@ load_file(table: 'orders', path: '/tmp/orders.csv')
|
|
|
386
393
|
| `schema` | object | no | Partial column-name → type map (see [Schema Overrides](#schema-overrides)) |
|
|
387
394
|
|
|
388
395
|
When you're unsure of the right types — or recovering from a previous
|
|
389
|
-
`SCHEMA_MISMATCH` — call [`inspect_file`](#
|
|
396
|
+
`SCHEMA_MISMATCH` — call [`inspect_file`](#inspect_file) first. It reports the
|
|
390
397
|
exact schema `load_file` would use plus per-column `min` / `max` / `null_count`
|
|
391
398
|
so you can build a minimal, correct override in one shot.
|
|
392
399
|
|
|
@@ -437,6 +444,7 @@ execute(sql: [
|
|
|
437
444
|
```
|
|
438
445
|
|
|
439
446
|
Validation rules enforced before any SQL hits the server:
|
|
447
|
+
|
|
440
448
|
- Array must be non-empty; no element may be empty / whitespace-only / comment-only.
|
|
441
449
|
- No element may be read-only — use `query` for SELECT/WITH/EXPLAIN.
|
|
442
450
|
- DDL and DML cannot be mixed in one batch (Hyper aborts mixed transactions with SQLSTATE 0A000).
|
|
@@ -582,6 +590,7 @@ kv_get(store: 'session', key: 'last_report')
|
|
|
582
590
|
```
|
|
583
591
|
|
|
584
592
|
Key properties:
|
|
593
|
+
|
|
585
594
|
- **Read-only mode** — the five mutators (`kv_set`, `kv_set_many`, `kv_delete`, `kv_pop`, `kv_clear`) are disabled and return `READ_ONLY_VIOLATION`; the global guard leaves the four readers (`kv_get`, `kv_list`, `kv_size`, `kv_list_stores`) available.
|
|
586
595
|
- **Attached-database access** — every attached target must have been attached
|
|
587
596
|
with `writable=true`, even for readers, because a KV call may need to
|
|
@@ -689,6 +698,7 @@ unwatch_directory(path: '/tmp/inbox')
|
|
|
689
698
|
On success, both files are deleted. On failure, both are moved to `failed/` with a `.error` JSON file.
|
|
690
699
|
|
|
691
700
|
Key properties:
|
|
701
|
+
|
|
692
702
|
- **One directory, one table, append mode** — files must match the target schema.
|
|
693
703
|
- **Initial sweep** — pre-existing `.ready` files are processed immediately.
|
|
694
704
|
- **Read-only mode** — `watch_directory` is blocked; `unwatch_directory` is always allowed.
|
|
@@ -906,6 +916,7 @@ Both statements run inside a single Hyper transaction — they commit together o
|
|
|
906
916
|
The Hyper Rust API supports `BEGIN` / `COMMIT` / `ROLLBACK` plus an RAII `Transaction` guard (see [`docs/TRANSACTIONS.md`](../docs/TRANSACTIONS.md)). The MCP `execute` tool surfaces this as the `sql` array shape: pass multiple statements and they run atomically.
|
|
907
917
|
|
|
908
918
|
Hyper-specific limits worth remembering when batching:
|
|
919
|
+
|
|
909
920
|
- **DDL after DML in the same transaction is rejected** with SQLSTATE 0A000. The `execute` tool catches this up front — mixing CREATE/DROP/ALTER with INSERT/UPDATE/DELETE in one batch is rejected with an actionable error.
|
|
910
921
|
- **DDL is auto-committed** even inside a transaction. `execute` rejects multi-element all-DDL batches because the "atomic" promise can't be honored — issue each DDL call as its own one-element array.
|
|
911
922
|
- **After any error inside a transaction**, the connection enters aborted state and only ROLLBACK is accepted next. The `execute` tool handles this for you — on any per-statement failure the wrapper issues ROLLBACK before surfacing the error.
|
package/package.json
CHANGED
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"engines": {
|
|
30
30
|
"node": ">= 21"
|
|
31
31
|
},
|
|
32
|
-
"version": "0.
|
|
32
|
+
"version": "1.0.0-rc.1",
|
|
33
33
|
"optionalDependencies": {
|
|
34
|
-
"hyperdb-mcp-darwin-arm64": "0.
|
|
35
|
-
"hyperdb-mcp-linux-x64-gnu": "0.
|
|
36
|
-
"hyperdb-mcp-win32-x64-msvc": "0.
|
|
34
|
+
"hyperdb-mcp-darwin-arm64": "1.0.0-rc.1",
|
|
35
|
+
"hyperdb-mcp-linux-x64-gnu": "1.0.0-rc.1",
|
|
36
|
+
"hyperdb-mcp-win32-x64-msvc": "1.0.0-rc.1"
|
|
37
37
|
}
|
|
38
38
|
}
|