Skip to content

Migrate server.py to the mcp 2.0 Server API (currently pinned to mcp<2.0.0) #20

Open

Description

@linsamtw

Follow-up to #16 / #18.

Background

mcp 2.0.0 removed the 1.x decorator API on Server (@app.list_tools(), @app.call_tool(), @app.list_resources(), @app.read_resource()), which src/finmind_mcp/server.py is written against. We shipped 0.0.6 with mcp>=1.0.0,<2.0.0 as immediate stopgap so installs stop crashing — but that pin is a ceiling, not a fix.

Why this matters

  • mcp 1.x will stop getting fixes at some point; we're frozen out of 2.x features and security updates.
  • Users with another MCP package in the same environment that requires mcp>=2.0 now hit an unsolvable resolver conflict.

Scope

  • Port the four decorator registrations in src/finmind_mcp/server.py to the 2.0 API (evaluate whether the FastMCP-style API is the better target while we're in there).
  • Check stdio_server / mcp.types imports for renames.
  • Bump the floor to mcp>=2.0.0 (or keep a compat shim if we want to support both) and drop the upper pin.
  • Re-run the smoke test + regression runner against a real MCP host (Claude Desktop / Claude Code) — unit tests alone won't catch a protocol-level regression.

Notes

Whether to support mcp 1.x and 2.x simultaneously is worth deciding up front — a single-version jump is much less code, but breaks anyone stuck on 1.x.

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