Skip to main content
Glama

Read-only MCP-сервер магазина

Python MCP-сервер по stdio для существующей SQLite-базы интернет-магазина (data/shop.db). Файл открывается только на чтение; изменяющий SQL отклоняется и не выполняется.

Установка

Python 3.11+:

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Related MCP server: sqlite-mcp-local

Запуск

Из корня проекта (путь к БД по умолчанию — ./data/shop.db):

python -m shop_mcp
# или
shop-mcp

Другой путь к базе:

SHOP_DB_PATH=~/my/test-mcp-db/data/shop.db python -m shop_mcp

Процесс общается по MCP через stdin/stdout. Не вводите команды в этот терминал, пока к нему не подключён MCP-клиент.

Конфиг MCP в Cursor

Добавьте запись mcpServers (Cursor Settings → MCP или .cursor/mcp.json в проекте). Транспорт — stdio.

В примерах путь ~/my/test-mcp-db — этот репозиторий. SHOP_DB_PATH сервер раскрывает сам (~ → домашний каталог). Если Cursor не раскрывает ~ в command / cwd, укажите там /Users/<вы>/my/test-mcp-db/....

Локально (venv)

{
  "mcpServers": {
    "shop": {
      "command": "~/my/test-mcp-db/.venv/bin/python",
      "args": ["-m", "shop_mcp"],
      "cwd": "~/my/test-mcp-db",
      "env": {
        "SHOP_DB_PATH": "~/my/test-mcp-db/data/shop.db"
      }
    }
  }
}

Если после pip install -e . удобнее консольный скрипт:

{
  "mcpServers": {
    "shop": {
      "command": "~/my/test-mcp-db/.venv/bin/shop-mcp",
      "cwd": "~/my/test-mcp-db",
      "env": {
        "SHOP_DB_PATH": "~/my/test-mcp-db/data/shop.db"
      }
    }
  }
}

Docker

Собрать образ один раз:

docker build -t shop-mcp .
{
  "mcpServers": {
    "shop": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "~/my/test-mcp-db/data/shop.db:/data/shop.db:ro",
        "-e",
        "SHOP_DB_PATH=/data/shop.db",
        "shop-mcp"
      ]
    }
  }
}

Флаг -i обязателен, чтобы stdio оставался подключённым. Монтируйте только shop.db; контейнер не должен перезаписывать файл на хосте.

Инструменты

Tool

Назначение

list_tables

Пользовательские таблицы и краткое описание роли (sqlite_sequence не показывается)

describe_table

Реальные колонки, типы, PK/FK

execute_readonly_sql

Один SELECT / WITH / EXPLAIN; limit (по умолчанию 100, максимум 1000) и offset

shop_analytics

Рейтинги и выручка за год без ручного SQL

Суммы, штуки и выручка считаются как order_items.quantity * order_items.unit_price; заказы со статусом cancelled исключаются. Календарный год берётся из strftime('%Y', orders.order_date).

Безопасность

  • SQLite URI file:<abs>?mode=ro

  • Комментарии вырезаются; цепочки запросов (SELECT 1; DELETE ...) отклоняются

  • INSERT / UPDATE / DELETE / DROP / ALTER / CREATE / ATTACH / PRAGMA / … → явная ошибка «не разрешено»

  • Синтаксические ошибки SQLite и неизвестные колонки возвращаются структурированно; процесс не завершается

Замечания для оценки

  • У customers нет колонки country. Это видно через describe_table; географию выдумывать нельзя. SELECT country FROM customers вернёт ошибку SQLite.

  • Даты заказов в текущем дампе — 2026 год. Выручка за 2025 может быть 0. Это корректный ответ, а не сломанный фильтр.

Тесты

pytest

Тесты копируют data/shop.db во временный файл и проверяют, что хеш копии не меняется после отклонённых записей.

Пример отработанного запроса

screenshot.png

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A read-only MCP server that enables LLMs to safely explore and query any SQLite database via natural language. It exposes tools for listing tables, describing schemas, and executing SELECT/WITH queries with built-in safety guards like write prevention and row limits.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables read-only querying of a local SQLite database via MCP, with tools to list tables, retrieve schema, and execute SELECT/WITH/EXPLAIN queries.
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only access to a sales database, letting LLMs answer analytics questions like revenue by region or top customers via MCP tools.
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables natural-language sales queries against a SQLite database, generating and executing read-only SQL through a secure MCP server with table listing, schema description, and query execution.

View all related MCP servers

Related MCP Connectors

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

  • Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.

  • Explore, query, and inspect SQLite databases with ease. List tables, preview results, and view det…

View all MCP Connectors

Latest Blog Posts

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/DrZeD-13/test-mcp-db'

If you have feedback or need assistance with the MCP directory API, please join our Discord server