content: [project]
  name = "mcpcat"
  version = "0.1.9"
  description = "Analytics Tool for MCP Servers - provides insights into MCP tool usage patterns"
  authors = [
      { name = "MCPCat", email = "support@mcpcat.io" },
  ]
  readme = "README.md"
  license = { text = "MIT" }
  requires-python = ">=3.10"
  classifiers = [
      "Development Status :: 2 - Pre-Alpha",
      "Intended Audience :: Developers",
      "License :: OSI Approved :: MIT License",
      "Programming Language :: Python :: 3",
      "Programming Language :: Python :: 3.10",
      "Programming Language :: Python :: 3.11",
      "Programming Language :: Python :: 3.12",
  ]
  dependencies = [
      "mcp>=1.2.0",
      "mcpcat-api==0.1.4",
      "pydantic>=2.0.0",
      "requests>=2.31.0",
  ]
  
  [project.urls]
  "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"
  
  [project.optional-dependencies]
  community = [
      "fastmcp>=2.7.0,!=2.9.*",
  ]
  dev = [
      "pytest>=7.0.0",
      "pytest-asyncio>=0.21.0",
      "mypy>=1.0.0",
      "ruff>=0.1.0",
      "freezegun>=1.2.0",
  ]
  
  [build-system]
  requires = ["hatchling"]
  build-backend = "hatchling.build"
  
  [tool.hatch.build.targets.wheel]
  packages = ["src/mcpcat"]
  
  [tool.pytest.ini_options]
  testpaths = ["tests"]
  asyncio_mode = "auto"
  asyncio_default_fixture_loop_scope = "function"
  python_files = "test_*.py"
  python_classes = "Test*"
  python_functions = "test_*"
  
  [tool.mypy]
  python_version = "3.10"
  strict = true
  warn_return_any = true
  warn_unused_configs = true
  no_implicit_reexport = true
  namespace_packages = true
  exclude = ["venv", "build", "dist"]
  
  [[tool.mypy.overrides]]
  module = "mcp.*"
  ignore_missing_imports = true
  
  [tool.ruff]
  target-version = "py310"
  line-length = 88
  select = [
      "E",  # pycodestyle errors
      "W",  # pycodestyle warnings
      "F",  # pyflakes
      "I",  # isort
      "B",  # flake8-bugbear
      "C4", # flake8-comprehensions
      "UP", # pyupgrade
  ]
  ignore = []
  exclude = [
      ".git",
      ".ruff_cache",
      ".venv",
      "venv",
      "__pycache__",
      "build",
      "dist",
  ]
  
  [tool.ruff.isort]
  known-first-party = ["mcpcat"]
  
  [dependency-groups]
  dev = [
      "freezegun>=1.5.2",
      "pytest-asyncio>=1.0.0",
      "pytest-cov>=6.1.1",
  ]
  