igrid-sce-mcp-tool
igrid-sce-mcp-tool v4 — Read / Write / Admin
Capa de integración MCP en Node.js/JavaScript para las API REST existentes de iGrid-Prometheus. El backend de iGrid y la división existente de ocho herramientas no cambian; esta versión añade autorización basada en roles de SAP BTP XSUAA a nivel de herramienta MCP.
Modelo de autorización
El proyecto ahora define tres ámbitos de XSUAA, tres plantillas de roles y tres colecciones de roles predefinidas:
Colección de roles | Plantilla de roles | Ámbitos | Operaciones MCP permitidas |
|
|
| Solo herramientas GET/lectura |
|
|
| Solo herramientas POST/escritura |
|
|
| Las ocho herramientas |
La autorización se verifica dentro del toolHandler común de MCP antes de cualquier solicitud a la API de iGrid descendente. Un usuario sin el ámbito requerido recibe un error de herramienta MCP Forbidden:.
Related MCP server: agent-sudo-mcp
Exactamente 8 herramientas MCP
Grupo Bearer — src/tools/bearer-tools.js
igrid_list_domains→GET /api/hub/datasets→ Read/Adminigrid_get_template→GET /api/hub/template/:domain→ Read/Adminigrid_run_agent→POST /api/ai/run→ Write/Adminigrid_propose_action→POST /api/ai/action/propose→ Write/Adminigrid_decide_action→POST /api/ai/action/decide→ Write/Adminigrid_metrics→GET /api/ai/metrics→ Read/Admin
Grupo x-api-key — src/tools/api-key-tools.js
igrid_ingest_csv→POST /api/ingest/:domain→ Write/Adminigrid_export_csv→GET /api/export/:domain→ Read/Admin
igrid_propose_action está clasificada intencionalmente como Write porque la regla de autorización solicitada se basa en la operación HTTP real y esta herramienta utiliza POST.
No se expone ninguna herramienta MCP igrid_health. /healthz sigue siendo solo el endpoint de salud de la aplicación.
El comportamiento existente de iGrid descendente no cambia
Seis herramientas continúan usando la sesión Bearer/servicio de iGrid.
igrid_ingest_csvyigrid_export_csvcontinúan usando el canalx-api-keyde iGrid.No se introduce ningún servicio Destination o Connectivity.
No se codifican credenciales ni secretos.
Archivos importantes
xs-security.json XSUAA scopes, role templates, role collections
src/auth/xsuaa.js XSUAA authentication + OAuth metadata
src/auth/authorization.js Read/Write/Admin authorization checks
src/context/auth-context.js Per-request auth context propagation
src/tools/response.js Common MCP tool-level enforcement
src/tools/bearer-tools.js 6 Bearer tools and permission mapping
src/tools/api-key-tools.js 2 x-api-key tools and permission mappingEntorno
IGRID_BASE_URL=https://igrid-prometheus.azurewebsites.net
IGRID_API_KEY=<IGRID_API_KEY>
IGRID_BEARER_TOKEN=<optional pre-issued iGrid Bearer>
IGRID_SERVICE_EMAIL=<optional approved iGrid service email>
IGRID_SERVICE_PASSWORD=<optional approved iGrid service password>
IGRID_MFA_CODE=<optional MFA code>
IGRID_MFA_BODY_JSON=<approved MFA JSON body using {{code}}>
IGRID_REQUEST_TIMEOUT_MS=30000
MCP_TRANSPORT=http
MCP_HOST=0.0.0.0
MCP_PORT=8080
MCP_PATH=/mcp
# Local stdio / local HTTP test authorization only.
# Ignored for a hosted request authenticated through XSUAA.
MCP_LOCAL_ROLE=Admin
MCP_HTTP_AUTH_TOKEN=Para las herramientas Bearer, se prefiere un IGRID_BEARER_TOKEN emitido previamente. Si no está presente, el gestor de tokens existente puede usar el contrato de inicio de sesión/MFA de iGrid aprobado cuando se proporcione la configuración MFA requerida.
Compilación
npm install
npm run check
npm run security:check
npm test
npx mbt build -t mta_archivesDespliegue en BTP
cf login
cf target -o <ORG> -s <SPACE>
cf deploy mta_archives/igrid-sce-mcp-tool_4.0.0.mtar -fEstablecer los secretos de iGrid después del despliegue:
cf set-env igrid-sce-mcp-tool IGRID_API_KEY '<IGRID_API_KEY>'
cf set-env igrid-sce-mcp-tool IGRID_BEARER_TOKEN '<IGRID_BEARER_TOKEN>'
cf restart igrid-sce-mcp-toolO, al usar el flujo de inicio de sesión/MFA de servicio aprobado:
cf set-env igrid-sce-mcp-tool IGRID_SERVICE_EMAIL '<SERVICE_EMAIL>'
cf set-env igrid-sce-mcp-tool IGRID_SERVICE_PASSWORD '<SERVICE_PASSWORD>'
cf set-env igrid-sce-mcp-tool IGRID_MFA_BODY_JSON '<APPROVED_JSON_WITH_{{code}}>'
cf restart igrid-sce-mcp-toolAsignación de roles XSUAA
El despliegue crea/actualiza la instancia de servicio XSUAA igrid-sce-mcp-tool-xsuaa a partir de xs-security.json.
Después del despliegue, en la subcuenta de SAP BTP:
Abra Seguridad → Colecciones de roles.
Confirme que existen las colecciones predefinidas
iGrid-MCP-Read,iGrid-MCP-WriteyiGrid-MCP-Admin.Asigne
iGrid-MCP-Reada usuarios de solo lectura.Asigne
iGrid-MCP-Writea usuarios de solo escritura.Asigne
iGrid-MCP-Adminsolo a usuarios que necesiten tanto herramientas MCP GET como POST.Vuelva a autenticar el cliente MCP para que su nuevo token contenga los ámbitos asignados.
Si el usuario solo tiene Read, las herramientas POST fallan en la capa MCP. Si el usuario solo tiene Write, las herramientas GET fallan. Admin puede invocar las ocho herramientas.
OAuth / MCP remoto de Claude
Use el endpoint desplegado:
https://<BTP_ROUTE>/mcpLos metadatos de descubrimiento OAuth ahora anuncian los ámbitos XSUAA read, write y admin. Para la aplicación de roles específicos de usuario, use un flujo OAuth que produzca un token de usuario, normalmente código de autorización, para que las colecciones de roles BTP del usuario estén representadas en el token.
Una clave de servicio aún puede proporcionar credenciales de cliente OAuth XSUAA, pero un token client_credentials es una identidad de cliente técnico y no debe tratarse como si hubiera heredado la colección de roles de un usuario humano.
stdio local
El stdio local no tiene un JWT de usuario de BTP, por lo que el comportamiento de roles se simula con MCP_LOCAL_ROLE. El valor predeterminado es Admin para preservar el comportamiento local anterior.
Prueba local de solo lectura:
MCP_LOCAL_ROLE=Read npm run start:stdioPrueba local de solo escritura:
MCP_LOCAL_ROLE=Write npm run start:stdioPrueba local completa:
MCP_LOCAL_ROLE=Admin npm run start:stdioEjemplo de Claude Desktop/Code:
{
"mcpServers": {
"igrid-sce-mcp-tool": {
"command": "node",
"args": ["/ABSOLUTE/PATH/igrid-sce-mcp-tool/src/server.js"],
"env": {
"MCP_TRANSPORT": "stdio",
"MCP_LOCAL_ROLE": "Read",
"IGRID_BASE_URL": "https://igrid-prometheus.azurewebsites.net",
"IGRID_API_KEY": "<IGRID_API_KEY>",
"IGRID_BEARER_TOKEN": "<IGRID_BEARER_TOKEN>"
}
}
}
}Prueba de aceptación de roles
Use tres usuarios (o tres asignaciones de usuario-rol) y obtenga un token nuevo después de cada asignación.
Usuario Read
Éxito esperado:
igrid_list_domains
igrid_get_template
igrid_metrics
igrid_export_csvSe espera Forbidden::
igrid_run_agent
igrid_propose_action
igrid_decide_action
igrid_ingest_csvUsuario Write
Éxito esperado:
igrid_run_agent
igrid_propose_action
igrid_decide_action
igrid_ingest_csvSe espera Forbidden::
igrid_list_domains
igrid_get_template
igrid_metrics
igrid_export_csvUsuario Admin
Las ocho herramientas deberían pasar la verificación de roles MCP. La autenticación/autorización de iGrid descendente y la validación de solicitudes aún se aplican.
Notas de seguridad
La verificación de permisos ocurre antes de la invocación de la API de iGrid.
XSUAA controla los permisos MCP entrantes; iGrid sigue siendo la autoridad para las credenciales descendentes y la autorización empresarial.
Nunca coloque la clave API de iGrid, la contraseña de iGrid, el token Bearer, el secreto de cliente XSUAA o la clave de servicio en el control de código fuente.
Consulte
README-SECURITY.mdpara conocer el modelo de seguridad conciso.
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
- Flicense-qualityAmaintenanceProvides a trust and governance layer for AI agents, enabling secure API access, credential vaulting, paid execution with human approval, and automatic call resume.81
- AlicenseAqualityAmaintenanceLocal zero-trust permission gateway for AI agents. Enforces policy-based tool authorization, human approvals, scoped permissions, and cryptographically verifiable audit logs.45Apache 2.0
- Alicense-qualityCmaintenanceEnables AI agents to discover and execute tools via a secure MCP server with JWT authentication, RBAC, rate limiting, and audit logging.1MIT
- Alicense-qualityBmaintenanceProvides a secure MCP gateway for AI agents to access APIs without exposing raw credentials, with scoped access, audit logging, and OAuth support.MIT
Related MCP Connectors
Runtime permission, approval, and audit layer for AI agent tool execution.
Single entry point for the GOSCE portfolio: routes orchestrators to verified agents by capability, w
Build, validate, and deploy multi-agent AI solutions from any AI environment.
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/tkrishnav31/igrid_aits--mcp_tool'
If you have feedback or need assistance with the MCP directory API, please join our Discord server