git: c5a4f8c7ced5 - main - misc/py-fastmcp: update 3.3.0 → 3.4.2
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 28 Jun 2026 06:49:14 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=c5a4f8c7ced52e26b168f8a5fe825f657330fda2
commit c5a4f8c7ced52e26b168f8a5fe825f657330fda2
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-06-28 06:15:13 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-06-28 06:49:08 +0000
misc/py-fastmcp: update 3.3.0 → 3.4.2
---
misc/py-fastmcp/Makefile | 35 ++++++++++++++++++++---------------
misc/py-fastmcp/distinfo | 6 +++---
misc/py-fastmcp/pkg-descr | 15 +++++----------
3 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/misc/py-fastmcp/Makefile b/misc/py-fastmcp/Makefile
index 814fba925c91..a553959cc3f2 100644
--- a/misc/py-fastmcp/Makefile
+++ b/misc/py-fastmcp/Makefile
@@ -1,5 +1,5 @@
PORTNAME= fastmcp
-DISTVERSION= 3.3.0
+DISTVERSION= 3.4.2
CATEGORIES= misc python # machine-learning
MASTER_SITES= PYPI # no tarball
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -12,44 +12,44 @@ WWW= https://gofastmcp.com/getting-started/welcome \
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiofile>0:devel/py-aiofile@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}uv-dynamic-versioning>=0.7.0:devel/py-uv-dynamic-versioning@${PY_FLAVOR}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}authlib>=1.6.11:security/py-authlib@${PY_FLAVOR} \
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}fastmcp-slim>=${DISTVERSION}:misc/py-fastmcp-slim@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}authlib>=1.6.11:security/py-authlib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}cyclopts>=4.0.0:devel/py-cyclopts@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}email-validator>=2.0.0:mail/py-email-validator@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}exceptiongroup>=1.2.2:devel/py-exceptiongroup@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}griffelib>=2.0.0:textproc/py-griffelib@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}httpx>=0.28.1<1.0:www/py-httpx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}joserfc>=1.1.0:security/py-joserfc@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}jsonref>=1.1.0:devel/py-jsonref@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}jsonschema-path>=0.3.4:devel/py-jsonschema-path@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}mcp>=1.24.0<2.0:misc/py-mcp@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}openapi-pydantic>=0.5.1:devel/py-openapi-pydantic@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}opentelemetry-api>=1.20.0:devel/py-opentelemetry-api@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}packaging>=24.0:devel/py-packaging@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}platformdirs>=4.0.0:devel/py-platformdirs@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}py-key-value-aio>=0.4.4:devel/py-py-key-value-aio@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pydantic-settings>=2.0.0:devel/py-pydantic-settings@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.11.7:devel/py-pydantic2@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}pyperclip>0:devel/py-pyperclip@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}python-dotenv>=1.1.0:www/py-python-dotenv@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}py-key-value-aio>=0.4.4<0.5.0:devel/py-py-key-value-aio@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyperclip>=1.9.0:devel/py-pyperclip@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}python-multipart>=0.0.26:www/py-python-multipart@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0<7.0:devel/py-pyyaml@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}rich>=13.9.4:textproc/py-rich@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.0.0:devel/py-typing-extensions@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}starlette>=1.0.1:www/py-starlette@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}uncalled-for>=0.2.0:devel/py-uncalled-for@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}uvicorn>=0.35:www/py-uvicorn@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}watchfiles>=1.0.0:devel/py-watchfiles@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}websockets>=15.0.1:devel/py-websockets@${PY_FLAVOR}
TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiofile>0:devel/py-aiofile@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}anthropic>=0.48.0:misc/py-anthropic@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}azure-identity>=1.16.0:devel/py-azure-identity@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dirty-equals>=0.9.0:devel/py-dirty-equals@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}fastapi>=0.115.12:www/py-fastapi@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}google-genai>=1.18.0:misc/py-google-genai@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}inline-snapshot>=0.27.2:devel/py-inline-snapshot@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}ipython>=8.12.3:devel/ipython@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}opentelemetry-exporter-otlp-proto-grpc>=1.39.0:devel/py-opentelemetry-exporter-otlp-proto-grpc@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}opentelemetry-sdk>=1.20.0:devel/py-opentelemetry-sdk@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}openai>=1.102.0:misc/py-openai@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}prek>=0.2.12:devel/py-prek@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psutil>=7.0.0:sysutils/py-psutil@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyjwt>=2.12.0:www/py-pyjwt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest>=8.3.3:devel/py-pytest@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-asyncio>=1.2.0:devel/py-pytest-asyncio@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pytest-cov>0:devel/py-pytest-cov@${PY_FLAVOR} \
@@ -64,13 +64,18 @@ TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}aiofile>0:devel/py-aiofile@${PY_FLAVOR} \
USES= python
USE_PYTHON= pep517 autoplist pytest
+MAKE_ENV+= UV_DYNAMIC_VERSIONING_BYPASS=${DISTVERSION}
+
BINARY_ALIAS= python=${PYTHON_CMD}
TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
NO_ARCH= yes
-# tests as of 2.12.0: 54 failed, 2580 passed, 14 xfailed, 1 xpassed, 8 warnings, 1 error in 298.28s (0:04:58), see https://github.com/jlowin/fastmcp/issues/1690
-# tests as of 2.12.1: 57 failed, 2568 passed, 14 xfailed, 1 xpassed, 8 warnings, 2 errors in 343.76s (0:05:43)
+# tests as of 3.4.2: 137 failed, 5345 passed, 14 xfailed, 7 skipped, 9 warnings, 157 errors in 221.09s (0:03:41).
+# Failures/errors are mostly from optional extras not in FreeBSD ports:
+# - prefab-ui (apps extra)
+# - pydocket (tasks extra)
+# - pydantic-monty (code-mode extra)
.include <bsd.port.mk>
diff --git a/misc/py-fastmcp/distinfo b/misc/py-fastmcp/distinfo
index 9cdb2eb2afdc..409f064f0da1 100644
--- a/misc/py-fastmcp/distinfo
+++ b/misc/py-fastmcp/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1778835940
-SHA256 (fastmcp-3.3.0.tar.gz) = 48c7fffdb6865cb9658ac02c2ff589caaaa3cd68e2cc37ed51402fa46e46c2eb
-SIZE (fastmcp-3.3.0.tar.gz) = 28804871
+TIMESTAMP = 1782623529
+SHA256 (fastmcp-3.4.2.tar.gz) = b468722946fc467c3796a6572f7a14d93d48c014cf8fea12910245220cbbe4e1
+SIZE (fastmcp-3.4.2.tar.gz) = 28756849
diff --git a/misc/py-fastmcp/pkg-descr b/misc/py-fastmcp/pkg-descr
index 61c726c5cef5..3ca0f45ef0c3 100644
--- a/misc/py-fastmcp/pkg-descr
+++ b/misc/py-fastmcp/pkg-descr
@@ -1,11 +1,6 @@
-xFormers is a Toolbox to Accelerate Research on Transformers.
+FastMCP is a fast, Pythonic way to build MCP (Model Context Protocol)
+servers and clients.
-xFormers is:
-* Customizable building blocks: Independent/customizable building blocks that
- can be used without boilerplate code. The components are domain-agnostic and
- xFormers is used by researchers in vision, NLP and more.
-* Research first: xFormers contains bleeding-edge components, that are not yet
- available in mainstream libraries like PyTorch.
-* Built with efficiency in mind: Because speed of iteration matters, components
- are as fast and memory-efficient as possible. xFormers contains its own CUDA
- kernels, but dispatches to other libraries when relevant.
+It provides a high-level, ergonomic interface over the Model Context
+Protocol, making it easy to expose tools, resources, and prompts to
+LLMs and agents.