Contributing to Deepwiki-to-Markdown MCP Server
Thank you for considering contributing to the Deepwiki-to-Markdown MCP Server! This document provides guidelines and instructions for contributing.
Code of Conduct
Please be respectful and considerate of others when contributing to this project. We aim to foster an inclusive and welcoming community.
How to Contribute
Reporting Bugs
If you find a bug, please open an issue with the following information:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Any relevant logs or error messages
- Environment details (OS, Node.js version, etc.)
Suggesting Enhancements
For feature requests or enhancements:
- Use a clear, descriptive title
- Provide a detailed description of the proposed functionality
- Explain why this enhancement would be useful
- Consider including mockups or examples if applicable
Pull Requests
- Fork the repository
- Create a new branch from
main
(git checkout -b feature/your-feature-name
) - Make your changes
- Run tests to ensure they pass (
npm test
) - Run linting to ensure code quality (
npm run lint
) - Update documentation as needed
- Commit your changes with a clear message
- Push to your fork
- Submit a pull request to the
main
branch
Pull Request Guidelines
- Follow the coding style of the project
- Include tests for new features
- Update the README.md with details of changes if applicable
- Update the CHANGELOG.md following the existing format
- The pull request should work on the latest Node.js LTS version
Development Workflow
- Clone the repository:
git clone https://github.com/regenrek/mcp-deepwiki.git
- Install dependencies:
npm install
- Run in development mode:
npm run dev-stdio
(ordev-http
/dev-sse
) - Make your changes
- Run tests:
npm test
- Run linting:
npm run lint
Project Structure
src/
├── functions/ # Core functionality
│ ├── __tests__/ # Unit tests
│ ├── crawler.ts # Website crawling logic
│ ├── converter.ts # HTML to Markdown conversion
│ ├── types.ts # TypeScript interfaces & schemas
│ └── utils.ts # Utility functions
├── tools/ # MCP tool definitions
│ ├── deepwiki.ts # Deepwiki fetch tool
│ └── mytool.ts # Example tool
├── index.ts # Main entry point
├── server.ts # MCP server setup
└── types.ts # Core type definitions
Testing
Please ensure all tests pass before submitting a pull request:
npm test
Write new tests for new features or bug fixes. We use Vitest for testing.
Linting
We use ESLint to maintain code quality:
npm run lint
Documentation
Please update the documentation when necessary:
- README.md for user-facing changes
- CHANGELOG.md for release notes
- Code comments for complex logic
Release Process
- Update version in package.json
- Update CHANGELOG.md
- Commit changes
- Create a tag for the release
- Push to GitHub
- Publish to npm
Questions?
If you have any questions, please open an issue or reach out to the maintainers.
Thank you for contributing to the Deepwiki-to-Markdown MCP Server!