shop-db MCP Server
Gives AI agents read-only analytical access to an e-commerce SQLite database (customers, orders, order_items, products) via SQL queries, table listing, and schema inspection.
README
shop-db MCP Server
A read-only Model Context Protocol server
that gives AI agents analytical access to an e-commerce SQLite database
(customers, orders, order_items, products) — without any ability to
modify data.
Built for Node.js v24.19+, running TypeScript source files directly
(no build step) using native node:sqlite and node:test.
Setup
npm install
The repository already includes a populated ./shop.db at the project
root — no seeding step is needed. Nothing in npm start or npm test
writes to it: the server opens it read-only, and the test suite builds its
own throwaway databases under tests/ from tests/fixtures/seed.sql.
Run the server
npm start
The server communicates over stdio (StdioServerTransport) — it's meant to
be launched by an MCP client (Claude Code, Claude Desktop, etc.), not run
interactively.
Tests
npm test
Runs node --test against tests/, covering SQL validation edge cases
(mutation keywords, comment-evasion, multi-statement injection, CTEs,
EXPLAIN) and the three MCP tools end-to-end against isolated test
databases built from tests/fixtures/seed.sql. The committed ./shop.db
is never read or written by the test suite.
Configuring the database path
By default the server reads ./shop.db (relative to the working
directory it's launched from). Override with the DB_PATH environment
variable:
DB_PATH=/absolute/path/to/shop.db npm start
Tools
list_tables— lists the 4 tables with a short description of each.describe_table— column definitions, types, primary keys, and up to 3 sample rows, for one table (tableName) or all tables (omit it).read_query— executes a read-onlySELECT/WITH/EXPLAIN/PRAGMAquery (query, required) and returns up tolimitrows (optional, default 100, max 1000). Any mutation attempt (INSERT,UPDATE,DELETE,DROP, ...) is rejected with a clear error, even if disguised with SQL comments or wrapped in a CTE.
AI agent config
{
"mcpServers": {
"shop-db": {
"command": "node",
"args": ["/absolute/path/to/src/index.ts"],
"env": {
"DB_PATH": "/absolute/path/to/shop.db"
}
}
}
}
Project docs
AGENTS.md— instructions for AI coding agents working on this repo (also loaded asCLAUDE.mdvia symlink).CONTEXT.md— domain model and safety architecture.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.