[project] name = "fastmcp" dynamic = ["version"] description = "An ergonomic MCP interface" authors = [{ name = "Jeremiah Lowin" }] dependencies = [ "mcp>=1.6.0,<2.0.0", # include to avoid AttributeError: module 'collections' has no attribute 'Callable' "pyreadline3>=3.5.4", "rich>=13.9.4", ] requires-python = ">=3.10" readme = "README.md" license = { text = "Apache-2.0" } [project.scripts] fastmcp = "fastmcp.cli:app" [build-system] requires = ["hatchling>=1.21.0", "hatch-vcs>=0.4.0"] build-backend = "hatchling.build" [dependency-groups] dev = [ "pre-commit", "pyright>=1.1.389", "pytest>=8.3.3", "pytest-asyncio>=0.23.5", "pytest-flakefinder", "pytest-xdist>=3.6.1", "ruff", "copychat>=0.5.2", "ipython>=8.12.3", "pdbpp>=0.10.3", ] [tool.pytest.ini_options] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "session" [tool.hatch.version] source = "vcs" [tool.pyright] include = ["src", "tests"] exclude = ["**/node_modules", "**/__pycache__", ".venv", ".git", "dist"] pythonVersion = "3.10" pythonPlatform = "Darwin" typeCheckingMode = "basic" reportMissingImports = true reportMissingTypeStubs = false useLibraryCodeForTypes = true venvPath = "." venv = ".venv" [tool.ruff.lint] extend-select = ["I"] [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401", "I001", "RUF013"]