Gaetan Lepage 2025-06-06 10:25:38 +02:00
parent fe80df2ba6
commit b766cc0cf8

View file

@ -1,5 +1,6 @@
{ {
lib, lib,
stdenv,
buildPythonPackage, buildPythonPackage,
fetchFromGitHub, fetchFromGitHub,
@ -7,6 +8,7 @@
hatchling, hatchling,
# dependencies # dependencies
authlib,
exceptiongroup, exceptiongroup,
httpx, httpx,
mcp, mcp,
@ -14,24 +16,24 @@
python-dotenv, python-dotenv,
rich, rich,
typer, typer,
websockets,
# tests # tests
dirty-equals, dirty-equals,
fastapi, fastapi,
pytest-httpx,
pytestCheckHook, pytestCheckHook,
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "fastmcp"; pname = "fastmcp";
version = "2.4.0"; version = "2.7.0";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jlowin"; owner = "jlowin";
repo = "fastmcp"; repo = "fastmcp";
tag = "v${version}"; tag = "v${version}";
hash = "sha256-F4lgMm/84svLZo6SZ7AubsC73s4tffqjJcd9gvA7hGA="; hash = "sha256-UQV/hIu96ukpJxUhOux0mos0o6j4kvsFp2NJHa47tbw=";
}; };
postPatch = '' postPatch = ''
@ -45,6 +47,7 @@ buildPythonPackage rec {
]; ];
dependencies = [ dependencies = [
authlib
exceptiongroup exceptiongroup
httpx httpx
mcp mcp
@ -52,7 +55,6 @@ buildPythonPackage rec {
python-dotenv python-dotenv
rich rich
typer typer
websockets
]; ];
pythonImportsCheck = [ "fastmcp" ]; pythonImportsCheck = [ "fastmcp" ];
@ -60,9 +62,28 @@ buildPythonPackage rec {
nativeCheckInputs = [ nativeCheckInputs = [
dirty-equals dirty-equals
fastapi fastapi
pytest-httpx
pytestCheckHook pytestCheckHook
]; ];
disabledTests = [
# AssertionError: assert 'INFO' == 'DEBUG'
"test_temporary_settings"
];
disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [
# RuntimeError: Server failed to start after 10 attempts
"tests/auth/providers/test_bearer.py"
"tests/auth/test_oauth_client.py"
"tests/client/test_openapi.py"
"tests/client/test_sse.py"
"tests/client/test_streamable_http.py"
"tests/server/http/test_http_dependencies.py"
"tests/server/http/test_http_dependencies.py"
];
__darwinAllowLocalNetworking = true;
meta = { meta = {
description = "The fast, Pythonic way to build MCP servers and clients"; description = "The fast, Pythonic way to build MCP servers and clients";
changelog = "https://github.com/jlowin/fastmcp/releases/tag/v${version}"; changelog = "https://github.com/jlowin/fastmcp/releases/tag/v${version}";