facturas-mcp
facturas-mcp
Сервер MCP только для чтения, чтобы задавать Claude Desktop вопросы о DWH.facturas.
Как это работает
Claude Desktop запускает этот сервер локально (отдельный процесс, общение через stdio).
Сервер подключается к SQL Server, используя логин только для чтения (
mcp_readonly), у которого есть толькоGRANT SELECTнаDWH.facturas. Это разрешение живёт в базе данных, а не в этом коде -- оно и есть реальный барьер безопасности.Предоставляет два инструмента:
listar_columnas_facturas: чтобы Claude обнаруживал колонки перед написанием SQL.consultar_facturas: выполняетSELECTтолько для чтения кDWH.facturas.
Related MCP server: MSSQL Database MCP Server
Шаг 1 -- Создать ограниченный логин в SQL Server
Запустите setup-db-login.sql ОДИН РАЗ, под пользователем с правами администратора
на базе данных. Измените пример пароля перед выполнением.
Шаг 2 -- Настроить учётные данные этого сервера
Создайте файл .env в этой папке (в git он не попадает) с:
MSSQL_SERVER=sintesiserp.com
MSSQL_DATABASE=Diverxamotos_4_2
MSSQL_USER=mcp_readonly
MSSQL_PASSWORD=la-contrasena-que-pusiste-en-el-paso-1Шаг 3 -- Зарегистрировать сервер в Claude Desktop
Откройте claude_desktop_config.json (в Windows: %APPDATA%\Claude\claude_desktop_config.json)
и добавьте это внутрь "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"
}
}
}
}Полностью закройте Claude Desktop и откройте его снова, чтобы он загрузил новый сервер.
Шаг 4 -- Проверить
В Claude Desktop спросите что-то вроде: «Сколько я продал сегодня по данным DWH.facturas?»
Добавление ещё одной таблицы позже
В SQL Server:
GRANT SELECT ON DWH.otratabla TO mcp_readonly;В
src/index.ts: добавьте"DWH.OTRATABLA"в массивALLOWED_TABLESи, при желании, инструментlistar_columnas_otratablaпо аналогии с уже существующим.npm run buildи перезапустите Claude Desktop.
Удалённый режим (Render) -- чтобы несколько человек могли использовать его из Claude.ai
По умолчанию сервер работает в режиме stdio (локально, один процесс на пользователя,
запускается Claude Desktop). Чтобы несколько человек могли использовать его из Claude.ai
без установки чего-либо, его можно развернуть как HTTP-сервис на Render. Тот же dist/index.js
подходит для обоих режимов -- переключателем служит переменная окружения MCP_TRANSPORT.
Важно: в HTTP-режиме единственной защитой базы данных по-прежнему остаётся логин
только для чтения, но сам MCP-сервер оказывается доступен по публичному URL.
Поэтому HTTP-режим требует токен (MCP_AUTH_TOKEN) -- без него процесс вообще
не запустится. Любой, у кого есть URL и токен, может выполнять SELECT к
DWH.facturas, поэтому относитесь к этому токену как к паролю: не публикуйте его,
не загружайте в git и меняйте его, если он утёк.
Шаг 1 -- Сгенерировать надёжный токен
Например, с помощью PowerShell:
-join ((48..57)+(65..90)+(97..122)|Get-Random -Count 40|%{[char]$_})Сохраните это значение -- это ваш MCP_AUTH_TOKEN.
Шаг 2 -- Создать Web Service в Render
Загрузите этот проект в репозиторий GitHub (
node_modulesиdistдолжны быть вне репозитория -- они уже в.gitignore-- Render сам выполнитnpm installиnpm run build).В Render: New -> Web Service, подключите репозиторий.
Build Command:
npm install && npm run buildStart Command:
npm startEnvironment variables (вкладка 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 определяет
PORTавтоматически -- добавлять его не нужно.)Deploy. Когда завершится, Render выдаст URL вида
https://facturas-mcp.onrender.com.
Шаг 3 -- Проверить, что сервер отвечает
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"}}}'Если он отвечает serverInfo и capabilities, сервер жив и принимает токен.
Без правильного заголовка Authorization он должен ответить 401.
Шаг 4 -- Подключить его из Claude.ai / Claude Desktop
В Claude.ai (или в свежей версии Claude Desktop): Settings -> Connectors -> Add custom connector,
и укажите URL https://facturas-mcp.onrender.com/mcp с заголовком аутентификации
Authorization: Bearer <ваш MCP_AUTH_TOKEN> (точный интерфейс может отличаться
в зависимости от версии Claude -- ищите опцию удалённого MCP-сервера / custom connector).
Примечание: бесплатный план Render «усыпляет» сервис после бездействия -- первый запрос после «сна» может отвечать несколько секунд.
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