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
analyze_ui5_projectgenerate_ui5_controllergenerate_ui5_fragmentgenerate_ui5_formattergenerate_ui5_view_logicgenerate_ui5_featuremanage_ui5_i18nanalyze_ui5_performanceread_project_filesearch_project_filesanalyze_current_filesync_manifest_jsonwrite_project_file_previewapply_project_patchrollback_project_patchrun_project_quality_gatemcp_health_reportsearch_ui5_sdksearch_mdngenerate_javascript_functionrefactor_javascript_codelint_javascript_codesecurity_check_javascriptvalidate_ui5_codevalidate_ui5_version_compatibilitysecurity_check_ui5_appanalyze_odata_metadatavalidate_ui5_odata_usagescaffold_ui5_odata_featurescaffold_project_agentsvalidate_project_agentsrecommend_project_agentsmaterialize_recommended_agentssave_agent_packlist_agent_packsapply_agent_packrefresh_project_context_docsrecord_agent_execution_feedbackrank_agent_packspromote_agent_packaudit_project_mcp_stateupgrade_project_mcpensure_project_mcp_currentcollect_legacy_project_intakeanalyze_legacy_project_baselinebuild_ai_context_indexprepare_legacy_project_for_aiscaffold_project_skillsvalidate_project_skillsrecord_skill_execution_feedbackrank_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:
namedescriptioninput schemaoutput 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
codeymessagelegibles 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.jsonen 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=falseMCP_TELEMETRY_DIR=.mcp-runtime/logsMCP_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.