facturas-mcp
facturas-mcp
Servidor MCP de solo lectura para preguntarle a Claude Desktop sobre DWH.facturas.
Como funciona
Claude Desktop lanza este servidor localmente (proceso propio, se comunica por stdio).
El servidor se conecta a SQL Server usando un login de solo lectura (
mcp_readonly) que unicamente tieneGRANT SELECTsobreDWH.facturas. Ese permiso vive en la base de datos, no en este codigo -- es la barrera real de seguridad.Expone dos herramientas:
listar_columnas_facturas: para que Claude descubra las columnas antes de escribir SQL.consultar_facturas: ejecuta unSELECTde solo lectura contraDWH.facturas.
Related MCP server: MSSQL Database MCP Server
Paso 1 -- Crear el login restringido en SQL Server
Corre setup-db-login.sql UNA VEZ, con un usuario que tenga permisos de administracion
sobre la base de datos. Cambia la contrasena de ejemplo antes de ejecutarlo.
Paso 2 -- Configurar las credenciales de este servidor
Crea un archivo .env en esta carpeta (no se sube a git) con:
MSSQL_SERVER=sintesiserp.com
MSSQL_DATABASE=Diverxamotos_4_2
MSSQL_USER=mcp_readonly
MSSQL_PASSWORD=la-contrasena-que-pusiste-en-el-paso-1Paso 3 -- Registrar el servidor en Claude Desktop
Abre claude_desktop_config.json (en Windows: %APPDATA%\Claude\claude_desktop_config.json)
y agrega esto dentro de "mcpServers":
{
"mcpServers": {
"facturas": {
"command": "node",
"args": ["C:\\Users\\Developer-07\\Documents\\DESARROLLO\\facturas-mcp\\dist\\index.js"],
"env": {
"MSSQL_SERVER": "sintesiserp.com",
"MSSQL_DATABASE": "Diverxamotos_4_2",
"MSSQL_USER": "mcp_readonly",
"MSSQL_PASSWORD": "la-contrasena-que-pusiste-en-el-paso-1"
}
}
}
}Cierra Claude Desktop por completo y vuelve a abrirlo para que cargue el servidor nuevo.
Paso 4 -- Probarlo
En Claude Desktop, pregunta algo como: "¿Cuánto vendí hoy según DWH.facturas?"
Agregar otra tabla despues
En SQL Server:
GRANT SELECT ON DWH.otratabla TO mcp_readonly;En
src/index.ts: agrega"DWH.OTRATABLA"al arregloALLOWED_TABLES, y opcionalmente una toollistar_columnas_otratablaigual a la que ya existe.npm run buildy reinicia Claude Desktop.
Modo remoto (Render) -- para que varias personas lo usen desde Claude.ai
Por defecto el servidor corre en modo stdio (local, un proceso por usuario, lanzado
por Claude Desktop). Para que varias personas lo usen desde Claude.ai sin instalar nada,
se puede desplegar como servicio HTTP en Render. El mismo dist/index.js sirve para
los dos modos -- el switch es la variable de entorno MCP_TRANSPORT.
Importante: en modo HTTP la unica proteccion de la base de datos sigue siendo el
login de solo lectura, pero el servidor MCP en si queda expuesto en una URL publica.
Por eso el modo HTTP exige un token (MCP_AUTH_TOKEN) -- sin el, el proceso ni siquiera
arranca. Cualquiera con la URL y el token puede ejecutar SELECT contra
DWH.facturas, asi que trata ese token como una contrasena: no lo publiques, no lo
subas a git, y rotalo si se filtra.
Paso 1 -- Generar un token fuerte
Por ejemplo, con PowerShell:
-join ((48..57)+(65..90)+(97..122)|Get-Random -Count 40|%{[char]$_})Guarda ese valor -- es tu MCP_AUTH_TOKEN.
Paso 2 -- Crear el Web Service en Render
Sube este proyecto a un repositorio de GitHub (necesitas
node_modulesydistfuera del repo -- ya estan en.gitignore-- Render correnpm installynpm run buildel solo).En Render: New -> Web Service, conecta el repo.
Build Command:
npm install && npm run buildStart Command:
npm startEnvironment variables (pestaña Environment):
MCP_TRANSPORT=http MCP_AUTH_TOKEN=<el token del paso 1> MSSQL_SERVER=sintesiserp.com MSSQL_DATABASE=Diverxamotos_4_2 MSSQL_USER=mcp_readonly MSSQL_PASSWORD=<la contrasena del login de solo lectura>(Render define
PORTautomaticamente -- no hace falta agregarla.)Deploy. Cuando termine, Render te da una URL tipo
https://facturas-mcp.onrender.com.
Paso 3 -- Probar que el servidor responde
curl https://facturas-mcp.onrender.com/health
# {"status":"ok"}
curl -X POST https://facturas-mcp.onrender.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer <tu MCP_AUTH_TOKEN>" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'Si responde con serverInfo y capabilities, el servidor esta vivo y aceptando el token.
Sin el header Authorization correcto debe responder 401.
Paso 4 -- Conectarlo desde Claude.ai / Claude Desktop
En Claude.ai (o Claude Desktop reciente): Settings -> Connectors -> Add custom connector,
y registra la URL https://facturas-mcp.onrender.com/mcp con el header de autenticacion
Authorization: Bearer <tu MCP_AUTH_TOKEN> (la UI exacta puede variar segun la version
de Claude -- busca la opcion de servidor MCP remoto / custom connector).
Nota: el plan free de Render "duerme" el servicio tras inactividad -- el primer request tras el sueño puede tardar unos segundos en responder.
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 gradedqualityDmaintenanceEnables AI assistants to connect and query Microsoft SQL Server databases using natural language, executing read-only SQL queries for safe data inspection and analysis.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to securely interact with Microsoft SQL Server databases to query data, inspect schemas, and retrieve metadata with read-only operations by default and optional write capabilities.1MIT
- FlicenseAqualityDmaintenanceEnables natural language to SQL queries on MSSQL databases via Claude, with safe SELECT-only execution and schema discovery.3
- AlicenseNot gradedqualityDmaintenanceProvides secure SQL Server database access, allowing users to list tables and execute SQL queries through natural language in Claude Desktop.MIT
Related MCP Connectors
Run SOQL queries to explore and retrieve Salesforce data. Access accounts, contacts, opportunities…
Chile DTE for AI agents - boleta/factura electronica via OpenFactura or LibreDTE. Stateless BYO.
Colombia DIAN factura electronica: AI agents issue and query e-invoices, stateless BYO.
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/Andres2009/MCP-SIDECIL'
If you have feedback or need assistance with the MCP directory API, please join our Discord server