MCP Server for multi-provider academic search (Semantic Scholar, Crossref, OpenAlex, PubMed) with regex filtering and statistics
Project description
Academic Search MCP Server
An MCP (Model Context Protocol) server for searching and analyzing academic papers across multiple databases (Semantic Scholar, Crossref, OpenAlex, PubMed), with regex-powered filtering and statistical analysis.
Features
- Regex-powered search: Write regex patterns and have them automatically transformed into API-compatible queries
- Multi-provider support: Search Semantic Scholar, Crossref, OpenAlex, and PubMed through a unified interface
- Post-filtering: Apply the original regex to returned fields (title, abstract) for precise filtering
- Statistical analysis: Compute author counts, publication year distributions, and field availability stats
- Normalised output: All providers return data in the same schema, so filters and statistics work identically regardless of source
- MCP-native: Exposes tools for use with any MCP client (Claude, etc.)
Tools
search_papers
Search with regex filtering. Returns papers matching your pattern, with optional regex post-filtering on title and abstract.
search_by_author
Search for papers by a specific author name, with post-hoc filters.
get_paper_stats
Fetch papers and compute statistics: field availability, author counts, and publication year distributions.
build_extended_query
Preview how a regex query gets transformed for a given provider's API.
Usage
Via uvx (recommended)
uvx academic-search
Via uv run
uv run --with academic-search academic-search
From source
git clone ...
cd academic-search
uv run src/academic_search
With Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"academic-search": {
"command": "uvx",
"args": ["academic-search"]
}
}
}
Development
uv sync
uv run academic-search
Providers
| Provider | Notes |
|---|---|
| Semantic Scholar | Regex-aware search, rich metadata, citation counts |
| Crossref | Good DOI coverage, no open access metadata |
| OpenAlex | Best OA metadata, abstracts from inverted index |
| PubMed | NIH literature, use [au] for author queries |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file academic_search-0.7.0.tar.gz.
File metadata
- Download URL: academic_search-0.7.0.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c7f7034b828dde62c868c8cfff67e548b6283cbf11578f9e0a6e4a8cb6186dd
|
|
| MD5 |
b7433c2dc3f9de067182f824115af305
|
|
| BLAKE2b-256 |
3657ac03467136517575890a9b7ce56b6c1852726367203b58a8195d8e7e38cc
|
File details
Details for the file academic_search-0.7.0-py3-none-any.whl.
File metadata
- Download URL: academic_search-0.7.0-py3-none-any.whl
- Upload date:
- Size: 31.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ab7873b09990d677ef61b93468eafc9beabed3842baccc265dfc30366d30bae
|
|
| MD5 |
26c5e441150c02db643ef59b56e816c1
|
|
| BLAKE2b-256 |
ff8780b68ae8a665d96a01695bb2536a067ece7e9f2dea1a7a1df7e85d59b51a
|