Skip to main content
Glama

arXiv MCP Server

by Mnehmos
CONTRIBUTING.md4.77 kB
# Contributing to arXiv MCP Server We welcome contributions to the arXiv MCP Server! This document provides guidelines for contributing to the project. ## Code of Conduct By participating in this project, you agree to abide by our Code of Conduct: - Be respectful and inclusive - Welcome newcomers and help them get started - Focus on what is best for the community - Show empathy towards other community members ## How to Contribute ### Reporting Bugs Before creating bug reports, please check the existing issues to see if the problem has already been reported. When you create a bug report, please include: - A clear and descriptive title - Steps to reproduce the issue - Expected behavior - Actual behavior - Your environment (OS, Node.js version, etc.) - Any relevant logs or error messages ### Suggesting Enhancements Enhancement suggestions are welcome! Please provide: - A clear and descriptive title - A detailed description of the proposed enhancement - Explain why this enhancement would be useful - Consider if this fits with the scope and goals of the project ### Pull Requests 1. **Fork the repository** and create your branch from `main` 2. **Make your changes** following our coding standards 3. **Add tests** for any new functionality 4. **Update documentation** as needed 5. **Ensure tests pass** by running `npm test` 6. **Build the project** with `npm run build` 7. **Submit a pull request** ## Development Setup 1. Fork and clone the repository: ```bash git clone https://github.com/your-username/arxiv-mcp-server.git cd arxiv-mcp-server ``` 2. Install dependencies: ```bash npm install ``` 3. Build the project: ```bash npm run build ``` 4. Run tests: ```bash npm test ``` ## Coding Standards ### TypeScript - Use TypeScript for all new code - Follow existing code style and conventions - Use meaningful variable and function names - Add type annotations where helpful for clarity - Avoid `any` types when possible ### Code Style - Use 2 spaces for indentation - Use semicolons - Use single quotes for strings - Use trailing commas in objects and arrays - Follow ESLint configuration (when added) ### Testing - Write tests for new functionality - Use Jest for testing - Aim for good test coverage - Test both success and error cases - Use descriptive test names ### Documentation - Update README.md for user-facing changes - Add JSDoc comments for public APIs - Update CHANGELOG.md for notable changes - Include examples in documentation ## Commit Messages Use clear and meaningful commit messages: - Use the present tense ("Add feature" not "Added feature") - Use the imperative mood ("Move cursor to..." not "Moves cursor to...") - Reference issues and pull requests when applicable - Consider using conventional commit format: - `feat:` for new features - `fix:` for bug fixes - `docs:` for documentation changes - `test:` for test changes - `refactor:` for code refactoring Examples: ``` feat: add support for advanced search queries fix: handle malformed XML responses gracefully docs: update installation instructions test: add tests for PDF content extraction ``` ## Project Structure ``` arxiv-mcp-server/ ├── src/ # Source code │ └── index.ts # Main server implementation ├── test/ # Test files │ ├── setup.ts # Test setup and utilities │ └── *.test.ts # Individual test files ├── build/ # Compiled JavaScript (generated) ├── temp/ # Temporary files (cached PDFs) └── docs/ # Additional documentation ``` ## API Guidelines ### MCP Tool Design When adding new tools: 1. Follow MCP protocol specifications 2. Use clear, descriptive tool names 3. Provide comprehensive input schemas 4. Return structured, predictable responses 5. Handle errors gracefully 6. Include proper documentation ### Error Handling - Always handle potential errors - Return meaningful error messages - Use appropriate HTTP status codes - Log errors for debugging - Don't expose sensitive information ### Performance - Cache responses when appropriate - Implement rate limiting considerations - Optimize for common use cases - Consider memory usage for large files - Test with realistic data sizes ## Release Process 1. Update version in `package.json` 2. Update `CHANGELOG.md` 3. Create a pull request with changes 4. After review and merge, create a git tag 5. Publish to npm (maintainers only) ## Questions? If you have questions about contributing, please: 1. Check existing issues and discussions 2. Create a new issue with the "question" label 3. Reach out to maintainers Thank you for contributing to arXiv MCP Server!

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mnehmos/arxiv-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server