From 65ce6d27bd4a1c56ac82d6d62b9c5828071e2d78 Mon Sep 17 00:00:00 2001 From: Naseem AlNaji Date: Fri, 3 Jul 2026 20:13:24 -0400 Subject: [PATCH] chore: final mcpcat release 0.1.15, deprecated in favor of agentcat The package is renamed to 'agentcat' (agentcat==1.0.0 on PyPI). This final mcpcat release keeps working unchanged but surfaces the rename everywhere PyPI allows: - FutureWarning on import (visible under default filters, stderr-only so stdio MCP transports are unaffected) - Development Status :: 7 - Inactive classifier + DEPRECATED description prefix + Migration project URL - README rename callout (renders on the PyPI page; wording mirrors the typescript-sdk deprecation branch) - sdist only-include allowlist so untracked working-tree files can never be swept into the tarball No behavior or dependency changes; mcpcat-api and the api.mcpcat.io endpoint stay as-is. Claude-Session: https://claude.ai/code/session_01D7YNTkExp4PMpZZugKXbpb --- README.md | 3 +++ pyproject.toml | 22 +++++++++++++++++++--- src/mcpcat/__init__.py | 12 ++++++++++++ tests/test_deprecation_notice.py | 31 +++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 tests/test_deprecation_notice.py diff --git a/README.md b/README.md index fb1e4d2..6698262 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +> [!IMPORTANT] +> **MCPcat is now AgentCat** 🐱 — same team, same product, new name. This package has been renamed to [`agentcat`](https://pypi.org/project/agentcat/) (`pip install agentcat`, starts at v1.0.0). `mcpcat` keeps working forever, but new features land only in `agentcat`. Upgrading takes a few minutes — see the [migration guide](./MIGRATION.md). +
diff --git a/pyproject.toml b/pyproject.toml index 0f65631..c567d6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "mcpcat" -version = "0.1.15b2" -description = "Analytics Tool for MCP Servers - provides insights into MCP tool usage patterns" +version = "0.1.15" +description = "DEPRECATED — renamed to 'agentcat' (pip install agentcat). Analytics Tool for MCP Servers - provides insights into MCP tool usage patterns" authors = [ { name = "MCPCat", email = "support@mcpcat.io" }, ] @@ -9,7 +9,7 @@ readme = "README.md" license = { text = "MIT" } requires-python = ">=3.10" classifiers = [ - "Development Status :: 2 - Pre-Alpha", + "Development Status :: 7 - Inactive", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", @@ -28,6 +28,7 @@ dependencies = [ "Homepage" = "https://github.com/MCPCat/mcpcat-python-sdk" "Bug Tracker" = "https://github.com/MCPCat/mcpcat-python-sdk/issues" "Repository" = "https://github.com/MCPCat/mcpcat-python-sdk" +"Migration" = "https://pypi.org/project/agentcat/" [project.optional-dependencies] community = [ @@ -48,6 +49,18 @@ build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/mcpcat"] +# Explicit sdist allowlist: the default file selection sweeps untracked +# working-tree files (local tool configs, build outputs) into the tarball. +[tool.hatch.build.targets.sdist] +only-include = [ + "src/mcpcat", + "tests", + "README.md", + "LICENSE", + "CONTRIBUTING.md", + "pyproject.toml", +] + [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto" @@ -67,6 +80,9 @@ filterwarnings = [ # would still surface. Format: action:message:category:module:lineno "ignore:websockets\\.legacy is deprecated:DeprecationWarning:websockets.legacy", "ignore:websockets\\.server\\.WebSocketServerProtocol is deprecated:DeprecationWarning:uvicorn.protocols.websockets.websockets_impl", + # Our own rename notice (mcpcat -> agentcat) fires on every import of the + # package; visibility is covered by tests/test_deprecation_notice.py. + "ignore:The 'mcpcat' package has been renamed:FutureWarning", ] [tool.mypy] diff --git a/src/mcpcat/__init__.py b/src/mcpcat/__init__.py index 4b6edb8..5e0280f 100644 --- a/src/mcpcat/__init__.py +++ b/src/mcpcat/__init__.py @@ -8,6 +8,18 @@ __version__ = version("mcpcat") +# FutureWarning (not DeprecationWarning): it must be visible by default to end +# users of servers that embed this SDK, and it writes to stderr, which is safe +# for stdio MCP transports. +warnings.warn( + "The 'mcpcat' package has been renamed to 'agentcat'. This is the final " + "mcpcat release; it keeps working, but all new development ships in " + "'agentcat'. Migrate: pip install agentcat (import agentcat; " + "agentcat.track(...)). See https://pypi.org/project/agentcat/", + FutureWarning, + stacklevel=2, +) + from mcpcat.modules.overrides.mcp_server import override_lowlevel_mcp_server from mcpcat.modules.session import get_session_info, new_session_id diff --git a/tests/test_deprecation_notice.py b/tests/test_deprecation_notice.py new file mode 100644 index 0000000..40cb995 --- /dev/null +++ b/tests/test_deprecation_notice.py @@ -0,0 +1,31 @@ +"""The mcpcat -> agentcat rename notice must be visible with default warning +filters (the reason it is a FutureWarning), and must never touch stdout, +which would corrupt stdio MCP transports.""" + +import subprocess +import sys + + +def _import_mcpcat_subprocess() -> subprocess.CompletedProcess: + # A fresh interpreter with default warning filters — pytest's own filter + # config must not leak into what real users see. + return subprocess.run( + [sys.executable, "-c", "import mcpcat"], + capture_output=True, + text=True, + timeout=60, + ) + + +def test_rename_notice_visible_by_default(): + result = _import_mcpcat_subprocess() + assert result.returncode == 0 + assert "FutureWarning" in result.stderr + assert "renamed to 'agentcat'" in result.stderr + assert "pip install agentcat" in result.stderr + + +def test_rename_notice_never_writes_to_stdout(): + result = _import_mcpcat_subprocess() + assert result.returncode == 0 + assert result.stdout == ""