chore: migrate MCP servers to mcp SDK 2.0 (FastMCP removed)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start with servers/local/server.py and servers/remote/server.py, checking server_acp.py if it uses MCP APIs, then read the SDK v2 migration guide. Review the FastMCP registration and transport usage, update both pyproject.toml bounds and servers/remote/constraints.txt with make lock, and run make test plus the local stdio and remote dependency checks. Done means both servers start, register all contract tools on MCP 2.x, and the upper bound is relaxed to <3.
Written by the indexing model from the issue text.
Description
Summary
mcp 2.0.0 removes mcp.server.fastmcp — both servers fail at import time:
File "servers/local/server.py", line 31
from mcp.server.fastmcp import FastMCP
ModuleNotFoundError: No module named 'mcp.server.fastmcp'
In 2.0 the server API lives in mcp.server.mcpserver (MCPServer), and the
old FastMCP class is gone (mcp.server now exposes mcpserver, lowlevel,
apps, ... — no fastmcp). This is not a drop-in bump; it needs a migration.
Dependabot PRs #295 (servers/local range widening to <3) and #297
(servers/remote mcp==2.0.0) were closed with this evidence. The <2 upper
bound in both pyproject.toml files stays until this issue is done.
Verified locally: uv pip install mcp[cli]==2.0.0 into the servers/local venv →
import server fails as above. With mcp 1.28/1.29 everything is green.
Scope
servers/local/server.py(+server_acp.pyif it touches mcp server APIs)servers/remote/server.py- Both
pyproject.tomlbounds +servers/remote/constraints.txt(make lock) - Check the FastMCP-specific surface we use:
mcp.tool()registration,
instructions, streamable-HTTP transport wiring in remote, stdio in local
Migration reference
- SDK v2 migration guide: https://github.com/modelcontextprotocol/python-sdk (2.0 release notes)
- New entry point:
mcp.server.mcpserver.MCPServer
Acceptance
- Both servers start and register all contract tools on mcp 2.x
make testgreen; local stdio smoke test + remote container-deps resolve- Dependabot upper bound relaxed to
<3
- Dominant language
- Python
- Stars
- 130
- Forks
- 10
- Avg merge
- 4h 31m
- Merged PRs (30d)
- 58
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from aws-samples/sample-spec-driven-presentation-maker
-
Difficulty 5/5 Over a week Newbie friendliness 45/100
aws-samples/sample-spec-driven-presentation-maker#222 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
aws-samples/sample-spec-driven-presentation-maker#174 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
aws-samples/sample-spec-driven-presentation-maker#161 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 38/100
aws-samples/sample-spec-driven-presentation-maker#143 ·
Maintainers usually reply within 1 day
-
bug enhancement
Difficulty 3/5 1-2 days Newbie friendliness 68/100
aws-samples/sample-spec-driven-presentation-maker#135 ·
Maintainers usually reply within 1 day
All issues in aws-samples/sample-spec-driven-presentation-maker
Similar issues
-
Workflow.schedule stops when a cron deadline passes before sleepPossibly taken @HuaTNA claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
[Bug] HiveDialect shares its colspecs dict with SQLAlchemy's DefaultDialect (python/pyhive)Possibly taken @rusackas claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 80/100
apache/kyuubi#7786 · 1 comment ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
Maintainers usually reply within 1 day
-
[20.0] hr_work_entry: Duration column of Export Time Entries is truncated to whole hoursPossibly taken @odooaktiv claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
fix formatting of the sample database page of the docsPossibly taken @Aaqibhafeezkhan claimed this today. Opendocumentation good first issue help wanted
Difficulty 1/5 Under an hour Newbie friendliness 72/100
chaoss/CollectOSS#544 · 1 comment ·
Maintainers usually reply within 1 day