Skip to content

Contributing

Thank you for your interest in contributing to the Falcon MCP Server! This guide covers the contribution workflow, commit standards, and how to get help.

  1. Find an issue in the GitHub Issues section, or identify a feature to add.

  2. Fork the repository to your GitHub account.

  3. Clone your fork:

    Terminal window
    git clone https://github.com/your-username/falcon-mcp.git
    cd falcon-mcp
  4. Create a branch:

    Terminal window
    git checkout -b my-feature-branch
  5. Install dependencies:

    Terminal window
    uv sync --all-extras
    source .venv/bin/activate
  6. Make your changes following the coding standards below.

  7. Run linting:

    Import sorting
    uv run ruff check . --select I
    General linting
    uv run ruff check .
    Auto-fix issues
    uv run ruff check --fix .
  8. Commit using Conventional Commits (see below).

  9. Push and open a pull request to the upstream repository.

This project uses Conventional Commits for automated releases and semantic versioning.

Format: <type>[optional scope]: <description>

Common types:

  • feat: — new feature (triggers minor version bump)
  • fix: — bug fix (triggers patch version bump)
  • docs: — documentation changes
  • refactor: — code changes that neither fix bugs nor add features
  • test: — adding or correcting tests
  • chore: — build process or tooling changes

Examples with scopes (preferred):

git commit -m "feat(modules/cloud): add list kubernetes clusters tool"
git commit -m "fix(modules/detections): resolve authentication error"
git commit -m "docs(contributing): update conventional commits guidance"
git commit -m "feat(resources): add FQL guide for hosts module"

Breaking changes:

Terminal window
git commit -m "feat!: change API authentication method"
# or include BREAKING CHANGE: in the footer

Rebase frequently to keep your fork current with upstream:

Terminal window
git fetch upstream
git rebase upstream/main

See GitHub’s fork syncing docs for details.

Unit tests:

Terminal window
uv run pytest

Integration tests (requires API credentials):

Terminal window
uv run pytest --run-integration tests/integration/

E2E tests (requires API credentials + OpenAI key):

Terminal window
uv run pytest --run-e2e tests/e2e/