Contributing
Thank you for considering contributing to the eBay MCP Server! This guide will help you get started with development, understand our processes, and make meaningful contributions.Ways to Contribute
There are many ways to contribute to the project:Bug Fixes
Find and fix bugs in the codebase
New Features
Implement new eBay API tools or MCP capabilities
Documentation
Improve guides, examples, or API references
Tests
Add or improve test coverage
Code Quality
Refactor code or improve performance
Ideas
Suggest new features or improvements
Getting Started
Prerequisites
Before you begin, ensure you have:- Node.js >= 18.0.0
- npm or pnpm (both supported)
- Git installed and configured
- eBay Developer Account (for testing)
- Basic understanding of TypeScript and Node.js
Development Setup
1
Fork the Repository
Fork the ebay-mcp-server repository to your GitHub account.
2
Clone Your Fork
3
Install Dependencies
4
Configure Environment
5
Build the Project
6
Run Tests
Development Workflow
Project Structure
Understanding the project structure helps you navigate and contribute effectively:Making Changes
Creating a Feature Branch
Branch Naming Conventions
Development Guidelines
1. Code Style
TypeScript Best Practices:Use TypeScript strict mode - All code must compile with strict checks
Validate inputs with Zod schemas - All external inputs must be validated
Follow existing patterns - Maintain consistency with the codebase
Keep functions small and focused - Each function should do one thing well
2. Writing Tests
All new code must include tests. See Testing Guide for details. Test Requirements:- Maintain 90%+ coverage on critical paths
- Test both success and error cases
- Use descriptive test names
- Follow AAA pattern (Arrange-Act-Assert)
3. Documentation
Update documentation when making changes:Update README.md for major features
Update CHANGELOG.md with your changes
Add JSDoc comments for public APIs
Update this documentation site if needed
4. Commit Messages
We follow Conventional Commits specification:feat:- A new featurefix:- A bug fixdocs:- Documentation only changesstyle:- Code style changes (formatting, etc.)refactor:- Code change that neither fixes a bug nor adds a featureperf:- Performance improvementstest:- Adding or updating testschore:- Maintenance tasks
Submitting Changes
Pull Request Process
1
Ensure Quality
Before submitting, ensure:
2
Update Changelog
Add your changes to
CHANGELOG.md:3
Push to Your Fork
4
Create Pull Request
- Go to the repository
- Click “New Pull Request”
- Select your fork and branch
- Fill out the PR template
- Submit for review
Pull Request Template
When creating a PR, include:Review Process
- Automated Checks - CI runs tests and linting
- Code Review - Maintainers review your code
- Feedback - Address any requested changes
- Approval - PR is approved by maintainer
- Merge - PR is merged into main branch
Contribution Guidelines
Do’s
Follow the code style - Use the existing patterns and conventions
Write tests - Maintain or improve test coverage
Document changes - Update docs and comments
Keep PRs focused - One feature or fix per PR
Be respectful - Follow the code of conduct
Don’ts
Adding New eBay APIs
To add support for a new eBay API:1
Create API Implementation
Create a new file in the appropriate category:
2
Add Validation Schema
Create Zod schema for inputs:
3
Create Tool Definition
Add tool in
src/tools/definitions/:4
Register in API Facade
Add to
src/api/index.ts:5
Write Tests
Create comprehensive tests:
6
Update Documentation
Document the new functionality and update API reference
Common Tasks
Updating Dependencies
Generating Types from OpenAPI
When eBay updates their API specifications:Debugging
Getting Help
Resources
Documentation
Browse the complete documentation
GitHub Issues
Search existing issues or create new ones
Discussions
Ask questions and share ideas
eBay Developer Portal
eBay API documentation
Communication
- Questions? Open a discussion
- Bug found? Create an issue
- Feature idea? Start a discussion
Recognition
Contributors are recognized in the following ways:- Listed in CHANGELOG.md for their contributions
- Mentioned in release notes
- Added to GitHub contributors list
- Featured in project README
Code of Conduct
This project follows a code of conduct to ensure a welcoming and inclusive environment:Be respectful - Treat everyone with respect and kindness
Be inclusive - Welcome newcomers and diverse perspectives
Be constructive - Provide helpful feedback and criticism
Be professional - Maintain professional standards of communication
License
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.Thank You!
Your contributions help make this project better for everyone. Thank you for taking the time to contribute! 🎉Related Topics
Testing
Learn about testing standards
Architecture
Understand the system design
Error Handling
Error handling patterns
Best Practices
Development best practices