Contributing Guide
Help improve the Arch MCP Server! We welcome contributions of all kinds.For end users: Use the simple uvx installation method. This guide is for developers who want to contribute code.
Before You Start
1
Set up development environment
Follow the Development Setup guide to clone the repository and install dependencies.
2
Review code standards
Read the Code Standards to understand our coding practices.
3
Check existing issues
Browse GitHub Issues to find something to work on or report bugs.
Contribution Guidelines
Core Principles
- Follow the Arch Way - Simplicity, correctness, transparency
- Add tests - Test both Arch and non-Arch scenarios
- Document changes - Update docstrings and user-facing docs
- Keep it minimal - No unnecessary abstractions
- Handle errors gracefully - Never crash the server
What to Contribute
Bug Fixes
Bug Fixes
- Fix crashes or incorrect behavior
- Improve error messages
- Fix documentation typos
New Features
New Features
- Add new MCP tools (search, analysis)
- Add new resources (URI schemes)
- Add new prompts (workflows)
- Enhance security analysis
Performance
Performance
- Optimize slow operations
- Add caching where appropriate
- Reduce network requests
Documentation
Documentation
- Improve user guides
- Add examples
- Fix unclear explanations
Adding Features
New Tools
- Create async function in appropriate module (
wiki.py,aur.py,pacman.py) - Add
@server.tool()decorator inarch_ops_server.py - Add to
list_tools()with schema - Add handler in
call_tool() - Document in examples
New Resources
- Define URI scheme (e.g.,
newtype://identifier) - Add parsing in
read_resource() - Implement fetch logic
- Add to
list_resources() - Document usage
New Prompts
- Design workflow
- Add
@server.prompt()decorator - Implement in
get_prompt() - Add to
list_prompts() - Create example
Pull Request Process
1
Fork and Branch
2
Make Changes
- Follow Code Standards
- Add type hints and docstrings
- Include debug logging
- Handle errors properly
3
Test Your Changes
Run the full testing checklist:
-
uv run python test_server.py- all tests pass - Test with MCP Inspector - tools work correctly
- Test on Arch Linux (if available)
- Test on non-Arch system
- Check logs for errors (
stderr) - Verify error handling works
- Update documentation
4
Commit and Push
5
Open Pull Request
- Go to the original repository
- Click “New Pull Request”
- Select your branch
- Fill in description:
- What does this PR do?
- Why is it needed?
- How was it tested?
- Submit!
Commit Message Format
Follow Conventional Commits specification:feat:- New featurefix:- Bug fixdocs:- Documentation onlystyle:- Code style changes (formatting, no logic change)refactor:- Code change that neither fixes a bug nor adds a featureperf:- Performance improvementtest:- Adding or updating testschore:- Maintenance tasks
Getting Help
Additional Resources
- MCP Specification - Protocol documentation
- Architecture Guide - System design deep dive
- Arch Wiki API - MediaWiki API docs
- AUR RPC Interface - AUR API documentation
Thank you for contributing! 🎉