Skip to content

Improve deployment and error handling#15

Merged
rockfordlhotka merged 4 commits into
mainfrom
persist-logs
Feb 17, 2026
Merged

Improve deployment and error handling#15
rockfordlhotka merged 4 commits into
mainfrom
persist-logs

Conversation

@rockfordlhotka
Copy link
Copy Markdown
Member

Summary

  • Persist logs to data volume in Kubernetes deployment
  • Add enable/disable endpoints for MCP servers
  • Throw exceptions for downstream MCP server errors (consistent error handling)
  • Update aggregator skill documentation

Changes

Log Persistence

  • Mount /data/logs in deployment for log persistence across restarts

Server Management

  • Add enable_service and disable_service MCP tools
  • Add corresponding REST API endpoints (POST /api/servers/{name}/enable and /disable)

Error Handling

  • Add ToolExecutionException for downstream tool errors
  • Throw exceptions when downstream MCP servers return IsError=true instead of returning error strings
  • Makes error handling consistent with timeouts and properly propagates MCP protocol error semantics

Test plan

  • Build and unit tests pass (53 tests)
  • Docker image built and deployed to Kubernetes
  • Application running and handling requests successfully

🤖 Generated with Claude Code

rockfordlhotka and others added 4 commits February 16, 2026 19:33
Configure HttpServer to write logs to /data/logs instead of ephemeral
/app/logs directory. This ensures logs survive pod restarts and
redeployments, enabling better debugging of intermittent issues.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add ability to enable or disable registered MCP servers through both
MCP tools and REST API. This allows temporarily disabling problematic
servers without unregistering them.

Changes:
- Add ServerRegistry.SetEnabledAsync() method
- Add MCP tools: enable_service, disable_service
- Add REST endpoints: POST /api/admin/services/{name}/enable
                       POST /api/admin/services/{name}/disable
- Disconnect when disabling to free resources

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add documentation for the new enable_service and disable_service tools,
including when to use them, how they work, and examples.

Changes:
- Add enable_service and disable_service to tool reference table
- Add new "Enabling and Disabling Servers" section
- Update error handling section to mention disabled servers
- Add example usage

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Previously, when a downstream MCP server returned IsError=true, the aggregator
would return a successful string response prefixed with [Error]. This meant the
MCP protocol's error flag was lost, and LLM clients couldn't distinguish between
error messages and actual failures.

Now, downstream errors throw ToolExecutionException, making error handling
consistent with timeouts and properly propagating error state through the MCP
protocol.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@rockfordlhotka rockfordlhotka merged commit 6f0b1af into main Feb 17, 2026
1 check passed
@rockfordlhotka rockfordlhotka deleted the persist-logs branch February 17, 2026 01:56
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.

1 participant