-
Notifications
You must be signed in to change notification settings - Fork 4
feat: Implement Literature MCP for multi-source academic literature search #182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
SoberPizza
commented
Jan 19, 2026
- Added README.md detailing features, quick start guide, and usage examples for the Literature MCP service.
- Created literature utility module with base client, DOI normalization, and deduplication functionalities.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry @SoberPizza, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request implements a comprehensive Literature MCP (Model Context Protocol) service for searching academic literature from multiple data sources, with initial support for OpenAlex API. The implementation follows OpenAlex API best practices including two-step name resolution, rate limiting, exponential backoff retry, and intelligent deduplication.
Changes:
- Added a literature utility module with base client abstraction, DOI normalization/deduplication, and work distribution across multiple data sources
- Implemented OpenAlex API client with advanced filtering (author, institution, journal, year, work type, language, retraction status)
- Created MCP server with search and DOI lookup tools, including detailed error messages and guidance for LLM users
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 18 comments.
Show a summary per file
| File | Description |
|---|---|
service/app/utils/literature/__init__.py |
Package initialization exposing core classes and functions |
service/app/utils/literature/base_client.py |
Abstract base class defining the interface for literature data source clients |
service/app/utils/literature/doi_cleaner.py |
DOI normalization and deduplication utilities with priority rules |
service/app/utils/literature/work_distributor.py |
Central coordinator for distributing searches across multiple data sources and aggregating results |
service/app/utils/literature/openalex_client.py |
OpenAlex API client implementation with rate limiting, retry logic, and two-step name resolution |
service/app/mcp/literature.py |
MCP server exposing search_literature and get_work_by_doi tools with comprehensive documentation |
service/app/utils/literature/README.md |
Comprehensive documentation in Chinese covering features, usage examples, and best practices |
.gitignore |
Added exclusions for VS Code and MCP documentation directories |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…earch (skip pre-commit due to Pyright false positive on __getattr__)