Skip to main content
Glama
josecarlos3390

SAP HANA MCP License Server

SAP HANA MCP License Server

Backend independiente para emitir y validar licencias de MCP servers SAP. Soporta múltiples productos: hana-b1, sap-btp, sap-cpi.

Qué hace

  • Emite claves de licencia cortas y alfanuméricas (ABCD-EFGH-IJKL-MNOP) vinculadas a un hardware ID.

  • Valida online que la clave exista, no esté vencida, no esté revocada y corresponda al HWID.

  • Almacena productos, licencias y telemetría en PostgreSQL.

  • Diseñado para correr gratis en Railway + Neon.

Related MCP server: MCP RifaExpress Backend

Flujo de uso

  1. El cliente ejecuta npm run hwid y obtiene su hardware ID.

  2. Te envía el HWID.

  3. Tú generas la licencia llamando POST /admin/licenses con el HWID y los días.

  4. Le envías la clave alfanumérica generada.

  5. El cliente configura HANA_LICENSE_KEY=<clave> en el MCP.

  6. El MCP valida la clave contra este servidor en cada arranque.

Requisitos

  • Node.js >= 18

  • PostgreSQL (recomendado Neon gratis)

Instalación local

cd sap-hana-mcp-license-server
cp .env.example .env
# Edita .env con tu DATABASE_URL y ADMIN_API_KEY
npm install
npm run db:init
npm run dev

Variables de entorno

Variable

Descripción

Default

PORT

Puerto del servidor

3000

DATABASE_URL

URL de PostgreSQL

ADMIN_API_KEY

API key para endpoints de administración

DEFAULT_PRODUCT_CODE

Código de producto por defecto

hana-b1

DEFAULT_PLAN

Plan por defecto

professional

DEFAULT_LICENSE_DAYS

Días por defecto

30

NODE_ENV

Entorno

production

Endpoints

Públicos

POST /api/license/validate

Valida una licencia.

Body:

{
  "license_key": "ABCD-EFGH-IJKL-MNOP",
  "hwid": "a1b2c3...",
  "product_code": "hana-b1"
}

Respuesta válida:

{
  "active": true,
  "license_key": "ABCD-EFGH-IJKL-MNOP",
  "hwid": "a1b2c3...",
  "product_code": "hana-b1",
  "plan": "professional",
  "features": ["hana", "knowledge-base"],
  "expires_at": "2026-08-28T12:00:00.000Z",
  "message": "License valid"
}

Administración (requiere header X-API-Key)

POST /admin/licenses

Crea una licencia.

Body:

{
  "hwid": "a1b2c3...",
  "days": 30,
  "product_code": "hana-b1",
  "plan": "professional"
}

GET /admin/licenses

Lista todas las licencias.

POST /admin/licenses/:license_key/revoke

Revoca una licencia.

POST /admin/licenses/:license_key/activate

Reactiva una licencia revocada.

Deploy a Railway

  1. Crea un proyecto en Railway.

  2. Conecta este repositorio.

  3. Configura las variables de entorno (DATABASE_URL, ADMIN_API_KEY, etc.).

  4. Railway detectará el package.json y ejecutará npm start.

Deploy a Render (free tier)

  1. En Render, crea un New Web Service y conecta este repositorio.

  2. Configura:

    • Build Command: npm install

    • Start Command: npm start

    • Environment: agrega DATABASE_URL, ADMIN_API_KEY, DEFAULT_PRODUCT_CODE, etc.

  3. Render te dará una URL como https://licencias-mcp.onrender.com.

Mantener el servicio despierto en Render

El tier gratuito de Render duerme el servicio tras 15 minutos de inactividad. Para evitarlo, configura un monitor de uptime que haga ping cada 10-14 minutos:

  • Endpoint ligero: GET /ping → responde pong.

  • También puedes usar GET /health si prefieres JSON.

UptimeRobot: crea un monitor tipo HTTP(s) apuntando a https://tu-app.onrender.com/ping con intervalo de 14 minutos.

Generar una licencia (ejemplo con curl)

HWID=$(node scripts/get-hwid.js)
curl -X POST https://tu-app.railway.app/admin/licenses \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $ADMIN_API_KEY" \
  -d "{\"hwid\":\"$HWID\",\"days\":30}"

Administración de licencias

Para operaciones de administrador (listar, revocar, transferir licencias entre máquinas, etc.), consulta la guía de administración.

F
license - not found
-
quality - not tested
B
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

  • F
    license
    A
    quality
    -
    maintenance
    An MCP server designed to interact with the RifaExpress backend via PostgreSQL database queries and REST API integrations. It enables users to manage core entities like companies, users, and plans while providing tools for database schema inspection and health monitoring.
    Last updated
    8
  • A
    license
    -
    quality
    D
    maintenance
    A production-ready MCP server that enables safe, read-only SQL SELECT queries against PostgreSQL databases with built-in security validation. It features connection pooling, automatic row limits, and structured logging to ensure secure and reliable database interactions.
    Last updated
    33
    ISC
  • A
    license
    A
    quality
    A
    maintenance
    Production-ready MCP server that enables AI assistants to seamlessly interact with SAP Datasphere environments for real tenant data discovery, metadata exploration, analytics operations, ETL data extraction, database user management, data lineage analysis, and column-level data profiling.
    Last updated
    39
    274
    40
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for InsForge BaaS — database, storage, edge functions, and deployments

  • A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready

  • MCP server for managing Prisma Postgres.

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/josecarlos3390/licencias-mcp'

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