Skip to content

Comments

feat(mcp): implement dynamic MCP servers configuration system#85

Closed
chambridge wants to merge 209 commits intoambient-code:mainfrom
chambridge:feature/mcp-servers-dynamic-configuration
Closed

feat(mcp): implement dynamic MCP servers configuration system#85
chambridge wants to merge 209 commits intoambient-code:mainfrom
chambridge:feature/mcp-servers-dynamic-configuration

Conversation

@chambridge
Copy link
Collaborator

Add comprehensive MCP server configuration management for Claude Code runner:

  • Add dynamic MCP configuration loading from /app/.mcp.json with fallback to defaults
  • Create mcp-servers-configmap.yaml for Kubernetes ConfigMap integration
  • Update deploy.sh to support --atlassian-mcp-url parameter with SSE schema validation
  • Enhance startup logging to display loaded MCP servers before API key validation
  • Remove hardcoded "Playwright MCP" references to support generic MCP servers

This enables dynamic configuration of both command-based (playwright) and SSE-based (atlassian-mcp) MCP servers via Kubernetes ConfigMaps, improving flexibility and maintainability of the agentic runner system.

Gkrumbach07 and others added 30 commits June 10, 2025 09:29
…oject-documentation-structure-154e

Maintain project documentation structure
…ed scripts and documentation. Enhance project setup with updated dependencies and installation instructions in README. Ensure clarity in project organization for future development.
Fix docker compose deployment mode and revise first stage
…pdate command-line interface to support soft and hard modes for Jira ticket generation. Improve logging and validation processes for generated ticket structures.
…s for various external API providers. Introduce a deployment script for easier configuration and setup. Update README to reflect new deployment options and link to detailed guides.
Added additional guidance to Soft Mode instructions including sizing guidelines and cross-ticket dependency guidelines
…integration. Add MCP Atlassian URL to .env.example, enhance deploy-to-openshift.sh with new secrets, and modify openshift-deployment.yaml to include Jira MCP service and deployment. Refactor llama_stack_setup.py to utilize environment variables for configuration. Improve logging for toolgroup registration process.
…ncluding Kubernetes deployment, service, and route definitions in openshift-deployment.yaml. Update pyproject.toml and uv.lock to include new dependencies: sqlalchemy, psycopg2-binary, and pydantic. Modify llama_stack_setup.py to use CONFIGURE_TOOLGROUPS environment variable for toolgroup configuration.
Deployment on openshift and api creation
Added Ticket Sizing table with data from 2025 sprint history to add context to estimating team-specific story point sizing using team's Average duration per story point from the table.
Update draft_jiras.md - Added Ticket Sizing Table
…lity. Update `openshift-deployment.yaml` to switch vector provider from Milvus to Faiss, adjust database paths, and add a command for the server container. Modify `pyproject.toml` to include `uvicorn` with standard extras and add new dependencies in `uv.lock`. Implement WebSocket management in the API for real-time session updates, including a new `WebSocketManager` class and related endpoint. Update message handling in the API models and schemas to incorporate message status tracking.
…oint for JIRA metrics to retrieve comprehensive metrics for a JIRA issue and its children. Updated deployment scripts and configuration to support PostgreSQL database integration. Removed outdated contributing and custom API examples documentation. Updated frontend components to include new settings and metrics features.
…ove frontend components. Added GitHub access token to .env.example for Llama Index setup. Updated OpenShift deployment configuration to include new providers and tool groups. Enhanced package dependencies in pyproject.toml and uv.lock for improved functionality. Updated frontend package-lock.json and package.json to include the latest PatternFly components. Refactored session management in frontend components to support new RAG features and improved UI navigation.
…selection functionality. Added a new button in AppLayout for navigating to the RAG page. Updated SessionSidebar to manage vector database selections, including loading available databases and displaying selected ones in a dropdown. Modified related types and API endpoints to support vector database IDs in session management.
…eamline layout and improve loading/error handling. Removed unnecessary Panel components and integrated Flex for better responsiveness. Added chat message functionality in SessionManager with API integration for sending messages. Updated API service to handle chat message requests and responses, enhancing user interaction within the session.
…various frontend components. Update environment setup to include dotenv for loading environment variables. Refactor main application structure by eliminating unused files and enhancing the overall project organization.
Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 0.5.0 to 1.0.2.
- [Release notes](https://github.com/actions/add-to-project/releases)
- [Commits](actions/add-to-project@v0.5.0...v1.0.2)

---
updated-dependencies:
- dependency-name: actions/add-to-project
  dependency-version: 1.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](actions/github-script@v6...v7)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…ctions/actions/add-to-project-1.0.2

Bump actions/add-to-project from 0.5.0 to 1.0.2
…actions/actions/checkout-5

Bump actions/checkout from 4 to 5
…actions/actions/github-script-7

Bump actions/github-script from 6 to 7
…-configs

Add vTeam shared Claude Code configuration with hooks-based enforcement
…LI commands and documentation to reflect changes in RAG store usage. Enhance frontend components with new session management features, including real-time updates and improved chat functionality. Update API service to support new session update endpoints and document ingestion methods.
cooktheryan and others added 24 commits September 17, 2025 20:01
Signed-off-by: Ryan Cook <rcook@redhat.com>
Signed-off-by: Ryan Cook <rcook@redhat.com>
Signed-off-by: Ryan Cook <rcook@redhat.com>
…login_change

Revert "login should be token only not server"
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add missing Radix UI dependencies for new UI components with correct versions:
  - @radix-ui/react-checkbox: ^1.3.3
  - @radix-ui/react-progress: ^1.1.7
  - @radix-ui/react-tabs: ^1.1.13
  - @radix-ui/react-toast: ^1.2.15
- Add react-resizable-panels: ^3.0.6 for resizable editor interface
- Update claude-code-runner Dockerfile to include agent files

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add Git configuration management from .env variables
- Update env.example with Git settings for RFE workflows
- Add RFE-specific deployment messaging and next steps
- Support dynamic git-configmap updates during deployment

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Added complete RFE workflow management with:
- RFE workflow data structures and models
- CRUD operations (create, read, update, delete workflows)
- Phase management (specify -> plan -> tasks -> completed)
- Artifact management for file editing interface
- Git integration endpoints (push to repository)
- Agent session tracking within workflows
- In-memory storage (TODO: implement persistent storage)

API endpoints implemented:
- GET/POST /api/rfe-workflows
- GET/DELETE /api/rfe-workflows/:id
- POST /api/rfe-workflows/:id/{pause,resume,advance-phase,push-to-git}
- GET/PUT /api/rfe-workflows/:id/artifacts/*path

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Created frontend proxy routes that mirror backend RFE workflow endpoints:
- /api/rfe-workflows (GET, POST) - List and create workflows
- /api/rfe-workflows/[id] (GET, DELETE) - Individual workflow operations
- /api/rfe-workflows/[id]/pause (POST) - Pause workflow
- /api/rfe-workflows/[id]/resume (POST) - Resume workflow
- /api/rfe-workflows/[id]/advance-phase (POST) - Advance phase
- /api/rfe-workflows/[id]/push-to-git (POST) - Push to repository
- /api/rfe-workflows/[id]/artifacts/[...path] (GET, PUT) - Artifact editing

Fixes 404 errors from frontend by providing proper API proxy layer.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
🔧 Data Structure Fixes:
- Fixed frontend-backend data mismatch (targetRepository vs targetRepoUrl/targetRepoBranch)
- Updated TypeScript types to match Go backend structs exactly
- Fixed form submission to send correct JSON structure

🛡️ Error Handling Improvements:
- Added try-catch blocks to agent selection functions
- Enhanced Clear All button safety with error boundaries
- Improved handleAgentToggle error handling

📊 Backend Logging Enhancements:
- Added detailed validation error logging
- Success logging with workflow details
- Better debugging information for 400 errors

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Ryan Cook <rcook@redhat.com>
Signed-off-by: Ryan Cook <rcook@redhat.com>
Signed-off-by: Ryan Cook <rcook@redhat.com>
- Change from merge ref to PR head ref for proper review context
- Add repository and token parameters for cross-fork PR support
- Ensures Claude Code reviews against actual PR changes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
WIP: UI functionality as well as agent functions
…view-workflow

fix: Update Claude Code review workflow to checkout PR head
@jeremyeder
Copy link
Collaborator

lgtm

Add comprehensive MCP server configuration management for Claude Code runner:

- Add dynamic MCP configuration loading from /app/.mcp.json with fallback to defaults
- Create mcp-servers-configmap.yaml for Kubernetes ConfigMap integration
- Update deploy.sh to support --atlassian-mcp-url parameter with SSE schema validation
- Enhance startup logging to display loaded MCP servers before API key validation
- Refactor _load_mcp_servers_config() as static method for cleaner architecture
- Remove hardcoded "Playwright MCP" references to support generic MCP servers
- Add proper SSE MCP server schema support: {"type": "sse", "url": "..."}

This enables dynamic configuration of both command-based (playwright) and
SSE-based (atlassian-mcp) MCP servers via Kubernetes ConfigMaps, improving
flexibility and maintainability of the agentic runner system.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Chris Hambridge <chambrid@redhat.com>
@chambridge chambridge force-pushed the feature/mcp-servers-dynamic-configuration branch from b260b1f to 14fc372 Compare September 19, 2025 16:52
@jeremyeder
Copy link
Collaborator

@chambridge closing and please re-open if you'd like to keep it.

@jeremyeder jeremyeder closed this Nov 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants