SocratiCode
Local semantic code search, dependency graphs and impact analysis over your own repositories
Local DynamoDB emulator on SQLite whose MCP mode gives coding agents 35 table and item tools
By nubo-db Rust Local · stdio DatabasesDeveloper toolsTesting
62 popularity score ★ 105 ↓ 16k/wk
Opens the app, which asks before it adds the server.
claude mcp add dynoxide -- npx -y dynoxide mcp{
"mcpServers": {
"dynoxide": {
"command": "npx",
"args": [
"-y",
"dynoxide",
"mcp"
]
}
}
}{
"mcpServers": {
"dynoxide": {
"command": "npx",
"args": [
"-y",
"dynoxide",
"mcp"
]
}
}
}{
"servers": {
"dynoxide": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"dynoxide",
"mcp"
]
}
}
}[mcp_servers.dynoxide]
command = "npx"
args = ["-y", "dynoxide", "mcp"]gemini mcp add --scope user dynoxide npx -- -y dynoxide mcpOpens the app, which asks before it adds the server.
claude mcp add dynoxide -- docker run -i --rm ghcr.io/nubo-db/dynoxide mcp{
"mcpServers": {
"dynoxide": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/nubo-db/dynoxide",
"mcp"
]
}
}
}{
"mcpServers": {
"dynoxide": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/nubo-db/dynoxide",
"mcp"
]
}
}
}{
"servers": {
"dynoxide": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/nubo-db/dynoxide",
"mcp"
]
}
}
}[mcp_servers.dynoxide]
command = "docker"
args = ["run", "-i", "--rm", "ghcr.io/nubo-db/dynoxide", "mcp"]gemini mcp add --scope user dynoxide docker -- run -i --rm ghcr.io/nubo-db/dynoxide mcpDYNOXIDE_MCP_AUTH_TOKEN |
Optional: Bearer token for the --http transport, used instead of the generated, persisted one; needed for a non-loopback bind. Not used over stdio. |
|---|
In a container, a setting goes in with -e NAME=value after docker run.
Dynoxide is a stand-in for Amazon DynamoDB that runs on your own machine. It keeps data in SQLite and ships as one native binary, so it needs no JVM or Docker. The same binary can serve the DynamoDB HTTP API for SDKs and tests, or, with the `mcp` subcommand, run as an MCP server so a coding agent can create tables, write and read items, run queries, scans, PartiQL and transactions, and read stream records against a local copy instead of a real AWS account.
Without `--db-path` the database lives in memory and is gone when the process stops; with it, the data is kept in a SQLite file. Agent-oriented extras include named snapshots you can roll back to, an automatic snapshot before every `delete_table` (the ten most recent are kept), a `--read-only` switch that refuses every write tool, caps on how much a query or scan returns, and a `--data-model` flag that loads a OneTable schema so the agent sees entity names and key templates. `dynoxide import --mcp` can also load a DynamoDB table export into memory, optionally anonymised, and serve that copy.
The v1.3.0 source registers exactly 35 tools (src/mcp/server.rs), matching the docs' count. In the code, `--max-items` and `--max-size-bytes` have no default, so query and scan results are not capped unless you set them. The server talks over stdio by default; `--http` switches to Streamable HTTP on port 19280, bound to 127.0.0.1 unless `--host` is given.
| Runtime | Node.jsorDocker |
|---|
The prebuilt binary for macOS (x64, arm64), Linux (x64, arm64) or Windows (x64). The npm way needs Node.js with npx; the package pulls the right binary through optionalDependencies. The container way needs Docker. No AWS account or credentials are needed.
Built for local development, testing and CI, not as a production DynamoDB. Cloud-only operations (backups and point-in-time restore, global tables, Kinesis streaming, resource policies, capacity management) return UnknownOperationException. ConsistentRead is accepted but does nothing, streams expose a single shard, and transaction-contention errors are not emulated. Vector search is exact brute-force KNN and differs from AWS in ways that can make a test pass locally and fail on AWS; an index added via `update_table` is not searchable at once. The `--data-model` schema is context only: writes are not checked against it. The WebAssembly build is still missing several operations.
Developers building on DynamoDB who want an agent to design tables, seed data and try queries without touching a real AWS account or paying for it. It runs entirely on your machine with no sign-in. It does not reach AWS at all, so it is the wrong pick for inspecting or changing live DynamoDB tables; use a server that works with your AWS account for that. For working on a copy of real data, pair `dynoxide import --mcp` with `--mcp-read-only`.
list_tablesdescribe_tablecreate_tabledelete_tableupdate_tableget_itemput_itemupdate_itemdelete_itembatch_get_itembatch_write_itembulk_put_itemsqueryscansearch_vectorstransact_get_itemstransact_write_itemsexecute_partiqlbatch_execute_partiqlexecute_transaction_partiqlupdate_time_to_livedescribe_time_to_livesweep_ttltag_resourceuntag_resourcelist_tags_of_resourcelist_streamsdescribe_streamget_shard_iteratorget_recordscreate_snapshotrestore_snapshotlist_snapshotsdelete_snapshotget_database_info