Thank you for your interest in contributing to AEGIS MCP Tools! This repository maintains security-critical components, so we have strict review processes.
- Read the Security Policy: All tools must pass security review - see SECURITY.md
- Check Existing Tools: Ensure your tool doesn't duplicate existing functionality
- Open an Issue: Discuss your proposed tool before implementation
git clone https://github.com/YOUR_USERNAME/aegis-mcp-tools.git
cd aegis-mcp-toolsgit checkout -b tool/my-new-tooltools/my-tool/
├── schema.json # MCP schema definition
├── server.py # Implementation (Python or TypeScript)
├── security.yaml # Security manifest
├── README.md # Tool documentation
└── tests/
└── test_my_tool.py # Comprehensive testsEvery tool must include a security.yaml:
tool: my-tool
version: "1.0.0"
description: "Brief description"
security:
permissions:
filesystem:
read: []
write: []
network:
allow: []
deny: ["*"]
resources:
max_memory: "128MB"
max_cpu: "0.5"
timeout: "30s"
audit:
log_all_calls: true
include_args: trueMinimum 80% code coverage required:
# tests/test_my_tool.py
import pytest
from aegis_mcp_tools.my_tool import MyTool
def test_basic_functionality():
tool = MyTool()
result = tool.execute({"input": "test"})
assert result["success"] is True
def test_security_violation():
tool = MyTool()
with pytest.raises(SecurityError):
tool.execute({"path": "/etc/passwd"})# Install dev dependencies
pip install -e ".[dev]"
# Run linters
make lint
# Run security scanner
make security-scan
# Run tests
make testInclude in your PR description:
- What does this tool do?
- Why is it needed?
- What are the security implications?
- How was it tested?
- Security review checklist completed
Before submitting, ensure:
- Input Validation: All user inputs are validated and sanitized
- Resource Limits: Memory, CPU, and timeout limits defined
- Network Policy: Explicit allowlist, no wildcards unless justified
- Filesystem Access: Minimal paths, no access to sensitive directories
- Error Handling: Errors don't leak sensitive information
- Audit Logging: All operations logged with context
- Rate Limiting: Prevents abuse
- Tests: Security-focused tests included
- Documentation: Threat model documented
- Follow PEP 8
- Use type hints
- Maximum line length: 100 characters
- Use
blackfor formatting
- Follow Airbnb style guide
- Strict TypeScript (
strict: true) - Use Prettier for formatting
- All public functions must have docstrings
- Include usage examples
- Document security considerations
System-level tools (filesystem, shell, http)
- Require 2+ maintainer approvals
- Extensive security review
Third-party API integrations (Gmail, Slack, GitHub)
- Require OAuth2/API key handling review
- Rate limiting mandatory
Helper functions and wrappers
- Standard review process
- Maintainers tag releases
- Semantic versioning (MAJOR.MINOR.PATCH)
- Changelog updated
- Security audit before major releases
- Discord: discord.gg/aegis
- Discussions: Use GitHub Discussions
- Email: community@100monkeys.ai
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for helping make AEGIS MCP Tools secure and reliable! 🛡️