shop-database
Provides read-only access to a SQLite database, enabling schema inspection and safe SELECT/WITH queries against shop data such as customers, products, orders, and order_items.
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., "@shop-database Show the 5 best-selling products by units sold and revenue."
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.
Shop database MCP server
Что делает этот MCP
Это MCP-сервер для безопасного анализа локальной SQLite-базы интернет-магазина. Он работает через стандартные потоки ввода/вывода (stdio), не поднимает HTTP-сервер и предоставляет AI-агенту доступ только для чтения.
Сервер открывает SQLite в режиме read-only и дополнительно разрешает только один запрос SELECT или WITH ... SELECT. Изменение данных, PRAGMA, транзакции, подключение других баз и несколько SQL-выражений блокируются. В базе нет поля страны, поэтому аналитика по странам недоступна.
Основные сущности: customers, products, orders и order_items. Связи: заказ ссылается на клиента, а строка заказа — на заказ и товар. Для исторической выручки по товарам используйте order_items.quantity * order_items.unit_price.
Related MCP server: shop
Требования и запуск
Нужен Node.js 24.2+ LTS — стабильная версия с нужным API node:sqlite. Проект использует официальный MCP TypeScript SDK, Zod, TypeScript и Vitest.
npm install
npm run build
npm test
npm run startДля разработки используйте npm run dev, для строгой проверки типов — npm run lint. Протокол MCP пишется только в stdout; диагностика — только в stderr.
Как подключить MCP
Сначала соберите проект:
npm run buildДобавьте сервер в конфигурацию вашего MCP-клиента, заменив абсолютные пути на свои:
{
"mcpServers": {
"shop-database": {
"command": "node",
"args": ["/absolute/path/to/shop-mcp/dist/index.js"],
"env": {
"SHOP_DB_PATH": "/absolute/path/to/shop-mcp/data/shop.db"
}
}
}
}Переменная SHOP_DB_PATH необязательна. Если её не задать, сервер использует data/shop.db относительно собранного файла dist/index.js.
# .env — опционально
SHOP_DB_PATH=/absolute/path/to/shop.dbTools
Tool | Входные данные и результат | Когда использовать |
| Пустой объект. Возвращает бизнес-таблицы, их поля, типы, ключи, значения по умолчанию, внешние ключи и индексы. Внутренние таблицы SQLite скрыты. | Перед составлением незнакомого SQL-запроса. |
| Обязательный | Для фильтрации, JOIN, агрегаций и произвольной аналитики. |
При получении нескольких страниц обязательно добавляйте стабильный ORDER BY. Пагинация применяется сервером; он получает не более pageSize + 1 строк. Значения для ? передавайте в parameters, а не подставляйте в SQL-строку.
{"sql":"SELECT id, name, stock_quantity FROM products ORDER BY id","page":2,"pageSize":25}Пять тестовых промптов
После подключения перезапустите или обновите MCP-клиент, чтобы он обнаружил shop-database. Скопируйте любой из этих запросов в чат с включённым MCP:
«Сначала вызови
get_database_schema, затем перечисли таблицы, их ключевые поля и связи между ними.»«Найди клиента, который потратил больше всех. Верни полное имя, email и сумму всех заказов.»
«Покажи 5 самых продаваемых товаров: название, суммарное число проданных единиц и выручку по исторической цене из
order_items.»«Рассчитай выручку за 2025 год по полю
orders.total_amount. Используй параметры для границ дат.»«Покажи помесячные число заказов и выручку, отсортированные по месяцу. Используй
page: 1,pageSize: 12и стабильныйORDER BY.»
Безопасность и ошибки
Допускается ровно один SELECT либо WITH-запрос с итоговым SELECT. Сервер отклоняет DELETE FROM orders, UPDATE products, PRAGMA, ATTACH, INSERT, DDL-команды, загрузку расширений и несколько выражений в одном запросе. Read-only подключение к SQLite является второй линией защиты.
Некорректные параметры и SQL возвращают короткие понятные ошибки без путей к файлам, переменных окружения и stack trace. Если база не найдена или недоступна, проверьте SHOP_DB_PATH либо наличие data/shop.db. Если не устанавливаются зависимости — выполните npm install; если сервер не запускается — проверьте версию Node.js.
Для ручной проверки stdio выполните npm run build, затем node dist/index.js из MCP-клиента: в stdout должны попадать только сообщения MCP-протокола.
Available Tools
2 toolsget_database_schemaGet database schemaA
Returns user-facing business tables, columns, constraints, indexes, and relationships. The database is read-only and has no country field, so country analytics are unavailable.
Inputs: no named parameters. Returns: object
query_databaseQuery databaseA
Executes exactly one read-only SELECT or WITH ... SELECT query. Data definition, data modification, transactions, attachments, PRAGMA, and multiple statements are refused. Pagination is server-applied and results include paging metadata; include stable ORDER BY when retrieving multiple pages.
Inputs: sql (required), page, pageSize, parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one exposes the database schema, the other executes read-only queries. There is no overlap in functionality, so an agent can easily choose the right tool.
Both tool names follow the same verb_noun pattern in snake_case: get_database_schema and query_database. This is consistent and predictable.
With only two tools, the server feels minimal but is reasonably scoped for a read-only database interface. It is on the thin side, but each tool serves a distinct and necessary purpose.
For a read-only database, schema introspection and querying cover the entire lifecycle. The server provides all operations needed to explore and retrieve data without creating dead ends.
Related MCP Connectors
Query 40 databases from Claude, ChatGPT, or Cursor — on any device. Read-only, encrypted, audited.
Text-to-SQL MCP server: read-only queries on PostgreSQL, MySQL and SQL Server with your real schema
SQL validation, formatting, parsing, metadata extraction, linting, and security analysis.
Query your Postgres from ChatGPT or Claude without exposing the database or handing over credentials. Run npx boltschema connect next to your database and it dials out over HTTPS — no inbound firewall rule, no open port, works with localhost and VPC-private databases. Read-only is enforced by a SQL guard, a Postgres READ ONLY transaction, and a scoped role generated for you.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables safe, read-only analysis of an online store's SQLite database, providing schema introspection, restricted SELECT queries, and specialized analytics tools through MCP.-
- FlicenseAqualityCmaintenanceEnables read-only interaction with an online store's SQLite database over MCP stdio, including table listing, schema inspection, safe read-only SQL execution, and sales analytics. It rejects mutating SQL operations to keep data intact.4-
- FlicenseNot gradedqualityCmaintenanceProvides AI agents read-only analytical access to a SQLite database over stdio, with tools for listing tables, describing schemas, and running paginated SQL queries.-
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to read-only analyze a SQLite e-commerce database, exploring schema and running analytical SQL queries over stdio.-