Skip to content

Contributing

Thank you for your interest in contributing to abi-to-mcp! This section covers everything you need to get started.

Ways to Contribute

  • Report Bugs


    Found a bug? Open an issue with details to help us fix it.

    GitHub Issues

  • Suggest Features


    Have an idea? Open a discussion to share your thoughts.

    Discussions

  • Submit Code


    Fix a bug or add a feature. See our development guide.

    Development

  • Improve Docs


    Help improve documentation, add examples, fix typos.

    Documentation

Quick Start

# Fork and clone
git clone https://github.com/YOUR-USERNAME/UCAI.git
cd UCAI

# Setup development environment
make setup

# Run tests
make test

# Make your changes, then submit a PR!

Development Guides

Guide Description
Development Setup Environment setup and workflow
Architecture Project structure and design
Testing Writing and running tests

Contribution Guidelines

Code Style

  • We use Ruff for linting and formatting
  • Type hints are required for all public functions
  • Docstrings follow Google style
# Format code
make format

# Run linter
make lint

Commit Messages

Use conventional commits:

feat: add support for ERC4626 detection
fix: handle empty ABI arrays
docs: update type mapping table
test: add tests for nested tuples

Pull Request Process

  1. Fork the repository
  2. Create a branch from main
  3. Make changes with tests
  4. Run checks (make check)
  5. Submit PR with description

Code Review

All submissions require review. We aim to review within:

  • Bug fixes: 1-2 days
  • Features: 3-5 days
  • Major changes: 1-2 weeks

Documentation

Documentation is in docs/ using MkDocs with Material theme.

Local Preview

cd docs
pip install mkdocs-material mkdocstrings[python]
mkdocs serve

Visit http://localhost:8000

Doc Structure

Path Content
docs/getting-started/ New user tutorials
docs/cli/ CLI command reference
docs/concepts/ Conceptual explanations
docs/guides/ How-to guides
docs/api/ Python API reference
docs/reference/ Reference tables
docs/contributing/ Contribution guides

Community

License

By contributing, you agree that your contributions will be licensed under the MIT License.

Code of Conduct

We are committed to providing a welcoming and inclusive environment. Please:

  • Be respectful and constructive
  • Welcome newcomers
  • Focus on the code, not the person
  • Accept constructive criticism gracefully