프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Basalt

제작자: joshiii-xyz버전 0.1.6i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.joshiii-xyz/basalt

설치

개요

제작자가 쓴 설명(영어 원문)

Local SQL workspaces with bounded, recoverable writes for coding agents.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 데이터베이스 및 데이터셋

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 레지스트리에 입력해야 할 키가 나와 있지 않아요.

제작자가 레지스트리에 설치 정보를 올리지 않았어요. 아래 제작자의 README를 확인하세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 joshiii-xyz 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

데이터베이스 및 데이터셋 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 956개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 956개 중 27%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 956개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Basalt, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.6)은 2개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Rust도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Supabase, MongoDB MCP Server, Elasticsearch MCP Server

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Supabase

제작자: supabase

MCP server for interacting with the Supabase platform

컴퓨터 또는 클라우드★ 2,993Apache-2.0어제 업데이트
설치

MongoDB MCP Server

제작자: mongodb-js

MongoDB Model Context Protocol Server

내 컴퓨터에서 실행★ 1,157Apache-2.03일 전 업데이트
설치

Elasticsearch MCP Server

제작자: cr7258

MCP server for interacting with Elasticsearch

내 컴퓨터에서 실행★ 315Apache-2.014개월 전 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. 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.

Highlights

  • SQL lexer and recursive-descent parser with expressions, joins, grouping, aggregates, aliases, and transaction statements.
  • Atomic statement execution with primary-key, UNIQUE, and user-created indexes.
  • Snapshot-isolated transactions with optimistic conflict detection.
  • Checksummed page snapshots and a write-ahead log that recovers committed state after a process crash.
  • Simple query planning with table scans, equality indexes, and range indexes.
  • Interactive and scriptable CLI output in table, CSV, and JSON-lines formats.
  • Portable workspaces with versioned metadata and atomic CSV, JSON/JSONL, and SQL dump import/export.
  • Installable MCP server with typed SQL tools, bounded workspace imports and exports, engine-bounded SQL, schema resources, and recoverable agent changes.

Installation

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

Quick start

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.

Workspaces

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"

Review the returned plan_id, then:

basalt workspace apply --json .basalt-workspace PLAN_ID

Review the returned change_id, then:

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.

MCP server

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.

CLI

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.

Library usage

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()?;

Ok::<(), basalt::db::DbError>(())

Use database.connect() when SQL transaction statements need to span multiple calls.

Project layout

PathPurpose
src/sql/Lexer, parser, AST, and SQL dialect
src/engine.rsStatement execution and query semantics
src/planner.rsAccess-path selection
src/db.rs, src/database.rsTables, constraints, transactions, and API
src/storage.rs, src/wal.rsSnapshots, checksums, and recovery
src/cli.rsInteractive and scripted command-line frontend
src/workspace.rsLocal workspace lifecycle and data interchange
src/mcp.rsStdio MCP server, agent tools, and schema resource
server.jsonMCP Registry release metadata
docs/sql.mdSupported SQL dialect and transaction semantics
docs/benchmark-results.mdRecorded workflow benchmark snapshot
docs/compatibility.mdFile-format boundary and differential-test policy
docs/production-readiness.mdTechnical release contract, limits, and evidence
docs/early-user-validation.mdFive-minute switching test and feedback template
docs/fuzzing.mdParser and persistence fuzzing instructions
docs/mcp.mdMCP installation, configuration, and tool contract
docs/workspaces.mdWorkspace layout and import/export contract
tests/Integration and crash-recovery coverage
benches/In-process engine throughput benchmark
scripts/benchmark_workspace.pyReproducible workflow comparison harness
scripts/differential_sql.pySupported-subset SQLite differential checks
scripts/mcp-smoke.pyInstalled-binary writable MCP smoke test
scripts/verify-release-artifacts.pyRelease archive checksum and contents check
scripts/verify-registry-metadata.pyMCP Registry package/version consistency check
scripts/release-check.shPackaged-crate and release preflight
scripts/smoke-test.shInstalled-binary CLI and read-only MCP smoke test
fuzz/Optional libFuzzer parser and snapshot targets

Development

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

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기