stuff that was not comitted.

This commit is contained in:
2026-03-12 18:15:38 -04:00
parent 6f1fea85f0
commit 23943443e3
5 changed files with 105 additions and 72 deletions

View File

@@ -1,42 +1,42 @@
# Implementation Plan: External MCP Server Support
## Phase 1: Configuration & Data Modeling
## Phase 1: Configuration & Data Modeling [checkpoint: 4ba1bd9]
- [x] Task: Define the schema for external MCP server configuration. [1c863f0]
- [x] Update `src/models.py` to include `MCPServerConfig` and `MCPConfiguration` classes.
- [x] Implement logic to load `mcp_config.json` from global and project-specific paths.
- [x] Task: Integrate configuration loading into `AppController`. [c09e0f5]
- [x] Ensure the MCP config path is correctly resolved from `config.toml` and `manual_slop.toml`.
- [x] Task: Write unit tests for configuration loading and validation. [c09e0f5]
- [ ] Task: Conductor - User Manual Verification 'Phase 1: Configuration & Data Modeling' (Protocol in workflow.md)
- [x] Task: Conductor - User Manual Verification 'Phase 1: Configuration & Data Modeling' [4ba1bd9]
## Phase 2: MCP Client Extension
- [ ] Task: Implement `ExternalMCPManager` in `src/mcp_client.py`.
- [ ] Add support for managing multiple MCP server sessions.
- [ ] Implement the `StdioMCPClient` for local subprocess communication.
- [ ] Implement the `RemoteMCPClient` for SSE/WebSocket communication.
- [ ] Task: Update Tool Discovery.
- [ ] Implement `list_external_tools()` to aggregate tools from all active external servers.
- [ ] Task: Update Tool Dispatch.
- [ ] Modify `mcp_client.dispatch()` and `mcp_client.async_dispatch()` to route tool calls to either native tools or the appropriate external server.
- [ ] Task: Write integration tests for stdio and remote MCP client communication (using mock servers).
- [ ] Task: Conductor - User Manual Verification 'Phase 2: MCP Client Extension' (Protocol in workflow.md)
## Phase 2: MCP Client Extension [checkpoint: 828fadf]
- [x] Task: Implement `ExternalMCPManager` in `src/mcp_client.py`. [828fadf]
- [x] Add support for managing multiple MCP server sessions.
- [x] Implement the `StdioMCPClient` for local subprocess communication.
- [x] Implement the `RemoteMCPClient` for SSE/WebSocket communication (stub).
- [x] Task: Update Tool Discovery. [828fadf]
- [x] Implement `list_external_tools()` to aggregate tools from all active external servers.
- [x] Task: Update Tool Dispatch. [828fadf]
- [x] Modify `mcp_client.dispatch()` and `mcp_client.async_dispatch()` to route tool calls to either native tools or the appropriate external server.
- [x] Task: Write integration tests for stdio and remote MCP client communication (using mock servers). [828fadf]
- [x] Task: Conductor - User Manual Verification 'Phase 2: MCP Client Extension' [828fadf]
## Phase 3: GUI Integration & Lifecycle
- [ ] Task: Update the **Operations** panel in `src/gui_2.py`.
- [ ] Create a new "External Tools" section.
- [ ] List discovered tools from active external servers.
- [ ] Add a "Refresh External MCPs" button to reload configuration and rediscover tools.
- [ ] Task: Implement Lifecycle Management.
- [ ] Add the "Auto-start on Project Load" logic to start servers when a project is initialized.
- [ ] Add status indicators (e.g., color-coded dots) for each external server in the GUI.
- [ ] Task: Write visual regression tests or simulation scripts to verify the updated Operations panel.
- [ ] Task: Conductor - User Manual Verification 'Phase 3: GUI Integration & Lifecycle' (Protocol in workflow.md)
## Phase 3: GUI Integration & Lifecycle [checkpoint: 3b2588a]
- [x] Task: Update the **Operations** panel in `src/gui_2.py`. [3b2588a]
- [x] Create a new "External Tools" section.
- [x] List discovered tools from active external servers.
- [x] Add a "Refresh External MCPs" button to reload configuration and rediscover tools.
- [x] Task: Implement Lifecycle Management. [3b2588a]
- [x] Add the "Auto-start on Project Load" logic to start servers when a project is initialized.
- [x] Add status indicators (e.g., color-coded dots) for each external server in the GUI.
- [x] Task: Write visual regression tests or simulation scripts to verify the updated Operations panel. [3b2588a]
- [x] Task: Conductor - User Manual Verification 'Phase 3: GUI Integration & Lifecycle' [3b2588a]
## Phase 4: Agent Integration & HITL
- [ ] Task: Update AI tool declarations.
- [ ] Ensure `ai_client.py` includes external tools in the tool definitions sent to Gemini/Anthropic.
- [ ] Task: Verify HITL Approval Flow.
- [ ] Ensure that calling an external tool correctly triggers the `ConfirmDialog` modal.
- [ ] Verify that approved external tool results are correctly returned to the AI.
- [ ] Task: Perform a final end-to-end verification with a real external MCP server.
- [ ] Task: Conductor - User Manual Verification 'Phase 4: Agent Integration & HITL' (Protocol in workflow.md)
## Phase 4: Agent Integration & HITL [checkpoint: f4c5a0b]
- [x] Task: Update AI tool declarations. [f4c5a0b]
- [x] Ensure `ai_client.py` includes external tools in the tool definitions sent to Gemini/Anthropic.
- [x] Task: Verify HITL Approval Flow. [f4c5a0b]
- [x] Ensure that calling an external tool correctly triggers the `ConfirmDialog` modal.
- [x] Verify that approved external tool results are correctly returned to the AI.
- [x] Task: Perform a final end-to-end verification with a real external MCP server. [f4c5a0b]
- [x] Task: Conductor - User Manual Verification 'Phase 4: Agent Integration & HITL' [f4c5a0b]