--- application_id: web-app-jenkins entity_name: "{{ application_id | get_entity_name }}" swarm_stack_converge_retries: 600 JENKINS_IMAGE: "{{ lookup('config', application_id, 'services.jenkins.image') }}" JENKINS_VERSION: "{{ lookup('config', application_id, 'services.jenkins.version') }}" JENKINS_CONTAINER: "{{ lookup('config', application_id, 'services.jenkins.name') }}" JENKINS_CASC_FILE: "{{ [ lookup('container', application_id, 'directories.instance'), 'casc.yaml' ] | path_join }}" JENKINS_OIDC_ENABLED: "{{ lookup('config', application_id, 'services.sso.enabled') }}" JENKINS_LDAP_ENABLED: "{{ lookup('config', application_id, 'services.ldap.enabled') }}" JENKINS_LOOPBACK_URL: "http://localhost:{{ lookup('config', application_id, 'services.jenkins.ports.internal.http') }}" JENKINS_MCP_ENABLED: "{{ lookup('config', application_id, 'services.jenkinsmcp.enabled') | bool }}" JENKINS_MCP_USERNAME: "{{ lookup('config', application_id, 'mcp.credential.owner') }}" JENKINS_MCP_TOKEN_NAME: "infinito-mcp" JENKINS_MCP_TOKEN_FILE: "/var/jenkins_home/secrets/infinito-mcp.token" JENKINS_MCP_IDENTITY_URL: "{{ JENKINS_LOOPBACK_URL }}/whoAmI/api/json" JENKINS_MCP_READY_URL: "{{ JENKINS_LOOPBACK_URL }}/login" JENKINS_MCP_PLUGIN_PATH: "{{ lookup('config', application_id, 'mcp.adapter.upstream_path') }}" JENKINS_MCP_URL: "{{ JENKINS_LOOPBACK_URL }}{{ JENKINS_MCP_PLUGIN_PATH }}" JENKINS_MCP_CONTAINER: "{{ lookup('config', application_id, 'services.jenkinsmcp.name') }}" JENKINS_MCP_PORT: "{{ lookup('config', application_id, 'services.jenkinsmcp.ports.internal.http') }}" JENKINS_MCP_INSTANCE_DIR: "{{ [lookup('container', application_id, 'directories.instance'), 'mcp'] | path_join }}" JENKINS_MCP_BEARER: "{{ lookup('config', application_id, 'secrets.credentials.mcp_bearer') }}" JENKINS_MCP_UPSTREAM_URL: "http://{{ entity_name }}:{{ lookup('config', application_id, 'services.jenkins.ports.internal.http') }}{{ JENKINS_MCP_PLUGIN_PATH }}" JENKINS_MCP_UPSTREAM_AUTH_HEADER: "Authorization" JENKINS_MCP_UPSTREAM_AUTH_FORMAT: "Basic {key}" JENKINS_MCP_CONTRACT: upstream_kind: mcp provider: "{{ application_id }}" upstream_url: "{{ JENKINS_MCP_UPSTREAM_URL }}" auth_subject: "{{ lookup('config', application_id, 'mcp.auth_subject') }}" mutating_tools_enabled: "{{ lookup('config', application_id, 'mcp.tools.mutating_tools_enabled') | bool }}" tools: "{{ lookup('file', 'mcp/tools.json') | from_json }}" limits: "{{ lookup('config', application_id, 'mcp.limits') }}" schema_sha256: "{{ lookup('config', application_id, 'mcp.tools.schema_sha256') }}" JENKINS_MCP_INITIALIZE_PAYLOAD: jsonrpc: "2.0" id: 1 method: initialize params: protocolVersion: "2025-03-26" capabilities: {} clientInfo: name: infinito-nexus version: "1.0.0"