PostHog MCP Server

Official
[project] name = "posthog-mcp" version = "0.1.0" description = "Add your description here" readme = "README.md" requires-python = ">=3.13" dependencies = [ "httpx>=0.28.1", "mcp[cli]>=1.3.0", "python-dotenv>=1.0.1", ] [dependency-groups] dev = [ "ruff>=0.9.10", ] [tool.ruff] # Enable pycodestyle (E), pyflakes (F), mccabe (C90), isort (I), pep8-naming (N), # flake8-bugbear (B), flake8-comprehensions (C4), flake8-simplify (SIM), # flake8-unused-arguments (ARG), pylint (PL) select = ["E", "F", "C90", "I", "N", "B", "C4", "SIM", "ARG", "PL"] ignore = [ "E501", # Line too long (handled by formatter) "B008", # Do not perform function call in argument defaults "C901", # Too complex ] # Same as Black line-length = 88 indent-width = 4 # Assume Python 3.8+ target-version = "py38" [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" [tool.ruff.lint.isort] # known-first-party = ["our_package_name"] known-third-party = ["pytest", "requests"] section-order = ["future", "standard-library", "third-party", "first-party", "local-folder"] [tool.ruff.lint.mccabe] max-complexity = 10 [tool.ruff.lint.pep8-naming] classmethod-decorators = ["classmethod", "pydantic.validator"] [tool.ruff.lint.per-file-ignores] "__init__.py" = ["F401"] # Ignore unused imports in __init__.py "tests/*" = ["ARG", "PLR2004"] # Ignore unused arguments and magic numbers in tests