Skip to content

chore(deps): bump fastmcp from 3.4.7 to 4.0.3 - #222

Open
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/pip/fastmcp-4.0.3
Open

dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/pip/fastmcp-4.0.3

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 18, 2026

Copy link
Copy Markdown
Contributor

Bumps fastmcp from 3.4.7 to 4.0.3.

Release notes

Sourced from fastmcp's releases.

v4.0.3: Once Is Enough

Multi-server clients with legacy-only backends now avoid unnecessary startup retries, and tools returning unconstrained sequences no longer send images twice. This patch also fixes task timing values rejected by strict clients and cleans up unfinished Monty callbacks when execution ends.

What's Changed

Enhancements ✨

Fixes 🐞

Docs 📚

New Contributors

Full Changelog: PrefectHQ/fastmcp@v4.0.2...v4.0.3

v4.0.2: Root Access

ClientGroup is now importable from the package root, from fastmcp import ClientGroup, with the same lazy export and install hint as Client, so integrations no longer couple to FastMCP's internal module layout.

What's Changed

Enhancements ✨

Fixes 🐞

Docs 📚

Other Changes 🦾

Full Changelog: PrefectHQ/fastmcp@v4.0.1...v4.0.2

v4.0.1: Come Back Any Time

ClientGroup now reference-counts its context the way Client does, so entering a connected group from a nested block or a concurrent task reuses the existing connections instead of raising. Adapters written against Client's reentrancy can hold a ClientGroup the same way.

... (truncated)

Changelog

Sourced from fastmcp's changelog.


title: "Changelog" icon: "list-check" rss: true tag: NEW

v4.0.5: No Country for Loose Ints

Tool parameters declared strict with Field(strict=True), StrictInt, or a strict model config are honored again, on both direct calls and task submission. Since the SDK v2 migration the server's lax default overrode them and silently coerced values.

Security 🔒

Fixes 🐞

Full Changelog: v4.0.4...v4.0.5

v4.0.4: Here Be No Dragons

OpenAPI request bodies get most of the attention in this patch: multipart string arrays are sent as repeated fields, whole-body arguments no longer clobber same-named HTTP parameters, dictionary bodies and raw content types survive intact, and JSON scalar bodies are encoded. On the auth side, OAuthProxy rejects ID-JAG tokens unless identity assertion is configured and refuses non-positive upstream token expiries. Clients now follow empty pagination cursors and servers reject malformed ones.

Enhancements ✨

Security 🔒

Fixes 🐞

... (truncated)

Commits
  • 7129236 Add v4.0.3 changelog entries (#5007)
  • f79bc82 chore: Update SDK documentation (#4945)
  • 6e0859f fix task timing field serialization (#5003)
  • 855cb7a Clarify release title history lookup (#5006)
  • 6236ac1 Clean up unfinished Monty callbacks (#5005)
  • 6c2fbe7 docs: attribute the back-channel removal to SEP-2322/2575, not SEP-2577 (#4988)
  • e68bacc perf: avoid duplicate startup for mixed-era backends (#4971)
  • 032b9f6 fix: don't infer an output schema for unconstrained sequences (#4999)
  • 75d50ff ci: deploy docs through Mintlify's admin API and wait for a verdict (#4996)
  • a338cfb docs: point What's New at the changelog for later releases (#4992)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [fastmcp](https://github.com/PrefectHQ/fastmcp) from 3.4.7 to 4.0.3.
- [Release notes](https://github.com/PrefectHQ/fastmcp/releases)
- [Changelog](https://github.com/PrefectHQ/fastmcp/blob/main/docs/changelog.mdx)
- [Commits](PrefectHQ/fastmcp@v3.4.7...v4.0.3)

---
updated-dependencies:
- dependency-name: fastmcp
  dependency-version: 4.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Sep 18, 2026
@greptile-apps

greptile-apps Bot commented Sep 18, 2026

Copy link
Copy Markdown

PR author is in the excluded authors list.

The bump changed pyproject.toml alone, so `uv sync --locked` failed
before anything ran: the lockfile still resolved fastmcp 3.4.7. That was
the whole of the Quality failure and most of the test failures.

With the lock regenerated, fastmcp 4.0.3 runs this codebase almost
unchanged -- 972 of 973 unit tests passed on the first attempt. The rest
of this commit is the fallout from two API changes.

MCP SDK v2 renamed the tool annotation fields to snake_case:
readOnlyHint, destructiveHint, idempotentHint and openWorldHint become
read_only_hint, destructive_hint, idempotent_hint and open_world_hint,
and CallToolResult.structuredContent and .isError become
structured_content and is_error. The camelCase spellings still resolve
through a deprecation shim, so the suite passed on them, but they are
gone from the type stubs: pyright reported 122 errors and mypy 98. All
165 occurrences are renamed here. The one camelCase spelling left is in a
comment describing what AgentCat itself passes, which is still
camelCase and would be wrong if changed.

streamable_http_client now yields (read, write) rather than the v1
(read, write, get_session_id), so the integration client unpacks two.

The one genuine test failure was a double rather than product code: the
code-mode catalog's visibility check reads `component.meta`, and the fake
backend tool was a SimpleNamespace without it. A component with no meta
is visible, which is what that double always stood for -- fastmcp 4 just
asks the question explicitly now.

Verified: ruff, ruff format, pyright, mypy, `uv sync --locked`, the
OpenAPI spec audit, and 973 unit tests all pass. The deprecation warnings
the suite used to emit are gone as well.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant