Skip to content

chore(deps): migrate gmail/oauth-draft to mcp 2.0 - #1085

Open
potiuk wants to merge 1 commit into
apache:mainfrom
potiuk:chore/mcp-2.0-migration
Open

chore(deps): migrate gmail/oauth-draft to mcp 2.0#1085
potiuk wants to merge 1 commit into
apache:mainfrom
potiuk:chore/mcp-2.0-migration

Conversation

@potiuk

@potiuk potiuk commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

Type of change

  • Skill change (.claude/skills/<name>/) — eval fixtures updated below
  • Tool / bridge contract (tools/<system>/*.md)
  • Python package (tools/*/ with pyproject.toml)
  • Groovy reference impl
  • Cross-cutting (RFC, AGENTS.md, sandbox, privacy-LLM)
  • Documentation (docs/, README.md, CONTRIBUTING.md)
  • Project template (projects/_template/)
  • CI / dev loop (prek, workflows, validators)

Test plan

  • All 81 oauth-draft tests pass on mcp 2.0.0
  • ruff check, ruff format --check, mypy clean on the package
  • prek run --all-files exits 0

RFC-AI-0004 compliance

  • Write-access discipline — unchanged by this PR, and specifically
    preserved: the migration keeps the tool surface identical, so the server
    still creates drafts only and still exposes no HTML/rich-text parameter.
    The test that enforces that is the one updated here.

Linked issues

Refs #1083

Notes for reviewers

The rename is mechanical, but test_tools_are_registered_without_any_html_parameter
deserves the attention — it is the mechanical gate on the plain-text-only
interface, so please check the updated assertion still reads as strictly as
before rather than being loosened to make 2.0 pass.

Both this PR and #1084 touch uv.lock, so whichever merges second needs a
uv lock re-run. #1083 can be closed once both land.

The breaking half of apache#1083, split out so the routine ruff/prek bumps
could land on their own. `mcp` 2.0 makes two source-visible changes and
neither is covered by a deprecation shim.

- `mcp.server.fastmcp` is gone. The `FastMCP` class moved to
  `mcp.server.mcpserver` as `MCPServer`; `.tool()` and `.run()` keep
  their signatures, so the server body is unchanged beyond the rename.
  On 2.0 without this, importing the module raises
  `ModuleNotFoundError: No module named 'mcp.server.fastmcp'` and
  `pytest (oauth-draft)` fails at collection.
- `Tool.inputSchema` is now `Tool.input_schema`. This one only shows up
  in `test_tools_are_registered_without_any_html_parameter`, which is
  the test that enforces the server's plain-text-by-construction
  guarantee — that no tool anywhere exposes an `html` parameter. Left
  unfixed it would have failed with an `AttributeError` rather than
  silently passing, but it is worth naming: that assertion is the
  reason this package exists, so it must keep running.

Verified on mcp 2.0.0: all 81 oauth-draft tests pass, `ruff check`,
`ruff format --check` and `mypy` are clean, and `prek run --all-files`
exits 0.

Generated-by: Claude Code (Opus 5)
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