[build-system] requires = ["setuptools>=42", "wheel"] build-backend = "setuptools.build_meta" [project] name = "falcon-mcp-extended" version = "0.9.0" description = "Community extension of CrowdStrike's falcon-mcp MCP server with full Falcon API coverage (~1,296 tools)" readme = "README.md" requires-python = ">=3.11" license = {text = "MIT"} authors = [ {name = "Rijul Sharma", email = "73812101+rijul170@users.noreply.github.com"} ] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", ] dependencies = [ "crowdstrike-falconpy>=1.3.0", "mcp>=1.12.1,<2.0.0", "python-dotenv>=1.1.1", "starlette>=0.27.0", "uvicorn>=0.27.0", ] [project.optional-dependencies] dev = [ "pytest>=7.0.0", "pytest-asyncio>=0.21.0", "mypy>=1.0.0", "langchain-openai>=0.3.28", "mcp-use[search]>=1.3.7", "ruff>=0.12.5", "black>=23.0.0", ] [project.urls] Homepage = "https://github.com/rijul170/falcon-mcp" Issues = "https://github.com/rijul170/falcon-mcp/issues" Upstream = "https://github.com/CrowdStrike/falcon-mcp" [project.scripts] falcon-mcp = "falcon_mcp.server:main" [tool.black] line-length = 100 target-version = ["py311"] [tool.mypy] python_version = "3.11" warn_return_any = false warn_unused_configs = true disallow_untyped_defs = true disallow_incomplete_defs = true # Ignore missing stubs for third-party libraries ignore_missing_imports = true [[tool.mypy.overrides]] module = "tests.*" disallow_untyped_defs = false disallow_incomplete_defs = false disable_error_code = ["arg-type", "valid-type", "attr-defined", "misc"] [[tool.mypy.overrides]] # scripts/ has no __init__.py, so mypy sees its files as top-level modules module = ["scripts.*", "generate_falcon_modules"] disallow_untyped_defs = false disallow_incomplete_defs = false [[tool.mypy.overrides]] module = "falcon_mcp.modules.*" # Pydantic Field() overloads cause call-overload errors - ignore them # Union return types cause union-attr errors - code handles these correctly at runtime # These are not actual type errors, just mypy/pydantic typing quirks disable_error_code = ["call-overload", "return-value", "list-item", "arg-type", "union-attr", "assignment"] disallow_untyped_defs = false [[tool.mypy.overrides]] module = "examples.*" disallow_untyped_defs = false disallow_incomplete_defs = false [tool.ruff] target-version = "py311" line-length = 100 [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto" filterwarnings = [ "ignore::DeprecationWarning:websockets.*:", "ignore::DeprecationWarning:uvicorn.protocols.websockets.*:", "ignore::pydantic.PydanticDeprecatedSince20:langchain_core.*:" ]