The Nothing
Essentially nothing — this is the "no database connected" mode of The Nothing, where every tool is a deliberate no-op placeholder.
nothing— acknowledge a step that needs no action; returns'...'and ignores any input.pass_through— echo a payload back unchanged (identity), acting as a swappable seam for future data operations; an optionaloperationlabel is accepted but never executed.search— always returns an empty result list; it never searches anything.fetch— always returns an empty document for any id; nothing is stored.Nothing else — no SQL, no querying, no browsing, no writes; all tools are read-only, idempotent, closed-world and non-destructive.
Use case — prototype an AI-facing contract now, then plug in a real database later without changing the tool interface.
Connects privately and read-only to MariaDB databases, providing schema and row-count visibility without giving the AI query or write access. Approved SELECT views can be exposed with row caps.
Connects privately and read-only to MySQL databases, allowing the AI to inspect schema structure and row counts through a single non-SQL tool. Supports pre-approved read-only views with row limits for controlled data access.
Connects to PlanetScale-hosted MySQL-compatible databases, enabling read-only schema and row-count inspection plus optional pre-approved, row-capped views for controlled data access.
Connects privately and read-only to PostgreSQL databases, exposing table/column schema and row counts to the AI without allowing SQL execution. Optionally exposes pre-approved, row-capped SELECT views for controlled access to aggregate data.
Opens SQLite database files in read-only mode and exposes schema structure and row counts to the AI. Supports pre-approved, row-capped views while preventing SQL execution or data modification.
Connects to Supabase-hosted PostgreSQL databases using a PostgreSQL connection string, providing read-only schema inspection and optional approved views without exposing raw records by default.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@The Nothing dry-run a customer lookup and show me the operation you'd send"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
The idea
Most database MCP servers hand the AI a query tool. The AI writes SQL, rows pour into the context window, and every question costs another round trip, more tokens and more exposure.
The Nothing turns that around. It holds the database connection privately, on your side, and gives the AI one minimal, read-only tool that can't run SQL:
read_view schema: tables, columns and row counts. Structure only, never records.read_view <name>: a view you approved ahead of time, row-capped. Optional.
The AI can't write queries, browse tables, or change anything. It understands the shape of your data without dragging the data itself into the conversation. That's the decoupling, and it's why we call it Mr. Decoupler.
With no database around, it does exactly what the name says: nothing.
Related MCP server: MCP API Tool Demo
Zero setup
Open a project and it connects on its own, checking in this order:
THE_NOTHING_DB, if you set itDATABASE_URLin the environmentTHE_NOTHING_DBorDATABASE_URLin the project's.envfileA SQLite, CSV, TSV or JSONL file in the project folder
Nothing found means nothing connected. Auto-detection only looks inside a project folder, never your home folder or a drive root. Turn it off with THE_NOTHING_AUTODETECT=off.
How it works
Your database / dataset ──(private, read-only)──▶ The Nothing ──(read_view: schema + approved views)──▶ AI
Postgres · MySQL · SQL Server │
SQLite · CSV · TSV · JSONL └─ the AI can't write SQL, browse or change dataGuarantee | How |
One tool, no SQL |
|
No records by default | The schema is table names, columns and row counts. Rows appear only in views you wrote. |
Read-only | Views must be a single |
Bounded | Every view is row-capped (default 50, max 1000). |
Credentials stay put | The connection string never appears in tool output, instructions or error messages. |
Strictest mode |
|
Supported sources
Connection | Source |
| PostgreSQL and compatible services (Supabase, Neon, Aurora, CockroachDB…) |
| MySQL, MariaDB and compatible services (PlanetScale, Aurora MySQL, TiDB…) |
| SQL Server, Azure SQL |
| SQLite |
| Datasets, loaded into a private in-memory table named after the file |
Use a read-only database account. The Nothing enforces read-only on its side too, but a read-only account means nothing could write even by mistake.
Optional: approve views
When you want the AI to see actual numbers, approve views in a JSON file and point THE_NOTHING_VIEWS at it (see examples/views.example.json):
{
"views": {
"revenue_by_month": {
"description": "Total revenue per month.",
"sql": "SELECT date_trunc('month', placed_at) AS month, SUM(amount) AS revenue FROM orders GROUP BY 1 ORDER BY 1"
},
"customers_by_region": {
"description": "Counts only. No names or emails.",
"sql": "SELECT region, COUNT(*) AS customers FROM customers GROUP BY region"
}
}
}Aggregates make the best views: they give the AI what it needs to reason without raw rows in the conversation.
Install
VS Code + GitHub Copilot
Install The Nothing from the VS Code Marketplace and open your project. That's it: it auto-detects the database. To connect to something else, run The Nothing: Set Private Data Source from the Command Palette; the connection goes into VS Code's encrypted secret storage, never settings.json.
Claude Desktop
Download the-nothing-2.0.0.mcpb from the latest release and double-click it. Claude Desktop asks for the data source once and stores it as a sensitive setting. (Claude Desktop has no project folder, so this is the one place you paste a connection string.)
Cursor, Windsurf, Claude Code and everything else
Node.js 18+ is the only requirement.
{
"mcpServers": {
"the-nothing": {
"command": "npx",
"args": ["-y", "the-nothing-mcp"]
}
}
}If your editor starts MCP servers in the project folder, that's all; it auto-detects. Otherwise add "env": { "THE_NOTHING_DB": "postgres://readonly:password@localhost:5432/shop" }.
Client | Where it goes |
Cursor |
|
Windsurf |
|
Claude Code |
|
Claude Desktop (manual) | Settings → Developer → Edit Config; add |
Gemini CLI |
|
Cline / Roo Code / Kilo Code | MCP Servers → Configure → |
Zed |
|
JetBrains AI Assistant / Junie | Settings → Tools → AI Assistant → MCP → Add |
Continue, LM Studio, Goose, and others | Their MCP settings; same command and args |
VS Code without the extension: .vscode/mcp.json
{ "servers": { "the-nothing": { "type": "stdio", "command": "npx", "args": ["-y", "the-nothing-mcp"] } } }Visual Studio 2022 (17.14+) / 2026: <SolutionDir>\.mcp.json
{ "servers": { "the-nothing": { "type": "stdio", "command": "cmd", "args": ["/c", "npx", "-y", "the-nothing-mcp"] } } }OpenAI Codex CLI: ~/.codex/config.toml
[mcp_servers.the-nothing]
command = "npx"
args = ["-y", "the-nothing-mcp"]Remote clients (Streamable HTTP)
ChatGPT, Grok, claude.ai custom connectors and hosted agent APIs reach MCP servers over HTTPS:
THE_NOTHING_DB=postgres://… THE_NOTHING_HTTP_TOKEN=change-me npx -y the-nothing-mcp --http --port 3000Clients send Authorization: Bearer <token>. With a data source, web mode refuses to start on a public address without a token, unless you set THE_NOTHING_ALLOW_PUBLIC_DATA=1 because a proxy in front already authenticates.
Configuration
All optional.
Variable | Purpose |
| Connection string or dataset path. Overrides auto-detection. |
|
|
| Path to your views file (or the JSON itself). |
| Row cap per view. Default 50, max 1000. |
|
|
|
|
What the AI sees
With a database | Without one |
Tool | Tools |
Resources | Resource |
Prompt | Prompt |
When less is more
Private by design: the AI learns your data's shape, not its contents.
Memory and context over live queries: curated views you build once and reuse, instead of the AI re-querying on every turn.
Keep agents away from production data: the AI can't query, browse or write, by construction.
Fast: one tool, small answers, fewer tokens and round trips.
Prototype before the database exists: the seam works with nothing behind it; add a source later and nothing on the AI side changes.
Development
npm install
npm test # tools, transports, SQLite, CSV, JSONL, auto-detection, credential redaction, web-mode safety
npm run test:pg # plus a real, temporary Postgres server
npm run build:vscode # bundles the server into the VS Code extension
npm run build:mcpb # builds the Claude Desktop extensionSee PUBLISHING.md for releasing.
FAQ
Is it really private? The connection and credentials stay in the server process on your machine. The AI only sees what read_view returns: structure and row counts, plus views you approved. Anything it reads is sent to your AI provider as part of the conversation, so keep views to aggregates where you can.
Why not a query tool? Because a query tool lets the AI decide what data enters the context window. The Nothing makes that your decision.
Can it write to my database? No. Views are read-only, run inside read-only or rolled-back transactions, and you should connect with a read-only account anyway.
Does it still do nothing? With no database, yes, exactly as in 1.x.
License
MIT
mcp-name: io.github.Meador793/the-nothing
Available Tools
4 toolsfetchFetch (Nothing)ARead-onlyIdempotent
Fetches nothing. Returns an empty document for any id, because nothing is stored here.
Inputs: id (required).
nothingDo NothingARead-onlyIdempotent
Deliberately does nothing and returns '...'. Use it to acknowledge a step that needs no action, or as a placeholder where a real database/dataset operation may live someday.
Inputs: anything.
pass_throughPass ThroughBRead-onlyIdempotent
Returns the payload exactly as received (identity). This is Mr. Decoupler's seam: route data operations through it today, swap in a real implementation later without changing the AI-facing contract.
Inputs: payload (required), operation.
searchSearch (Nothing)ARead-onlyIdempotent
Always returns an empty result list. It never searches any data.
Inputs: query (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
The four tools have distinct behaviors: no-op acknowledgement, empty search, empty fetch, and identity pass-through. Search and fetch both return empty results, but their intended operations are different enough for an agent to choose correctly.
Names are readable and mostly snake_case, but they mix noun and verb conventions: 'nothing' is a noun, 'search' and 'fetch' are verbs, and 'pass_through' is a verb phrase. The inconsistency is minor but noticeable.
Four tools is well-scoped for a deliberately minimal placeholder server. Each tool represents a distinct no-op or seam behavior without unnecessary surface area.
For a no-op/decoupler server, the surface covers acknowledgement, search, fetch, and identity routing. It lacks explicit write/update/delete placeholders, but those may be intentionally out of scope since nothing is stored.
Maintenance
Related MCP Connectors
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceHosted MCP endpoint that returns realistic fake data for prototyping agents. Paste one URL into Claude Code, Cursor, or Claude Desktop — 12 pre-built tools covering users, products, orders, events, email, and knowledge base search. No signup, no config, no auth. Built for developers who want to prototype agent workflows before wiring up a real backend.MIT
- FlicenseNot gradedqualityDmaintenanceDemo MCP server that exposes order and customer data as read-only tools for AI assistants, simulating a business API or internal data source.-
- AlicenseNot gradedqualityCmaintenanceProvides an OAuth-protected, scoped, and audited MCP server that lets AI assistants safely query business data through a fixed set of tools without direct database access.1MIT
- AlicenseBqualityBmaintenanceEnables MCP hosts like ChatGPT and Claude to query data platform metadata, explore schemas and tables, inspect SQL explain plans, and monitor DAG and ETL status through standardized tools.21MIT