Thanks for your interest in contributing! This guide will help you get started.
Never made a PR before? Welcome! Here's how to contribute step-by-step.
Click the Fork button on the Dedalus MCP repo. This creates your own copy.
git clone https://github.com/YOUR-USERNAME/dedalus-mcp-python.git
cd dedalus-mcp-python# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv syncgit checkout -b fix/my-first-contributionPick a name that describes your change: fix/typo-in-readme, feat/add-timeout-option, docs/clarify-setup.
Edit the code, then run the checks:
uv run ruff check . # Lint
uv run ruff format . # Format
uv run pytest # Testgit add .
git commit -m "fix: correct typo in error message"The commit type (fix:, feat:, docs:) matters—it determines the version bump. See conventional commits.
git push origin fix/my-first-contributionGo to your fork on GitHub. You'll see a banner to Compare & pull request. Click it!
- Base repository:
dedalus-labs/dedalus-mcp-python, branchmain - Head repository: your fork, your branch
- Write a clear title (this becomes the commit message when we merge)
- Describe what you changed and why
CI will run automatically. A maintainer will review your PR and may suggest changes. Don't worry—this is normal and collaborative!
Once merged, you're officially a contributor. Your name appears in the git history, and if your change is a feat: or fix:, it'll be in the next release changelog. Thank you for contributing!
All development happens on main. There's no dev or staging branch—PRs go directly to main.
Tips:
- Short-lived branches: Aim to merge within days, not weeks. Long-lived branches accumulate merge conflicts.
- Small PRs are better: Easier to review, faster to merge, lower risk.
- Work-in-progress is fine: Use feature flags or don't expose unfinished work in the public API.
mainis always shippable: Don't merge broken code. If something slips through, we revert quickly.
See RELEASE.md for how your commits become releases.
uv run ruff check . # Lint
uv run ruff format --check . # Format check
uv run mypy src/dedalus_mcp # Type check
uv run pytest # TestAll must pass. See the style guide.
If you use AI tools (Copilot, Claude, Cursor), mention it in your PR. You must understand code you submit.
When a new MCP protocol version is released, Dedalus MCP must be updated. Contributors can help by:
- Update
FEATURE_REGISTRYinsrc/dedalus_mcp/versioning.py - Add version tests in
tests/protocol_versions/{version}/ - Copy the schema to
tests/protocol_versions/{version}/schema.json
See versioning.md for details.
| Resource | Description |
|---|---|
| RELEASE.md | How releases work |
| Style Guide | Python conventions |
| Conventional Commits | Commit message format |
| GLOSSARY.md | MCP terminology |
| SECURITY.md | Reporting vulnerabilities |
| CODE_OF_CONDUCT.md | Community standards |