shop
Servidor MCP de solo lectura para la tienda
Servidor MCP de Python para stdio de una base de datos SQLite existente de tienda en línea (data/shop.db). El archivo se abre únicamente en modo lectura; cualquier SQL que la modifique se rechaza y no se ejecuta.
Instalación
Python 3.11+:
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"Related MCP server: sqlite-mcp-local
Ejecución
Desde la raíz del proyecto (la ruta por defecto de la base de datos es ./data/shop.db):
python -m shop_mcp
# или
shop-mcpOtra ruta a la base de datos:
SHOP_DB_PATH=~/my/test-mcp-db/data/shop.db python -m shop_mcpEl proceso se comunica por MCP a través de stdin/stdout. No introduzca comandos en este terminal mientras hasta que un cliente MCP esté conectado a él.
Config MCP en Cursor
Añada la entrada mcpServers (Cursor Settings → MCP ou .cursor/mcp.json en el proyecto). El transporte es stdio.
En los ejemplos, la ruta ~/my/test-mcp-db — es este repositorio. El servidor expande SHOP_DB_PATH por sí mismo (~ → directorio personal). Si Cursor no expande ~ en command / cwd, indique allí /Users/<вы>/my/test-mcp-db/....
Localmente (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"
}
}
}
}Si tras pip install -e . prefiere un script de consola:
{
"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
Construya la imagen una sola vez:
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"
]
}
}
}El flag -i es obligatorio para que stdio permanezca conectado. Montedir solo shop.db; el contenedor no debe sobrescribir el archivo en el host.
Herramientas
Tool | Propósito |
| Tablas de usuario y una breve descripción de su rol ( |
| Columnas reales, tipos, PK/FK |
| Una sola consulta |
| Clasificaciones y ingresos por año sin SQL manual |
Los importes, las unidades y los ingresos se calculan como order_items.quantity * order_items.unit_price; los pedidos con estado cancelled se descartan. El año natural se toma de strftime('%Y', orders.order_date).
Seguridad
SQLite URI
file:<abs>?mode=roLos comentarios se eliminan; las cadenas de consultas (
SELECT 1; DELETE ...) se rechazan.INSERT / UPDATE / DELETE / DROP / ALTER / CREATE / ATTACH / PRAGMA / … → error explícito «no permitido».
Los errores de sintaxis de SQLite y las columnas desconocidas se devuelven de forma estructurada; el proceso no se detiene.
Notas para la evaluación
La tabla
customersno tiene columnacountry. Esto se ve a través dedescribe_table; la geografía no se debe inventar.SELECT country FROM customersdevolverá un error de SQLite.Las fechas de los pedidos en el volcado actual son de 2026. Los ingresos de 2025 pueden ser 0. Esa es una respuesta correcta, no un filtro roto.
Pruebas
pytestLas pruebas copian data/shop.db a un archivo temporal y verifican que el hash de la copia no cambia después de rechazar escrituras.
Ejemplo de consulta procesada

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 Servers
- AlicenseNot gradedqualityCmaintenanceA 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
- FlicenseNot gradedqualityBmaintenanceEnables read-only querying of a local SQLite database via MCP, with tools to list tables, retrieve schema, and execute SELECT/WITH/EXPLAIN queries.
- FlicenseNot gradedqualityCmaintenanceProvides read-only access to a sales database, letting LLMs answer analytics questions like revenue by region or top customers via MCP tools.
- FlicenseNot gradedqualityCmaintenanceEnables 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.
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…
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/DrZeD-13/test-mcp-db'
If you have feedback or need assistance with the MCP directory API, please join our Discord server