From 6e7a99d8a4c5b3c2baca6b770b29189b9add18d9 Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Sun, 19 Apr 2026 23:25:55 -0700 Subject: [PATCH 1/4] python3Packages.fastmcp: 2.14.5 -> 3.2.3 --- .../python-modules/fastmcp/default.nix | 112 ++++++++++++------ 1 file changed, 75 insertions(+), 37 deletions(-) diff --git a/pkgs/development/python-modules/fastmcp/default.nix b/pkgs/development/python-modules/fastmcp/default.nix index 18897706e7a0..5a82e61c88cf 100644 --- a/pkgs/development/python-modules/fastmcp/default.nix +++ b/pkgs/development/python-modules/fastmcp/default.nix @@ -12,23 +12,32 @@ # dependencies anthropic, authlib, + azure-identity, cyclopts, exceptiongroup, httpx, jsonref, jsonschema-path, mcp, + fakeredis, + google-genai, openai, openapi-pydantic, + opentelemetry-api, packaging, platformdirs, py-key-value-aio, pydantic, + pydantic-monty, pydocket, + pyjwt, pyperclip, python-dotenv, + pyyaml, rich, + uncalled-for, uvicorn, + watchfiles, websockets, # tests @@ -37,6 +46,7 @@ fastapi, inline-snapshot, lupa, + opentelemetry-sdk, psutil, pytest-asyncio, pytest-httpx, @@ -45,14 +55,14 @@ buildPythonPackage (finalAttrs: { pname = "fastmcp"; - version = "2.14.5"; + version = "3.2.3"; pyproject = true; src = fetchFromGitHub { owner = "jlowin"; repo = "fastmcp"; tag = "v${finalAttrs.version}"; - hash = "sha256-j3aUvAKm0rW5X/l1VXoSBc5fCjSLxnyznwzj1D3E7Ck="; + hash = "sha256-YfFAJvfKLOgfGFWyQmR4FGHrRc066Y0mAYhXJqJ9vyw="; }; build-system = [ @@ -61,6 +71,7 @@ buildPythonPackage (finalAttrs: { ]; pythonRelaxDeps = [ + "py-key-value-aio" "pydocket" ]; dependencies = [ @@ -72,25 +83,39 @@ buildPythonPackage (finalAttrs: { jsonschema-path mcp openapi-pydantic + opentelemetry-api packaging platformdirs py-key-value-aio pydantic - pydocket pyperclip python-dotenv + pyyaml rich + uncalled-for uvicorn + watchfiles websockets ] - ++ py-key-value-aio.optional-dependencies.disk + ++ py-key-value-aio.optional-dependencies.filetree ++ py-key-value-aio.optional-dependencies.keyring ++ py-key-value-aio.optional-dependencies.memory ++ pydantic.optional-dependencies.email; optional-dependencies = { anthropic = [ anthropic ]; + azure = [ + azure-identity + pyjwt + ]; + code-mode = [ pydantic-monty ]; + gemini = [ google-genai ]; openai = [ openai ]; + tasks = [ + pydocket + fakeredis + ] + ++ fakeredis.optional-dependencies.lua; }; pythonImportsCheck = [ "fastmcp" ]; @@ -101,31 +126,21 @@ buildPythonPackage (finalAttrs: { fastapi inline-snapshot lupa + opentelemetry-sdk psutil pytest-asyncio pytest-httpx pytestCheckHook writableTmpDirAsHomeHook ] - ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies + ++ finalAttrs.passthru.optional-dependencies.anthropic + ++ finalAttrs.passthru.optional-dependencies.azure + ++ finalAttrs.passthru.optional-dependencies.code-mode + ++ finalAttrs.passthru.optional-dependencies.gemini + ++ finalAttrs.passthru.optional-dependencies.openai ++ inline-snapshot.optional-dependencies.dirty-equals; disabledTests = [ - # redis.exceptions.ResponseError: unknown command `evalsha`, with args beginning with: - "test_get_prompt_as_task_returns_prompt_task" - "test_prompt_task_server_generated_id" - - "test_logging_middleware_with_payloads" - "test_structured_logging_middleware_produces_json" - - # AssertionError: assert 'INFO' == 'DEBUG' - "test_temporary_settings" - - # mcp.shared.exceptions.McpError: Connection closed - "test_log_file_captures_stderr_output_with_path" - "test_log_file_captures_stderr_output_with_textio" - "test_log_file_none_uses_default_behavior" - # RuntimeError: Client failed to connect: Connection closed "test_keep_alive_maintains_session_across_multiple_calls" "test_keep_alive_false_starts_new_session_across_multiple_calls" @@ -148,32 +163,55 @@ buildPythonPackage (finalAttrs: { "test_timeout" "test_timeout_tool_call_overrides_client_timeout_even_if_lower" - # assert 0 == 2 + # Requires prefab-ui (optional dependency) + "test_auto_registers_renderer_resource" + "test_equivalent_to_app_true" + + # Requires pydocket (tasks optional dependency, not in test inputs) + "test_mounted_server_does_not_have_docket" + "test_get_tasks_returns_task_eligible_tools" + "test_task_teardown_does_not_hang" + "test_background_task_can_read_snapshotted_request_headers" + "test_background_task_current_http_dependencies_restore_headers" + "test_task_execution_auto_populated_for_task_enabled_tool" + "test_function_tool_task_config_still_works" + "test_async_partial_with_task_true_does_not_raise" + "test_sync_partial_with_task_true_raises" + "test_is_docket_available" + "test_require_docket_passes_when_installed" + + # Shared dependency caching differs in sandbox + "TestSharedDependencies" + + # AssertionError: assert 'INFO' == 'DEBUG' + "test_temporary_settings" + + # Subprocess-based multi-client tests fail in sandbox "test_multi_client" + "test_multi_server" + "test_single_server_config_include_tags_filtering" + "test_server_starts_without_auth" "test_canonical_multi_client_with_transforms" - - # AssertionError: assert {'annotations...object'}, ...} == {'annotations...sers']}}, ...} - "test_list_tools" - - # AssertionError: assert len(caplog.records) == 1 - "test_log" - - # assert [TextContent(...e, meta=None)] == [TextContent(...e, meta=None)] - "test_read_resource_tool_works" - - # fastmcp.exceptions.ToolError: Unknown tool - "test_multi_client_with_logging" - "test_multi_client_with_elicitation" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # RuntimeError: Server failed to start after 10 attempts "test_unauthorized_access" - - # Failed: DID NOT RAISE "test_stateless_proxy" ]; - disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ + disabledTestPaths = [ + # Requires prefab-ui (optional dependency) + "tests/apps" + "tests/test_apps_prefab.py" + "tests/test_fastmcp_app.py" + # Subprocess crash recovery tests are flaky in sandbox + "tests/client/test_stdio.py" + # Requires pydocket/fakeredis (tasks optional dependency, not in test inputs) + "tests/server/tasks" + "tests/server/test_server_docket.py" + "tests/client/tasks" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ # RuntimeError: Server failed to start after 10 attempts "tests/client/auth/test_oauth_client.py" "tests/client/test_sse.py" From 4782412c31257713cd2f9f479e9c5a0f630dd0e9 Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Sun, 19 Apr 2026 23:25:55 -0700 Subject: [PATCH 2/4] ha-mcp: 6.7.1 -> 7.3.0 - Remove jq dependency (dropped upstream) - Add pythonRelaxDeps for strict upstream version pins - Fix updateScript with --use-github-releases to handle dev pre-releases flooding the GitHub releases feed --- pkgs/by-name/ha/ha-mcp/package.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ha/ha-mcp/package.nix b/pkgs/by-name/ha/ha-mcp/package.nix index a70f3b510f09..2c956dd86d5e 100644 --- a/pkgs/by-name/ha/ha-mcp/package.nix +++ b/pkgs/by-name/ha/ha-mcp/package.nix @@ -7,27 +7,28 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "ha-mcp"; - version = "6.7.1"; + version = "7.3.0"; pyproject = true; src = fetchFromGitHub { owner = "homeassistant-ai"; repo = "ha-mcp"; tag = "v${finalAttrs.version}"; - hash = "sha256-CQbjPEtCos0Fi6aAaIWSRMCUQKmjYviYkvJZzbCZg6Y="; + hash = "sha256-boWqv8lSN/UiqSRhVBgbucX+RC6q14Oa4WzkJPeZzVw="; }; build-system = with python3Packages; [ setuptools ]; + pythonRelaxDeps = true; + dependencies = with python3Packages; [ cryptography fastmcp httpx - jq pydantic python-dotenv truststore @@ -39,7 +40,10 @@ python3Packages.buildPythonApplication (finalAttrs: { doCheck = false; passthru.updateScript = nix-update-script { - extraArgs = [ "--version-regex=^v([0-9]+\\.[0-9]+\\.[0-9]+)$" ]; + extraArgs = [ + "--use-github-releases" + "--version-regex=^v([0-9]+\\.[0-9]+\\.[0-9]+)$" + ]; }; pythonImportsCheck = [ "ha_mcp" ]; From 406eb95d5de4444af1c038d19189aad0567f7f05 Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Sun, 19 Apr 2026 23:25:55 -0700 Subject: [PATCH 3/4] home-assistant-custom-components.ha_mcp_tools: 7.2.0 -> 7.3.0 - Add ruamel-yaml dependency (new upstream requirement) - Fix updateScript with --use-github-releases --- .../custom-components/ha_mcp_tools/package.nix | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/pkgs/servers/home-assistant/custom-components/ha_mcp_tools/package.nix b/pkgs/servers/home-assistant/custom-components/ha_mcp_tools/package.nix index b4d17511ed30..fe84229bd446 100644 --- a/pkgs/servers/home-assistant/custom-components/ha_mcp_tools/package.nix +++ b/pkgs/servers/home-assistant/custom-components/ha_mcp_tools/package.nix @@ -3,22 +3,30 @@ buildHomeAssistantComponent, fetchFromGitHub, nix-update-script, + ruamel-yaml, }: buildHomeAssistantComponent rec { owner = "homeassistant-ai"; domain = "ha_mcp_tools"; - version = "7.2.0"; + version = "7.3.0"; src = fetchFromGitHub { owner = "homeassistant-ai"; repo = "ha-mcp"; tag = "v${version}"; - hash = "sha256-1SiWrrUSMU/Pe3vXZIPdUwpVhZM41avmjhO+PFLWmUE="; + hash = "sha256-boWqv8lSN/UiqSRhVBgbucX+RC6q14Oa4WzkJPeZzVw="; }; + dependencies = [ + ruamel-yaml + ]; + passthru.updateScript = nix-update-script { - extraArgs = [ "--version-regex=^v([0-9]+\\.[0-9]+\\.[0-9]+)$" ]; + extraArgs = [ + "--use-github-releases" + "--version-regex=^v([0-9]+\\.[0-9]+\\.[0-9]+)$" + ]; }; meta = { From d2c233044de70f0932784687bcabba6349d35f3f Mon Sep 17 00:00:00 2001 From: Jamie Magee Date: Tue, 28 Apr 2026 22:20:05 -0700 Subject: [PATCH 4/4] mcp-nixos: 2.3.1 -> 2.4.3 --- pkgs/by-name/mc/mcp-nixos/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/mc/mcp-nixos/package.nix b/pkgs/by-name/mc/mcp-nixos/package.nix index ef1053c62ccb..bdf961f8c97b 100644 --- a/pkgs/by-name/mc/mcp-nixos/package.nix +++ b/pkgs/by-name/mc/mcp-nixos/package.nix @@ -6,14 +6,14 @@ python3Packages.buildPythonApplication (finalAttrs: { pname = "mcp-nixos"; - version = "2.3.1"; + version = "2.4.3"; pyproject = true; src = fetchFromGitHub { owner = "utensils"; repo = "mcp-nixos"; tag = "v${finalAttrs.version}"; - hash = "sha256-A7KhRVOqLmtta507DPZoKbO8D1AlMMDWLMfHEBhEAxY="; + hash = "sha256-mWq9nnL4IGhUFkXJr8+t6BresOTDFS1caG8NuFqjrJg="; }; build-system = [ python3Packages.hatchling ];