hyperdb-mcp 1.0.0-rc.1 → 1.0.0-rc.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.
Files changed (2) hide show
  1. package/README.md +26 -19
  2. package/package.json +4 -4
package/README.md CHANGED
@@ -4,7 +4,7 @@
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
 
7
- Built on the pure-Rust [`hyperdb-api`](../hyperdb-api/) crate for maximum performance: 22M+ rows/sec inserts, 18M+ rows/sec queries, constant memory for billion-row results.
7
+ Built on the pure-Rust [`hyperdb-api`](../hyperdb-api/) crate for maximum performance. On a single connection that crate benchmarks at 68.9M rows/sec inserts with the async `AsyncArrowInserter`, 25.0M rows/sec with the sync `Inserter`, and 31.1M rows/sec full-scan queries, with constant memory for billion-row results — see [docs/BENCHMARK_GUIDE.md](../docs/BENCHMARK_GUIDE.md).
8
8
 
9
9
  ---
10
10
 
@@ -237,7 +237,14 @@ describe({ database: "persistent" })
237
237
  sample({ table: "customers", database: "persistent" })
238
238
  ```
239
239
 
240
- The `database` parameter is available on `query`, `execute`, `load_data`, `load_file`, `load_files`, `watch_directory`, `describe`, `sample`, `chart`, `export`, and `set_table_metadata`. The shorthand `persist: true` (sugar for `database: "persistent"`) is available on `load_data`, `load_file`, `load_files`, and `watch_directory`. Read tools generally accept a read-only user attachment; write tools require a writable one. The exception is the KV family: every `kv_*` call to a user attachment requires it to be writable because the backing table may need initialization.
240
+ The `database` parameter is available on `query`, `execute`, `load_data`,
241
+ `load_file`, `load_files`, `watch_directory`, `describe`, `sample`, `chart`,
242
+ `export`, and `set_table_metadata`. The shorthand `persist: true` (sugar for
243
+ `database: "persistent"`) is available on `load_data`, `load_file`,
244
+ `load_files`, and `watch_directory`. Read tools generally accept a read-only
245
+ user attachment; write tools require a writable one. The exception is the KV
246
+ family: every `kv_*` call to a user attachment requires it to be writable
247
+ because the backing table may need initialization.
241
248
 
242
249
  Every successful database-routed response includes the canonical
243
250
  `resolved_database`: `"local"`, `"persistent"`, or the lowercase attached
@@ -332,7 +339,7 @@ If hyperd repeatedly fails to start (3 attempts within 60 seconds — e.g., misc
332
339
 
333
340
  Ingest inline data and run a SQL query in a single call.
334
341
 
335
- ```
342
+ ```text
336
343
  query_data(data: '[{"region":"West","revenue":1200},...]', sql: 'SELECT region, SUM(revenue) FROM data GROUP BY region')
337
344
  ```
338
345
 
@@ -348,7 +355,7 @@ query_data(data: '[{"region":"West","revenue":1200},...]', sql: 'SELECT region,
348
355
 
349
356
  Ingest a file and run a SQL query in a single call. Streams from disk — handles files of any size.
350
357
 
351
- ```
358
+ ```text
352
359
  query_file(path: '/tmp/sales.parquet', sql: 'SELECT TOP 10 * FROM sales ORDER BY amount DESC')
353
360
  ```
354
361
 
@@ -365,7 +372,7 @@ query_file(path: '/tmp/sales.parquet', sql: 'SELECT TOP 10 * FROM sales ORDER BY
365
372
 
366
373
  Load inline data into a named local, persistent, or attached-database table.
367
374
 
368
- ```
375
+ ```text
369
376
  load_data(table: 'customers', data: '[{"id":1,"name":"Alice"},...]')
370
377
  ```
371
378
 
@@ -381,7 +388,7 @@ load_data(table: 'customers', data: '[{"id":1,"name":"Alice"},...]')
381
388
 
382
389
  Load a file into a named local, persistent, or attached-database table.
383
390
 
384
- ```
391
+ ```text
385
392
  load_file(table: 'orders', path: '/tmp/orders.csv')
386
393
  ```
387
394
 
@@ -404,7 +411,7 @@ local table. Pass the absolute path to the Iceberg table root (the
404
411
  directory containing `metadata/` and `data/`); hyperd's native Iceberg
405
412
  reader derives the schema and resolves the snapshot.
406
413
 
407
- ```
414
+ ```text
408
415
  load_iceberg(table: 'sales', path: '/lake/warehouse/db/sales')
409
416
  ```
410
417
 
@@ -423,7 +430,7 @@ Iceberg table metadata.
423
430
 
424
431
  Run a **read-only** SQL query against local (default), persistent, or an attached database. Accepts `SELECT`, `WITH`, `EXPLAIN`, `SHOW`, `VALUES`. For DDL/DML use `execute`.
425
432
 
426
- ```
433
+ ```text
427
434
  query(sql: 'SELECT c.name, SUM(o.amount) FROM orders o JOIN customers c ON o.customer_id = c.id GROUP BY c.name')
428
435
  ```
429
436
 
@@ -431,7 +438,7 @@ query(sql: 'SELECT c.name, SUM(o.amount) FROM orders o JOIN customers c ON o.cus
431
438
 
432
439
  Execute one or more **mutating** SQL statements as an atomic batch: `CREATE TABLE`, `INSERT`, `UPDATE`, `DELETE`, `DROP TABLE`, `ALTER`, `COPY`, etc. `sql` is an array of statements; multi-element batches run inside a transaction (all commit or all roll back). Single-element batches auto-commit, same as a one-off statement. Returns the per-statement affected row counts plus a total. Disabled in read-only mode.
433
440
 
434
- ```
441
+ ```text
435
442
  // Single statement (auto-commit)
436
443
  execute(sql: ['CREATE TABLE archived_orders AS SELECT * FROM orders WHERE year < 2024'])
437
444
 
@@ -459,7 +466,7 @@ List all tables in the selected database with their schemas, column types, and r
459
466
 
460
467
  Return the schema, total row count, and first N rows of a table in a single call.
461
468
 
462
- ```
469
+ ```text
463
470
  sample(table: 'orders', n: 10)
464
471
  ```
465
472
 
@@ -483,7 +490,7 @@ Use it **before** `load_file` whenever you are unsure about types, or **after**
483
490
  reported `type` + `min` / `max` directly into a partial `schema` override on the
484
491
  subsequent `load_file` call.
485
492
 
486
- ```
493
+ ```text
487
494
  inspect_file(path: '/tmp/owid-population.csv')
488
495
  ```
489
496
 
@@ -531,7 +538,7 @@ only for the lifetime of the server process.
531
538
 
532
539
  #### `save_query`
533
540
 
534
- ```
541
+ ```text
535
542
  save_query(name: 'top_5_customers', sql: 'SELECT customer, SUM(amount) AS total FROM orders GROUP BY customer ORDER BY total DESC LIMIT 5', description: 'Biggest spenders this year')
536
543
  ```
537
544
 
@@ -547,7 +554,7 @@ first if you intend to overwrite. Non-read-only SQL is rejected with
547
554
 
548
555
  #### `delete_query`
549
556
 
550
- ```
557
+ ```text
551
558
  delete_query(name: 'top_5_customers')
552
559
  ```
553
560
 
@@ -584,7 +591,7 @@ Nine tools cover the surface:
584
591
  | `kv_pop` | Destructively read-and-remove the lowest-keyed entry (atomic) | `store`, `database`, `persist` |
585
592
  | `kv_clear` | Delete all keys in a store (returns count removed) | `store`, `database`, `persist` |
586
593
 
587
- ```
594
+ ```text
588
595
  kv_set(store: 'session', key: 'last_report', value: '{"rows": 4210}', database: 'persistent')
589
596
  kv_get(store: 'session', key: 'last_report')
590
597
  ```
@@ -607,7 +614,7 @@ Key properties:
607
614
 
608
615
  Write query results or a table to a file.
609
616
 
610
- ```
617
+ ```text
611
618
  export(table: 'orders', path: '~/Desktop/orders.parquet', format: 'parquet')
612
619
  export(sql: 'SELECT ...', path: '~/Desktop/analysis.hyper', format: 'hyper')
613
620
  ```
@@ -630,7 +637,7 @@ destination and materializes every user table from the selected source into it.
630
637
  Render a bounded quick diagnostic from a SQL query. This convenience tool is
631
638
  for inspecting or sharing one chart, not for dashboard/layout composition.
632
639
 
633
- ```
640
+ ```text
634
641
  chart(sql: 'SELECT product, SUM(revenue) as total FROM sales GROUP BY product', chart_type: 'bar', x: 'product', y: 'total', title: 'Revenue by Product')
635
642
  ```
636
643
 
@@ -684,7 +691,7 @@ bound, never zero.
684
691
 
685
692
  Monitor a directory for data files and auto-append them to a target table.
686
693
 
687
- ```
694
+ ```text
688
695
  watch_directory(path: '/tmp/inbox', table: 'events')
689
696
  unwatch_directory(path: '/tmp/inbox')
690
697
  ```
@@ -899,7 +906,7 @@ Hyper uses the Salesforce Data Cloud SQL dialect (PostgreSQL-compatible with ext
899
906
 
900
907
  Hyper does **not** support `ON CONFLICT` or `INSERT ... ON DUPLICATE KEY`. Use the `execute` tool's atomic batch shape instead:
901
908
 
902
- ```
909
+ ```text
903
910
  execute(sql: [
904
911
  "UPDATE settings SET value = 'dark' WHERE key = 'theme'",
905
912
  "INSERT INTO settings (key, value) SELECT 'theme', 'dark' \
@@ -927,7 +934,7 @@ Full reference: [Data Cloud SQL Reference](https://developer.salesforce.com/docs
927
934
 
928
935
  ## CLI Reference
929
936
 
930
- ```
937
+ ```text
931
938
  hyperdb-mcp [OPTIONS] [COMMAND]
932
939
 
933
940
  Commands:
package/package.json CHANGED
@@ -29,10 +29,10 @@
29
29
  "engines": {
30
30
  "node": ">= 21"
31
31
  },
32
- "version": "1.0.0-rc.1",
32
+ "version": "1.0.0-rc.2",
33
33
  "optionalDependencies": {
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"
34
+ "hyperdb-mcp-darwin-arm64": "1.0.0-rc.2",
35
+ "hyperdb-mcp-linux-x64-gnu": "1.0.0-rc.2",
36
+ "hyperdb-mcp-win32-x64-msvc": "1.0.0-rc.2"
37
37
  }
38
38
  }