READ THIS FIRST: CONTRIBUTING.md
Before you start contributing, please review the project's contribution guidelines.
Then read the Theory of the System — the causal design narrative and the core invariants (control-plane/data-plane split, generic reverse-proxy gateway, A2A peer-to-peer, config parity, fail-closed admission, and more). A change that breaks an invariant without arguing for it will be flagged in review, so understand them before you design.
We recommend the fastest option to get started:
Complete this setup guide first:
- macOS Setup Guide
- Time to first run: ~30 minutes
If working on EC2 or a Linux server, complete this guide first:
- Complete Configuration Guide
- Time to first run: ~60 minutes
Before making any code changes, ask your AI coding assistant to read:
LLM/AI Documentation (Critical for understanding the project):
- docs/llms.txt
- docs/design/theory-of-the-system.md - the system's core invariants and the reasoning behind them
Coding Standards and Guidelines:
- CLAUDE.md - Project-specific coding standards
This project uses CLAUDE.md for coding standards. The file is already included in the repository root - make sure to review it before contributing.
Before submitting a pull request, you must run and pass the test suite:
# Generate fresh credentials (tokens expire in 5 minutes)
./credentials-provider/generate_creds.sh
# Run tests locally (skip production for fast iteration)
./tests/run_all_tests.sh --skip-production# Full test suite including production tests
./tests/run_all_tests.sh
# All tests must pass (0 failures) before mergingSee the comprehensive testing documentation:
- tests/README.md - Start here! Navigation guide with access control overview
- tests/TEST_QUICK_REFERENCE.md - Quick reference for how-to guides
- tests/lob-bot-access-control-testing.md - Access control test details
- auth_server/scopes.yml - Permission definitions (admin, LOB1, LOB2)
Agent CRUD Testing:
./credentials-provider/generate_creds.sh
bash tests/agent_crud_test.shAccess Control Testing (LOB Bots):
./keycloak/setup/generate-agent-token.sh admin-bot
./keycloak/setup/generate-agent-token.sh lob1-bot
./keycloak/setup/generate-agent-token.sh lob2-bot
bash tests/run-lob-bot-tests.shCheck Test Logs:
ls -lh /tmp/*_*.log
grep -i "error\|fail" /tmp/*.logImportant: There is no direct access to this repository. To contribute:
-
Fork the repository on GitHub
https://github.com/agentic-community/mcp-gateway-registry -
Clone your fork locally
git clone https://github.com/YOUR-USERNAME/mcp-gateway-registry.git cd mcp-gateway-registry -
Create a feature branch
git checkout -b feat/your-feature-name
-
Make your changes following the coding standards in CLAUDE.md
-
Commit and push to your fork
git push origin feat/your-feature-name
-
Create a Pull Request to the main repository
- Use a clear, descriptive PR title
- Reference any related issues
- Include test results and screenshots if applicable
Before submitting a pull request:
- Completed one of the setup guides (macOS or EC2)
- Read docs/llms.txt
- Read CLAUDE.md (coding standards)
- Code follows project conventions (use ruff, mypy, pytest)
- Generated fresh credentials:
./credentials-provider/generate_creds.sh - Local tests pass:
./tests/run_all_tests.sh --skip-production - PR merge tests pass:
./tests/run_all_tests.sh(all tests must pass) - Reviewed test documentation: tests/README.md
- Changes are pushed to a fork, not directly to this repo
- Pull request is created with clear description
- Check the CONTRIBUTING.md file for more details
- Review existing PRs to see contribution patterns
- Ask your coding assistant to review the documentation with you
Happy coding! 🚀