Skip to content

Migrate FAVA Trails to MCP 2.0 compatibility #83

Description

@timeleft--

Context

MCP 2.0 removes the mcp.server.Server.list_tools() decorator used by FAVA Trails. When an unconstrained install resolves MCP 2.0, fava-trails-server exits during import with AttributeError: 'Server' object has no attribute 'list_tools', closing stdio before it can reply to the MCP initialize request.

A short-term compatibility cap keeps production installs on MCP 1.x.

Goal

Update FAVA Trails to the supported MCP 2.0 server registration API and remove the temporary <2.0 dependency cap.

Acceptance criteria

  • FAVA installs and starts with MCP 2.x.
  • fava-trails-server completes a stdio MCP initialize exchange under MCP 2.x.
  • Tool listing and invocation retain the current schemas, annotations, and structured-error behavior.
  • Automated coverage prevents a future MCP major-version upgrade from reintroducing an import-time startup failure.

Delivery verification — 2026-09-07

All four criteria are satisfied by merged PR #94 (d8a09dc01bc62451ece0849463972cc4d26ebac8). Independent review accepted exact branch head 9ee2775948efb39880d1e3acbc9156b6b7be9477; the complete combined suite passed 815 tests, including the isolated installed-wheel protocol check. Fresh installed stdio completed initialize, tool listing and calls with MCP2.2.0; tests preserve schemas, annotations, structured domain errors, validation failures and malformed-output handling. An additional independent actual ASGI HTTP probe passed protocol versions2024-11-05,2025-03-26 and2025-11-25.

The reviewed private gateway is now running merged source d8a09dc with FAVA0.6.1/MCP2.2.0. The actual connected FAVA surface successfully discovered scopes, recalled current approved records, and retrieved an approved synthetic record after a gateway restart. Runtime evidence is supplemental; the issue's package/protocol criteria are complete independently of deployment.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions