GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者提供的说明(英文原文)
Local SQL workspaces with bounded, recoverable writes for coding agents.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
作者没有在注册中心列出安装信息。请查看下方作者的 README。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 joshiii-xyz 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.6)于2个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Rust。
同一分类中有:GitHub, Desktop Commander, Cloudflare MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Basalt A CLI-first local SQL workspace for structured data and coding agents.
Basalt is an embedded SQL database and command-line application built from scratch in Rust. It provides a small library API, an interactive shell, durable storage, snapshot-isolated transactions, crash recovery, portable structured-data workspaces, and a stdio MCP server for local AI agents. It is not a SQLite-compatible replacement or a hosted database.
Rust 1.88 or newer is required for a Cargo install.
cargo install basalt-db --locked
The published package is named basalt-db; the installed command remains basalt. To install the current checkout instead, use cargo install --path . --locked.
Tagged releases include checksummed installers and prebuilt binaries for Linux, macOS, and Windows. See GitHub Releases for the current no-toolchain install. The latest tagged release is verified from its published installer and its checksums:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/yoshiii-xyz/basalt/releases/latest/download/basalt-db-installer.sh | sh
To run directly from a checkout:
cargo run --release -- app.basalt
Open a database and run SQL interactively:
$ basalt app.basalt
basalt> CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL); basalt> INSERT INTO users VALUES (1, 'Ada'); basalt> SELECT * FROM users; id | name ---+----- 1 | Ada 1 row(s)
For a one-shot command:
basalt --json --command "SELECT * FROM users ORDER BY id;" app.basalt
Use Database::in_memory() for an ephemeral database. Durable writes are appended to the WAL immediately; call checkpoint() to fold the current state into the snapshot and clear old WAL frames. A durable path is owned by one process at a time; cloned Database handles share that owner safely across threads, while a second process receives an "already open" error.
Use a workspace when an agent or script needs a disposable, local relational area for CSV, JSON, logs, issue exports, or fixtures:
basalt init .basalt-workspace
basalt workspace import --table issues .basalt-workspace issues.csv basalt workspace inspect --json .basalt-workspace basalt workspace query --json .basalt-workspace "SELECT * FROM issues ORDER BY id" basalt workspace export .basalt-workspace issues issues.jsonl
Imports are atomic, recoverable, and return a durable change_id; exports are deterministic. Add --json to workspace import/export commands when an agent or script needs a machine-readable operation report; raw exports to - remain clean data streams. Later writes can be previewed, applied by exact plan ID, inspected in history, diffed with schema and row-change counts, and undone when they are the latest change. A workspace is owned by one Basalt process while open, so stop a workspace MCP server before using that workspace from the CLI or by opening its data.basalt file directly. See docs/workspaces.md for the format and boundaries.
The reason to use Basalt for agent-owned data is the write boundary: inspect a proposed change before it is durable, apply only the exact reviewed plan, then diff or undo the latest change if needed.
basalt workspace preview --json .basalt-workspace \
"UPDATE issues SET status = 'closed' WHERE id = 42"
basalt workspace apply --json .basalt-workspace PLAN_ID
basalt workspace diff --json .basalt-workspace CHANGE_ID basalt workspace undo --json .basalt-workspace CHANGE_ID
Use SQLite or DuckDB when you need their compatibility or analytical performance. Basalt is for local structured-data work where a bounded, recoverable write matters more than replacing an existing database.
If that describes your workflow, use the early-user validation guide with a disposable, non-sensitive input and record the concrete task and blocker. Basalt does not claim adoption until developers complete this workflow against the tools they already use.
Basalt can run as a local Model Context Protocol server over stdio. Install the binary from this checkout:
cargo install --path . --locked
Then configure an MCP host with an absolute workspace path. Workspace mode is the recommended agent integration: it scopes data access and requires an explicit preview/apply lifecycle for writes.
{
"mcpServers": { "basalt": { "command": "basalt", "args": [ "mcp", "--workspace", "/absolute/path/to/project-data", "--init-workspace" ] } } }
--init-workspace creates the configured workspace only when its path does not exist; it never replaces an existing directory or manifest. Omit it when the workspace must be provisioned separately. Add "--allow-writes" only when the host has an explicit operator approval policy for applying workspace plans and undoing changes. Direct database mode is still available with "args": ["mcp", "/absolute/path/to/app.basalt"], but it is read-only by default; execute and checkpoint require the same flag. Use "args": ["mcp", ":memory:"] for an ephemeral direct-mode session. The installed binary is preferred for host configuration; running from a checkout is also possible with cargo run --quiet -- mcp --workspace /absolute/path/to/project-data.
When a modern MCP host advertises form elicitation, Basalt returns an input_required approval request before each workspace import, apply, or undo and executes only after the host retries with an explicit approval. Legacy initialized hosts receive elicitation/create; hosts that do not advertise elicitation use the explicit --allow-writes startup policy.
The release metadata carries the visible Cargo ownership marker used by the MCP Registry listing:
Workspace mode exposes workspace_import, workspace_inspect, workspace_preview, workspace_plan, workspace_apply, workspace_history, workspace_diff, workspace_undo, and workspace_export, alongside bounded query, list_tables, and describe_table tools. It also exposes the current schema at basalt://schema. See docs/mcp.md for the complete tool contract, configuration details, approval boundary, and troubleshooting.
Execute a SQL file:
basalt --file schema-and-seed.sql app.basalt
Run commands in order on one connection, including a transaction spanning multiple commands:
basalt --command "BEGIN;" --command "INSERT INTO users VALUES (2, 'Grace');" --command "COMMIT;" app.basalt
Use --file - to read SQL from stdin. Repeat --command and --file as needed; they execute in the order they appear. Table output is human-readable, CSV emits query rows, and --json emits one JSON object per statement. Run .help inside the shell for .tables, .schema, .mode, .headers, .checkpoint, .show, and .clear. Each CLI SQL action and the pending interactive buffer is limited to 16 MiB; larger scripts should be split into smaller actions or use the bounded workspace import formats.
use basalt::{Database, db::StatementResult};
let database = Database::open("example.basalt")?; database.execute_sql( "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL); INSERT INTO users VALUES (1, 'Ada');", )?; let result = database.execute_sql("SELECT * FROM users WHERE id = 1")?; assert!(matches!(result[0], StatementResult::Select { .. })); database.checkpoint()?;
Use database.connect() when SQL transaction statements need to span multiple calls.
| Path | Purpose |
|---|---|
| src/sql/ | Lexer, parser, AST, and SQL dialect |
| src/engine.rs | Statement execution and query semantics |
| src/planner.rs | Access-path selection |
| src/db.rs, src/database.rs | Tables, constraints, transactions, and API |
| src/storage.rs, src/wal.rs | Snapshots, checksums, and recovery |
| src/cli.rs | Interactive and scripted command-line frontend |
| src/workspace.rs | Local workspace lifecycle and data interchange |
| src/mcp.rs | Stdio MCP server, agent tools, and schema resource |
| server.json | MCP Registry release metadata |
| docs/sql.md | Supported SQL dialect and transaction semantics |
| docs/benchmark-results.md | Recorded workflow benchmark snapshot |
| docs/compatibility.md | File-format boundary and differential-test policy |
| docs/production-readiness.md | Technical release contract, limits, and evidence |
| docs/early-user-validation.md | Five-minute switching test and feedback template |
| docs/fuzzing.md | Parser and persistence fuzzing instructions |
| docs/mcp.md | MCP installation, configuration, and tool contract |
| docs/workspaces.md | Workspace layout and import/export contract |
| tests/ | Integration and crash-recovery coverage |
| benches/ | In-process engine throughput benchmark |
| scripts/benchmark_workspace.py | Reproducible workflow comparison harness |
| scripts/differential_sql.py | Supported-subset SQLite differential checks |
| scripts/mcp-smoke.py | Installed-binary writable MCP smoke test |
| scripts/verify-release-artifacts.py | Release archive checksum and contents check |
| scripts/verify-registry-metadata.py | MCP Registry package/version consistency check |
| scripts/release-check.sh | Packaged-crate and release preflight |
| scripts/smoke-test.sh | Installed-binary CLI and read-only MCP smoke test |
| fuzz/ | Optional libFuzzer parser and snapshot targets |
cargo fmt --all -- --check
cargo check --all-targets --locked cargo clippy --all-targets --all-features --locked -- -D warnings cargo test --all-targets --locked RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --locked cargo bench --bench throughput cargo package --locked cargo build --release --locked cargo audit python3 scripts/benchmark_workspace.py --basalt target/release/basalt
For the complete Unix release preflight, use:
bash scripts/release-check.sh
It installs the exact packaged crate into a temporary prefix and runs the installed-binary smoke journey. It also runs cargo audit and dist plan when those tools are available.
See CONTRIBUTING.md for contribution guidelines and CHANGELOG.md for proje
只显示了开头部分;其余内容请在仓库中阅读