Skip to main content
Glama

Servidor MCP SAPUI5

Servidor MCP especializado para desarrollo SAPUI5/Fiori en JavaScript, con herramientas modulares para analisis de proyectos, generacion de codigo, refactorizacion, validacion y consulta de documentacion.

Arquitectura

src/
  index.js
  server/
    mcpServer.js
    toolRegistry.js
  tools/
    agents/
      recommendProjectAgents.js
      materializeRecommendedAgents.js
      scaffoldProjectAgents.js
      validateProjectAgents.js
      saveAgentPack.js
      listAgentPacks.js
      applyAgentPack.js
      refreshProjectContextDocs.js
      recordAgentExecutionFeedback.js
      rankAgentPacks.js
      promoteAgentPack.js
      auditProjectMcpState.js
      upgradeProjectMcp.js
      ensureProjectMcpCurrent.js
      collectLegacyProjectIntake.js
      analyzeLegacyProjectBaseline.js
      buildAiContextIndex.js
      prepareLegacyProjectForAi.js
      scaffoldProjectSkills.js
      validateProjectSkills.js
      recordSkillExecutionFeedback.js
      rankProjectSkills.js
    ui5/
      catalogs/
        ui5ComponentFitRules.js
        ui5SymbolCatalog.js
      generateController.js
      generateFragment.js
      generateFormatter.js
      generateViewLogic.js
      generateFeature.js
      manageI18n.js
      analyzePerformance.js
      analyzeODataMetadata.js
      validateUi5Code.js
      validateUi5VersionCompatibility.js
      validateUi5ODataUsage.js
      scaffoldUi5ODataFeature.js
      securityCheckUi5App.js
    javascript/
      generateFunction.js
      refactorCode.js
      lintCode.js
      securityCheck.js
    project/
      analyzeProject.js
      readFile.js
      searchFiles.js
      analyzeCurrentFile.js
      syncManifest.js
      writePreview.js
      applyPatch.js
      rollbackPatch.js
      runProjectQualityGate.js
      mcpHealthReport.js
    documentation/
      cacheStore.js
      searchUI5SDK.js
      searchMDN.js
    index.js
  utils/
    fileSystem.js
    manifestSync.js
    parser.js
    refactor.js
    patchWriter.js
    agentPolicy.js
    mcpProjectLayout.js
    xmlParser.js
    validator.js
    logger.js
    telemetry.js
    errors.js
    http.js

Herramientas MCP implementadas

  1. analyze_ui5_project

  2. generate_ui5_controller

  3. generate_ui5_fragment

  4. generate_ui5_formatter

  5. generate_ui5_view_logic

  6. generate_ui5_feature

  7. manage_ui5_i18n

  8. analyze_ui5_performance

  9. read_project_file

  10. search_project_files

  11. analyze_current_file

  12. sync_manifest_json

  13. write_project_file_preview

  14. apply_project_patch

  15. rollback_project_patch

  16. run_project_quality_gate

  17. mcp_health_report

  18. search_ui5_sdk

  19. search_mdn

  20. generate_javascript_function

  21. refactor_javascript_code

  22. lint_javascript_code

  23. security_check_javascript

  24. validate_ui5_code

  25. validate_ui5_version_compatibility

  26. security_check_ui5_app

  27. analyze_odata_metadata

  28. validate_ui5_odata_usage

  29. scaffold_ui5_odata_feature

  30. scaffold_project_agents

  31. validate_project_agents

  32. recommend_project_agents

  33. materialize_recommended_agents

  34. save_agent_pack

  35. list_agent_packs

  36. apply_agent_pack

  37. refresh_project_context_docs

  38. record_agent_execution_feedback

  39. rank_agent_packs

  40. promote_agent_pack

  41. audit_project_mcp_state

  42. upgrade_project_mcp

  43. ensure_project_mcp_current

  44. collect_legacy_project_intake

  45. analyze_legacy_project_baseline

  46. build_ai_context_index

  47. prepare_legacy_project_for_ai

  48. scaffold_project_skills

  49. validate_project_skills

  50. record_skill_execution_feedback

  51. rank_project_skills

Todas las herramientas se descubren dinamicamente a traves del registro central en src/tools/index.js y se registran en MCP con registerTool(...), incluyendo:

  • name

  • description

  • input schema

  • output schema

Fiabilidad y seguridad

  • Registro de herramientas compatible con JSON-RPC y MCP mediante @modelcontextprotocol/sdk.

  • Validacion estructurada de entrada y salida con zod.

  • Forma de salida determinista mediante structuredContent.

  • Acceso a archivos limitado en sandbox a la raiz del workspace.

  • Proteccion frente a path traversal (bloqueo de .. y de resoluciones fuera de la raiz).

  • Respuestas de error estructuradas con code y message legibles por maquina.

  • Registro centralizado para fallos de herramientas y eventos del ciclo de vida.

  • Aplicacion de politicas a nivel de proyecto mediante .codex/mcp/policies/agent-policy.json en flujos de ranking, recomendacion y puerta de calidad.

  • Verificacion automatica del proyecto MCP al arrancar el servidor (se desactiva con MCP_AUTO_ENSURE_PROJECT=false).

  • Preparacion automatica del contexto legacy al arrancar (se desactiva con MCP_AUTO_PREPARE_CONTEXT=false).

Ejecucion

npm install
npm run start

Observabilidad y logs

El servidor genera telemetria estructurada de uso y rendimiento para analizar la adopcion inicial y detectar cuellos de botella.

  • Eventos por sesion en .mcp-runtime/logs/telemetry-events-<sessionId>.jsonl

  • Resumen agregado en .mcp-runtime/logs/telemetry-session-latest.json

  • Variables de entorno soportadas:

    • MCP_TELEMETRY_ENABLED=false

    • MCP_TELEMETRY_DIR=.mcp-runtime/logs

    • MCP_TELEMETRY_SLOW_THRESHOLD_MS=2000

Ejemplos de llamadas a herramientas

analyze_ui5_project

{
  "tool": "analyze_ui5_project",
  "arguments": {}
}

generate_ui5_controller

{
  "tool": "generate_ui5_controller",
  "arguments": {
    "controllerName": "demo.app.controller.Main",
    "methods": ["onPressSave", "onNavBack"]
  }
}

read_project_file

{
  "tool": "read_project_file",
  "arguments": {
    "path": "webapp/controller/Main.controller.js"
  }
}

generate_javascript_function

{
  "tool": "generate_javascript_function",
  "arguments": {
    "description": "crear un envoltorio fetch con cache",
    "runtime": "node",
    "typescript": false
  }
}

Configuracion MCP para Codex

{
  "mcpServers": {
    "sapui5": {
      "command": "node",
      "args": ["/ruta/absoluta/a/MCPServerUI5/src/index.js"]
    }
  }
}

Documentacion ampliada

Consulta la documentacion para puesta en marcha y mantenimiento en docs/README.md.

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/santiagosanmartinn/mcpui5server'

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