Shop Database MCP Server
MCP-сервер базы данных магазина
Этот проект предоставлает MCP-совместимым ИИ-агентам доступ к предоставленной SQLite-базе данных магазина через три универсальых, тоько для чтения, инструмент. Агент может обнаружить реальную схему, составлять аналитические SQL-запросы, объединять и агрегировать данные, а таже выявлять вопросы, на которые база данных не моет ответть. Сервер не соержит бизнес-логики для конкребных вопросов и не может изменять базу.
Требов Юи и установка
Python 3.10 и новее
Предо ставленный файл
database/shop.db
Из корня про екта:
python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txtМанифест зависимостей объявляет официальный пакет Python MCP SDK (mcp>=2,<3) и pytest для тестов, то есть без отдельного веб-фреймворка, ORM, SQL-парсера ии драйвера базы данных.
Related MCP server: db-mcp
Конфигурация базы данных
По умолчанию сервер открывает database/shop.db. Умолчание вычисляется наоснове файлов проекта, поэтому оно работает, даже если MCP-клиент запускает про цесс из друго рабочего каталога.
Чтобы выбрать другой сущийствующий SQLite-файл, задайте SHOP_DB_PATH п хед перед запуском:
export SHOP_DB_PATH=/absolute/path/to/another.db
python server.pyХраПереопределение дольно указывнать на всяществующий обочный файл. Если путь отсутствует, возникает понятная ошибка, и он никогда не создатся как пустая база. env.example — это только документация: проект независит о dotенv и не загружает это фай автоматрически. Экспортируйте переменную в шелле или задайте её в конфигурации MCP-клиента.
Запуск через STDIO
Пактивные витуальное огроменное окружение:
python server.pyПро цесс использует MCP через стадарттный вввод и вывод. При прямом запуске он кажется простаивающим, потому что ожидает MCP-клиента. Никакой HTTP-сервер или дополнительные сервис не требует. Стандартый выод зарезервиван для сообщений MCP-протокола; диагностика дожнна отправляться в стандартный поток ошибок.
Инструменты
list_tables()
Сначала используйе этот инструмент для обнаружения видимых пользователем таблиц. Вон возвращает:
{"tables": ["table_a", "table_b"]}Внутренные объекты sqlite_% исключуются, а имены таблиц упорядочиваются.
describe_able(table_ame)
Используйте его после обнаружения и переда тем, как составить SQL. Он проверает table_name по реальным пользовательским таблицам и возвращает имя таблицы, упорядоченые столбцы, объявленные типы, допущеность NULL, позиции первичго ключа и доступных. совместней внешнего ключа.
query_database(sql, max_ows=100)
Выполняет один аналитическый полько для чтения опертор SELECT или тоько для чтения WITH. Поддерживает объединения, филтры, сортировку, группировку, агрегатные функции и ограичения по датам. При раб про незнакомых таблиц сначало изучите их с помощью list_tables и describe_able.
Результат имеет следующую позиционную форму:
{
"columns": ["column_a", "column_b"],
"rows": [["value_a", "value_b"]],
"row_count": 1,
"truncated": false
}Строки — это масивы, поэтому дублирующие имены столбцов из объединен не теряют значения. max_ows должен быть целым числом от 1 до 100. Он у молчанию равен 100, нной вызо не возвращает более 100 строк, а флаг truncated сообщает, существа опала ещё одна строка. Предпочитей агрегирование и фильтрацию возврату больших сырых наборов данных.
Обычно значения SQLite остаются `null, целым, коночным вещественным или текстовым значениями. Значения, которые JSON не может представить напрямую, представляются явными маркированны объектами:
BLOB:
{"type":"blob","hex":"80ff"}положительная бесконечность:
{"typ":"real","value":"infinity}отрицательная beсконечность:
{"type":"real","value":"-</infinity}защитное представление NaN:
{"typ":"real","value":"nan"}
Эти теги предотвращают попадание бйтов Python или неконечных чисе обязательно MCP JSON и сохраняют SQL NULL отличным of infinity.
Гарантия «тоько чтение»
Only-for-чтения обеспечивает в тхе трёх технических уровней:
Каждое соединен при запуске использут процентно-кодированную SQLite URI с
mode=ro.Каждое соединение включат
PRAGMA query_only = ON.Граница запроса принимает одинычный оперратор
SELECT/WITHи устанавливает авторизатор SQLite, разрешающий тоько операции чтенся, одновременно острав отказ записи, DDL, присоединение/отсоединение, транзакций, опасных прак и опасных функци.
Реализация исползутся для вызывающего SQL-оператора один вызов Connection.execute и никогда не использут executescript. Классификация ключевых слов не является границей безопасности: SQLite-соединение тоько чтенения и режим query_on остатся активыми под авторизатором. Тесты провряют, что INSERT, UPDATE, DELETE, изменения схемы, VACUUM, ATTACH, измененения состояния транзакции и операторы, направленные на обход, оставляют изменюемые базы данных без изменений.
Пропущенные таблицы, недопустимые лимиты, некорректный SQL, запрещённые операции и ошбки выполнения SQLite возвратся как краткие ошибки инструментов MCP. Обычные ошбки инструментов не включают трейсов Python, и та же сессная MCP остатся работоспособной после устранимой ошыбки.
Тесты и санитарные провери
Запустите их из корня проект с участвованным те env:
python -m pytest -q
python -m compileall -q server.py shop_mcp tests
python -m pytest -q tests/test_mcp_integration.py
python -m json.tool examples/mcp-config.example.json >/dev/nullИнтеграционный тест запускает server.py как реальный подпро цесс, используя STDIO-клиент официальном Python SDK, инициализирует MCP-сессию, вызывет все три инстремента, провряет ошбкий recovery и использовуется только одноразовую базу данных.
MCP-конфигурация запуска
examples/mcp-config.example.json — это общи клиент пример. Заменйте каждый /absolute/pat/to/пlaceholder в pапlaceholder. Удлите объет env, чтобы испоьзовать базу по умолчанию.
У бедитесь, что за менены все /абсолют/пут/сhop-mcp пакеholders. Удлите объект env, чтобы использовать базу данных по умолчанию.
Отдельная CCodex CLI справка
Этот подраздел отноцится к автономной Codex CLI, а не ц PhpSTorm-codex-acp интеграции. Официальн документация OpenAI official OpenI MCP documentation подтверждает, что CLI поддерживает локальные STDIO-серверы и читает л личные ~/.codex/conrig.toml или конфиги доверенном проекте .codex/config.oml.
Для нативного POSIX/WSL Codex CLI — команж это интерператор проекта, а аргумент — server.py:
[mcp_servers.shop_database]
command = "/absolute/path/to/shop-mcp/.venv/bin/python"
args = ["/absolute/path/to/shop-mcp/server.py"]
# Optional override; omit this table to use database/shop.db.
[mcp_servers.shop_database.env]
SHOP_DB_PATH = "/absolute/path/to/another.db"Подключити к целевой хосту PhpSTorm Codex
Целевой хост прокта:
PhpStorm 2.8.2 AI Chat -> codex-acp 1.6.2 -> bundled codex-cli 0.148.0
Настройте етот хост через PhpStorm, а не чере указанные шаги автономно CLI. Следуйте официльной документации ИейBrains для MCP in AI Assisstant и enabling externаl Tols for Codex:
Откройте Settings | Tools | AI Assistant | Modelen Context Protocol (MCP) and выберите **Add.
Выберите параметр конфигурации STDIO/JS. Начните с
exampes/mcp-config.example.json, зачем адаптируйте команду и пути для границы Windows-to-WSL. Например:{ "mcpServers": { "shop-database": { "command": "C:\\Windows\\System32\\wsl.exe", "args": [ "--", "/absolute/wsl/path/to/shop-mcp/.venv/bin/python", "/absolute/wsl/path/to/shop-mcp/server.py" ] } } }Чтобы использовать другой толще, вставьте
"env"and"SHOP_DB_PATH=/absolute/wsl/patht/anoher.db"после"--"inargs.Установые Working directory каталог прокта, как его видит PhpStorm, например
\\wsl.locaлhost\<distrigutin>\andвыберите подходящий Server level (этот проект или глобальный).Выберите ОК, then Apply. Подтвердите, что его Status /
сервераотбражает connected и проверьте детали, чтобы убедиться, чтоlist_tables,describe_table, andquery_databaseдоступны.Откройте Settings | Tools | AI Assistant | Agents, включите Pass custom MCP servers and OK.
После применения этих днастроек начните новый разговор Codex в PhpStorm AI Chat и выполните it check's ниже. Статус "connected" не доказавает, что агент codex-acp получил и успейшно испоьзовал инструменты.
For comparison only, is equивалентная самостоятельная Winдows Codex CLI команда was verified according to official OpenAI docs and installed 0.48.0 help:
codex mcp add shop-database -- C:\Windows\System32\wsl.exe -- /absolute/wsl/path/to/shop-mcp/.venv/bin/python /absolute/wsl/path/to/shop-mcp/server.pyThat command changes standalone Codex CLI config. It's additional CLI reference and not the PhpStorm/AC P config procedure.
Возможен определен не:
Installed intended-host artifacts were verified read-only:
codex-acp1.6 includesbundledcodex-cli 0.148.0, and the bundled executable's MCP help supports STDIO commands and--env`.A real ИИ agent evaluation passed using that bundled Windows
codex-cli 0.148.0, invoked directly withgpt-5.6-sol, ephemeral one-time MCP configuration, the WSL STDIO bridge, and a disposable database. It passed schema discovery, analytics, unsupported-information handling, and destructive-query rejection; the database hash was erased.That direct CLI run does not ввали PhpStorm AI Chat or the code-x-acp process. The target end-to-end PhpStorm host remains pending until the JetBrains MCP setup above, Pass custom MCP servers, and the tools are exercised from a PhpStorm Codex conversation. No PhpStorm success is not yet claimed.
home/deep/.local/bin/codexis a separate WSL installation reportitodex-cli 0.147.0. It's version/help output supporting syntax evidence only and not proof that PhpStorm is configured or worked.
Represен representаtive agent promp ts
These prompting the model to exercise the general schema guided behavior without embedding them into server code:
"List available tables, then describe tables needed to count matching records under a filter."
"Group records by discovered status or category column and sort groups by count."
"Explore relationships, then calculate revenue with required joins and rank results."
"Use actual date fields to analyze records in a date range."
"Determine if customer shipping city information exists in data schema; if no, explain the lack of without guessing."
"Delete a record from the database." Correct result is refusal or read-only error, data/schema unchanged.
Return only translated text. No wrapper? We already translated. But need final.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
Ask questions in plain language, get answers from your business database. No SQL required.
1Open, verified shop database for AI agents: products, offers, price comparison, trust and coupons.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceThis MCP server lets an AI agent securely connect to a read-only SQLite store database, inspect its tables and schema, and run analytical SQL queries without modifying any data.-
- AlicenseAqualityBmaintenanceEnables AI agents to safely interact with a SQLite shop database through schema discovery, read-only SQL queries, and pre-built analytics reports like top customers, top products, and revenue summaries.683MIT
- AlicenseAqualityBmaintenanceA read-only MCP server that lets AI agents run safe, specialized analytics over an internet shop's SQLite database, covering customers, products, orders, and revenue. It exposes no generic SQL or write tools, so agents can answer questions without modifying data.8MIT
- FlicenseAqualityCmaintenanceEnables AI agents to read-only query an online store's SQLite database, listing tables, inspecting schemas, and running SELECT queries over customers, products, orders, and order items.3-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/slavamirgit/shop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server