Thank you for considering contributing to the Deepwiki-to-Markdown MCP Server! This document provides guidelines and instructions for contributing.
Please be respectful and considerate of others when contributing to this project. We aim to foster an inclusive and welcoming community.
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.)
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
- 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
mainbranch
- 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
- 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
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
Please ensure all tests pass before submitting a pull request:
npm testWrite new tests for new features or bug fixes. We use Vitest for testing.
We use ESLint to maintain code quality:
npm run lintPlease update the documentation when necessary:
- README.md for user-facing changes
- CHANGELOG.md for release notes
- Code comments for complex logic
- Update version in package.json
- Update CHANGELOG.md
- Commit changes
- Create a tag for the release
- Push to GitHub
- Publish to npm
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!