Skip to content

Contributing to Autogent MCP Ecosystem

Thank you for your interest in contributing to the Autogent MCP ecosystem! This guide will help you get started with contributing to our open-source projects.

๐ŸŽฏ Overview

The Autogent MCP ecosystem is a collaborative open-source project that welcomes contributions from developers, documentation writers, designers, and users. Whether you're fixing a typo, adding a new feature, or helping with project management, your contributions are valuable.

๐Ÿš€ Quick Start for Contributors

1. Find Your Contribution Area

Interest Repositories Skills Needed
Web Development Portal Next.js, TypeScript, React
Backend Services Registry, Autogent Server Python, FastAPI, PostgreSQL
Java Development Java SDK Java, Spring Boot, Maven
Python Development Python SDK Python, FastAPI, Flask, Django
Node.js Development Node.js SDK TypeScript, Express, Fastify
Documentation Documentation Markdown, MkDocs
Examples & Demos Demo Apps Multiple languages

2. Set Up Your Development Environment

# 1. Fork the repository on GitHub
# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/REPOSITORY_NAME.git
cd REPOSITORY_NAME

# 3. Add upstream remote
git remote add upstream https://github.com/autogentmcp/REPOSITORY_NAME.git

# 4. Install dependencies (varies by project)
# For Node.js projects:
npm install

# For Python projects:
pip install -r requirements.txt
pip install -r requirements-dev.txt

# For Java projects:
mvn clean install

3. Create Your First Contribution

# 1. Create a feature branch
git checkout -b feature/your-feature-name

# 2. Make your changes
# 3. Add tests
# 4. Update documentation
# 5. Commit your changes
git commit -m "feat: add your feature description"

# 6. Push to your fork
git push origin feature/your-feature-name

# 7. Create a Pull Request on GitHub

๐Ÿ“‹ Contribution Types

๐Ÿ”ง Code Contributions

New Features

  • Authentication Methods: Add support for new authentication protocols
  • Vault Providers: Integrate new secret management providers
  • Framework Support: Add support for new web frameworks
  • Monitoring Tools: Enhance observability and monitoring

Bug Fixes

  • Critical Bugs: Security vulnerabilities, data corruption, crashes
  • Performance Issues: Memory leaks, slow queries, inefficient algorithms
  • Integration Issues: SDK integration problems, API compatibility
  • User Experience: UI/UX improvements, error handling

Performance Improvements

  • Caching: Implement or improve caching strategies
  • Database Optimization: Query optimization, indexing
  • Connection Pooling: Optimize database and external service connections
  • Async Processing: Improve asynchronous operations

๐Ÿ“š Documentation Contributions

User Documentation

  • Getting Started Guides: Help new users understand the ecosystem
  • API Reference: Comprehensive API documentation
  • Tutorials: Step-by-step guides for common use cases
  • Best Practices: Security, performance, and architecture guidelines

Developer Documentation

  • Architecture Documentation: System design and architecture decisions
  • Development Setup: Local development environment setup
  • Testing Guidelines: How to write and run tests
  • Release Process: Documentation for maintainers

๐Ÿงช Testing Contributions

Unit Tests

  • Component Testing: Test individual components in isolation
  • Service Testing: Test service-level functionality
  • Integration Testing: Test component interactions
  • Edge Case Testing: Test boundary conditions and error scenarios

End-to-End Tests

  • User Journey Testing: Test complete user workflows
  • API Testing: Test API endpoints and responses
  • Security Testing: Test authentication and authorization
  • Performance Testing: Test system performance under load

๐ŸŽจ Design Contributions

UI/UX Improvements

  • Portal Interface: Improve the management portal interface
  • Documentation Design: Enhance documentation layout and usability
  • Error Messages: Improve error message clarity and helpfulness
  • Mobile Responsiveness: Ensure good mobile experience

Visual Assets

  • Icons and Graphics: Create icons, diagrams, and illustrations
  • Branding: Consistent visual identity across projects
  • Screenshots: Keep documentation screenshots up to date
  • Architecture Diagrams: Visual representations of system architecture

๐Ÿ› ๏ธ Development Guidelines

Code Style

Python Projects

# Use Black for formatting
black .

# Use flake8 for linting
flake8 .

# Use mypy for type checking
mypy .

# Follow PEP 8 conventions
# Use type hints
def process_request(request: Request) -> Response:
    """Process an incoming request."""
    pass

TypeScript/JavaScript Projects

// Use ESLint and Prettier
npm run lint
npm run format

// Use strict TypeScript
// Add JSDoc comments for public APIs
/**
 * Process an incoming request
 * @param request - The request to process
 * @returns The processed response
 */
async function processRequest(request: Request): Promise<Response> {
    // Implementation
}

Java Projects

// Use Checkstyle for style checking
mvn checkstyle:check

// Use SpotBugs for bug detection
mvn spotbugs:check

// Follow Google Java Style Guide
// Add JavaDoc for public APIs
/**
 * Process an incoming request.
 * @param request The request to process
 * @return The processed response
 */
public Response processRequest(Request request) {
    // Implementation
}

Testing Guidelines

Test Structure

# Python test structure
def test_feature_success():
    # Arrange
    setup_test_data()

    # Act
    result = feature_under_test()

    # Assert
    assert result.is_success()
    assert result.data == expected_data

Test Coverage

  • Minimum Coverage: 80% code coverage for new features
  • Critical Paths: 100% coverage for security-critical code
  • Edge Cases: Test error conditions and boundary values
  • Integration Tests: Test component interactions

Documentation Standards

Code Documentation

def authenticate_user(credentials: Credentials) -> AuthResult:
    """
    Authenticate a user with the provided credentials.

    Args:
        credentials: User credentials containing username and password

    Returns:
        AuthResult containing success status and user information

    Raises:
        AuthenticationError: If credentials are invalid
        RateLimitError: If too many attempts have been made
    """

API Documentation

# OpenAPI specification example
/api/users:
  post:
    summary: Create a new user
    description: |
      Creates a new user account with the provided information.
      Requires admin privileges.
    requestBody:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateUserRequest'
    responses:
      '201':
        description: User created successfully
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'

๐Ÿ”„ Pull Request Process

1. Before Creating a PR

Check for Existing Work

  • Search existing issues and PRs
  • Check the project roadmap
  • Discuss major changes in GitHub Discussions

Prepare Your Changes

  • Ensure tests pass locally
  • Update documentation
  • Check code style and linting
  • Verify backwards compatibility

2. Creating the PR

PR Title Format

type(scope): description

Examples:
feat(auth): add OAuth2 authentication support
fix(registry): resolve database connection timeout
docs(api): update authentication endpoint documentation
test(sdk): add integration tests for Java SDK

PR Description Template

## Description
Brief description of the changes made.

## Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update

## Testing
- [ ] Tests pass locally
- [ ] Added tests for new functionality
- [ ] Manual testing completed

## Checklist
- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes

3. Code Review Process

Review Criteria

  • Functionality: Does the code work as intended?
  • Code Quality: Is the code clean, readable, and maintainable?
  • Testing: Are there adequate tests for the changes?
  • Documentation: Is the documentation updated appropriately?
  • Security: Are there any security implications?
  • Performance: Are there any performance impacts?

Responding to Reviews

  • Be Responsive: Address feedback promptly
  • Be Open: Welcome suggestions and improvements
  • Explain Decisions: Justify your implementation choices
  • Ask Questions: Clarify unclear feedback

๐Ÿท๏ธ Issue Management

Issue Types

Bug Reports

**Bug Description**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected Behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Environment**
- OS: [e.g. Windows 10, Ubuntu 20.04]
- Browser: [e.g. Chrome, Firefox]
- Version: [e.g. 1.0.0]

**Additional Context**
Add any other context about the problem here.

Feature Requests

**Is your feature request related to a problem?**
A clear and concise description of what the problem is.

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.

Issue Labels

Label Description
bug Something isn't working
enhancement New feature or request
documentation Improvements or additions to documentation
good first issue Good for newcomers
help wanted Extra attention is needed
priority: high High priority issue
priority: medium Medium priority issue
priority: low Low priority issue

๐ŸŒŸ Recognition and Rewards

Contributor Recognition

  • All Contributors: Listed in project README and release notes
  • Regular Contributors: Invited to maintainer team
  • Significant Contributions: Featured in community spotlights
  • Special Recognition: Mentioned in project announcements

Maintainer Path

Active contributors may be invited to become maintainers:

Maintainer Responsibilities

  • Code Review: Review and approve pull requests
  • Issue Management: Triage and manage issues
  • Release Management: Help with release planning and execution
  • Community Support: Help new contributors get started

Maintainer Requirements

  • Consistent Contributions: Regular, quality contributions over time
  • Technical Knowledge: Deep understanding of the codebase
  • Communication Skills: Good communication with community members
  • Commitment: Ability to dedicate time to maintainer duties

๐Ÿ”’ Security

Security Vulnerabilities

If you discover a security vulnerability:

  1. DO NOT create a public issue
  2. Email security@autogentmcp.org with details
  3. Include detailed description and reproduction steps
  4. Wait for acknowledgment before public disclosure

Security Best Practices

  • Input Validation: Validate all inputs thoroughly
  • Authentication: Implement proper authentication and authorization
  • Encryption: Use encryption for sensitive data
  • Dependencies: Keep dependencies updated
  • Code Review: Security-focused code review for sensitive changes

๐Ÿ“„ License

All components of the Autogent MCP ecosystem are released under the MIT License. This means:

โœ… You Can

  • Use the software for any purpose, including commercial use
  • Modify the source code to fit your needs
  • Distribute copies of the software
  • Sublicense and sell copies of the software
  • Use the software in proprietary applications

โ— You Must

  • Include the copyright notice and license text in any copies
  • Preserve the license and copyright notices

๐Ÿšซ Limitations

  • No Warranty: The software is provided "as is" without warranty
  • No Liability: Authors are not liable for any damages
  • No Trademark: License doesn't grant trademark rights

License Text

MIT License

Copyright (c) 2025 Autogent MCP

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

๐Ÿ“ž Getting Help

Community Support

  • GitHub Discussions: For general questions and discussions
  • Discord: Real-time chat with the community
  • Office Hours: Regular community video calls
  • Mentorship Program: Pair with experienced contributors

Technical Support

  • Documentation: Comprehensive guides and API references
  • Examples: Working code examples and demos
  • Troubleshooting: Common issues and solutions
  • FAQ: Frequently asked questions

๐ŸŽ‰ Thank You!

Thank you for contributing to the Autogent MCP ecosystem! Your contributions help make the project better for everyone. Whether you're fixing a bug, adding a feature, improving documentation, or helping other users, your efforts are appreciated.

Join Our Community

  • GitHub: Follow our repositories for updates
  • Twitter: Follow @autogentmcp for announcements
  • LinkedIn: Connect with the team and other contributors
  • Newsletter: Subscribe for monthly updates

Happy Contributing! ๐Ÿš€

This guide is living documentation. If you have suggestions for improvements, please contribute to this guide as well!