# Project: Virtuoso MCP Server ## Current state (2026-03) The server is now transport-standardized on FastMCP for MCP clients while preserving a compatibility router for existing scripts. - FastMCP SSE mount: `/mcp` - SSE stream endpoint: `/mcp/sse` - Legacy tool router: `POST /rpc` - Health/discovery: `/`, `/health` ## Main goals 1. Keep core Virtuoso tooling generic and reusable. 2. Keep guardrails strict (SELECT-only raw query, bounded limits). 3. Keep domain logic in plugins (garden layer), not in transport glue. 4. Maintain compatibility during migration (`/rpc`) while new clients use FastMCP transport. ## Plugin policy Domain plugins may extend `TOOLS`, but should avoid redundant aliases for core capabilities. Garden tool surface has been trimmed to domain-unique helpers. ## Next recommended steps - Move remaining internal callers from `/rpc` to native MCP client flows where practical. - Add protocol-level integration tests for FastMCP transport in addition to `/rpc` functional tests. - Keep plugin schemas/documentation in sync with exposed tool names.