Skip to main content

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

See OAuth Setup for detailed instructions.
5

Build the Project

6

Run Tests

Ensure all tests pass before making changes.

Development Workflow

Project Structure

Understanding the project structure helps you navigate and contribute effectively:
See Architecture for detailed information.

Making Changes

Creating a Feature Branch

Branch Naming Conventions

Development Guidelines

1. Code Style

TypeScript Best Practices:
Code Quality:
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)
Example Test:

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:
Types:
  • feat: - A new feature
  • fix: - A bug fix
  • docs: - Documentation only changes
  • style: - Code style changes (formatting, etc.)
  • refactor: - Code change that neither fixes a bug nor adds a feature
  • perf: - Performance improvements
  • test: - Adding or updating tests
  • chore: - Maintenance tasks
Examples:
Good Commit Message:

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

  1. Go to the repository
  2. Click “New Pull Request”
  3. Select your fork and branch
  4. Fill out the PR template
  5. Submit for review

Pull Request Template

When creating a PR, include:

Review Process

  1. Automated Checks - CI runs tests and linting
  2. Code Review - Maintainers review your code
  3. Feedback - Address any requested changes
  4. Approval - PR is approved by maintainer
  5. 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

Don’t skip tests - All code must be tested
Don’t break existing functionality - Ensure backward compatibility
Don’t ignore CI failures - Fix all test and lint failures
Don’t commit credentials - Never commit secrets or tokens

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

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
Report unacceptable behavior to project maintainers.

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! 🎉

Testing

Learn about testing standards

Architecture

Understand the system design

Error Handling

Error handling patterns

Best Practices

Development best practices