Avoid duplicate fastmcp console script

This commit is contained in:
Jeremiah Lowin 2026-05-22 18:41:19 -04:00
commit 615fdf80fd
No known key found for this signature in database
4 changed files with 25 additions and 10 deletions

View file

@ -145,7 +145,7 @@ jobs:
import fastmcp
import fastmcp.settings
assert any(ep.name == "fastmcp" for ep in entry_points(group="console_scripts"))
assert not any(ep.name == "fastmcp" for ep in entry_points(group="console_scripts"))
try:
from fastmcp.cli import app
@ -174,7 +174,7 @@ jobs:
from fastmcp.client.transports import StdioTransport, StreamableHttpTransport
from fastmcp.mcp_config import MCPConfig
assert any(ep.name == "fastmcp" for ep in entry_points(group="console_scripts"))
assert not any(ep.name == "fastmcp" for ep in entry_points(group="console_scripts"))
try:
from fastmcp.cli import app
@ -207,10 +207,7 @@ jobs:
from fastmcp import FastMCP
from fastmcp.cli import app
assert any(
ep.name == "fastmcp" and ep.value == "fastmcp.cli:app"
for ep in entry_points(group="console_scripts")
)
assert not any(ep.name == "fastmcp" for ep in entry_points(group="console_scripts"))
mcp = FastMCP("smoke")
assert app is not None
@ -235,7 +232,9 @@ jobs:
assert not any("fastmcp-slim[full" in req for req in fastmcp_reqs)
assert any(
ep.name == "fastmcp" and ep.value == "fastmcp.cli:app"
ep.name == "fastmcp"
and ep.value == "fastmcp.cli:app"
and ep.dist.name == "fastmcp"
for ep in entry_points(group="console_scripts")
)

View file

@ -62,6 +62,23 @@ Alternatively, wait for the stable v5 release. See [this issue](https://github.c
</Info>
## Upgrading
### From FastMCP 3.3.0 or 3.3.1
FastMCP 3.3.2 repairs a package split issue that could affect environments upgraded from FastMCP 3.2.x with pip. Upgrade to the latest release to restore both the `fastmcp` import package and the `fastmcp` CLI:
```bash
python -m pip install --upgrade fastmcp
uv pip install --upgrade fastmcp
uv sync --upgrade-package fastmcp
```
For an environment that still has missing package files after upgrading, reinstall the paired packages:
```bash
python -m pip install --upgrade --force-reinstall fastmcp fastmcp-slim
uv pip install --upgrade --reinstall-package fastmcp --reinstall-package fastmcp-slim fastmcp
```
### From FastMCP 2.0
See the [Upgrade Guide](/getting-started/upgrading/from-fastmcp-2) for a complete list of breaking changes and migration steps.

View file

@ -41,9 +41,6 @@ Homepage = "https://gofastmcp.com"
Repository = "https://github.com/PrefectHQ/fastmcp"
Documentation = "https://gofastmcp.com"
[project.scripts]
fastmcp = "fastmcp.cli:app"
[build-system]
requires = ["hatchling", "uv-dynamic-versioning>=0.7.0"]
build-backend = "hatchling.build"

View file

@ -79,6 +79,8 @@ def test_fastmcp_metapackage_delegates_to_slim() -> None:
def test_fastmcp_slim_installs_private_import_root() -> None:
pyproject = (PROJECT_ROOT / "fastmcp_slim" / "pyproject.toml").read_text()
assert "[project.scripts]" not in pyproject
assert 'fastmcp = "fastmcp.cli:app"' not in pyproject
assert "[tool.hatch.build.targets.wheel]" in pyproject
assert "bypass-selection = true" in pyproject
assert "only-include = []" in pyproject