🎓 Q1 Crafter MCP
Academic Research MCP Server for Claude Desktop
Automates the full research cycle — from source discovery across 18 databases
to Q1-quality, APA 7-formatted .docx output.
Features • Quick Start • Claude Desktop • Tools • Sources • Contributing
✨ Features
| Category | Highlights |
|---|---|
| 🔍 Multi-Source Search | Query 18 academic APIs in parallel with smart field-based routing |
| 🔄 Intelligent Dedup | Two-phase deduplication: exact DOI match → fuzzy title (92% Levenshtein) |
| 🇹🇷 Turkish Sources | Native support for TR Dizin, DergiPark (OAI-PMH), YÖK Tez Merkezi |
| 📊 Literature Analysis | Gap detection, keyword extraction (TF-IDF), citation validation |
| 📈 Visualizations | Publication trends, source distribution, citation network (Mermaid) |
| 📝 APA 7 Engine | Full citation formatter — handles 1/2/3+/20+ author rules, DOI formatting |
| 📄 DOCX Generator | One-click manuscript generation with title page, sections, references |
| ⚡ Zero Config | Free sources work instantly; paid APIs activate when keys are provided |
🚀 Quick Start
Installation
pip install q1-crafter-mcp
Configuration
# Copy the example env file
cp .env.example .env
# Add your API keys (optional — free sources work without any keys!)
# Edit .env and fill in the keys you have
Run
q1-crafter-mcp
🖥️ Claude Desktop Setup
Add to your Claude Desktop configuration file:
📋 Windows — %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"q1-crafter": {
"command": "q1-crafter-mcp",
"env": {
"SCOPUS_API_KEY": "your-scopus-key",
"IEEE_API_KEY": "your-ieee-key",
"SPRINGER_API_KEY": "your-springer-key",
"NCBI_API_KEY": "your-pubmed-key",
"UNPAYWALL_EMAIL": "your-email@example.com"
}
}
}
}
📋 macOS — ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"q1-crafter": {
"command": "q1-crafter-mcp",
"env": {
"SCOPUS_API_KEY": "your-scopus-key",
"IEEE_API_KEY": "your-ieee-key",
"SPRINGER_API_KEY": "your-springer-key"
}
}
}
}
💡 Tip: You don't need all API keys! Free sources (arXiv, CrossRef, OpenAlex, PubMed, etc.) work out of the box. Add paid keys to unlock more databases.
🛠 Available Tools
🔍 Search Tools
| Tool | Description |
|---|---|
search_academic |
Search up to 18 databases in parallel with smart routing |
search_by_doi |
Look up any paper by its DOI |
search_citations |
Find all papers that cite a given work |
search_references |
Get the reference list of a paper |
📊 Analysis Tools
| Tool | Description |
|---|---|
analyze_literature |
Identify research gaps, themes, trends, and top-cited papers |
validate_citations |
Bidirectional check: in-text citations ↔ reference list |
extract_keywords |
TF-IDF keyword extraction with bigram support |
📈 Visualization Tools
| Tool | Description |
|---|---|
generate_comparison_table |
Paper comparison tables (Markdown, CSV, APA format) |
generate_trend_chart |
Publication trend charts (base64 PNG, dark theme) |
generate_citation_network |
Citation network visualization (Mermaid diagram) |
📝 Output Tools
| Tool | Description |
|---|---|
write_section |
Academic section scaffolding with IMRaD templates |
format_references_apa7 |
APA 7th edition reference list formatter |
build_docx |
Generate formatted .docx manuscript |
check_api_status |
Check which API sources are available |
🌐 Supported Sources
| 🆓 Free (No Key) | 🔑 Free (Key Required) | 🏛️ Institutional | 🇹🇷 Turkish |
|---|---|---|---|
|
|
|
|
🏗 Architecture
q1-crafter-mcp/
├── src/q1_crafter_mcp/
│ ├── server.py # MCP server + 14 tool registrations
│ ├── config.py # Settings & API key management
│ ├── models.py # Pydantic data models
│ └── tools/
│ ├── search/ # 18 API clients + aggregator + dedup
│ ├── analysis/ # Gap analyzer, keywords, summarizer
│ ├── visualization/ # Charts, tables, citation network
│ └── output/ # APA formatter, section writer, DOCX
├── tests/ # 120 unit tests
├── pyproject.toml
└── .env.example
How It Works
graph LR
A[Claude Desktop] -->|MCP| B[Q1 Crafter Server]
B --> C[🔍 Search 18 APIs]
C --> D[🔄 Deduplicate]
D --> E[📊 Analyze]
E --> F[📈 Visualize]
E --> G[📝 APA 7 Format]
G --> H[📄 .docx Output]
- Search — Queries up to 18 databases in parallel, routes by field (medicine → PubMed, CS → Semantic Scholar)
- Deduplicate — Removes duplicates via exact DOI + fuzzy title matching (92% threshold)
- Analyze — Identifies themes, gaps, trends, and extracts keywords
- Visualize — Generates charts, tables, and citation networks
- Format — Applies APA 7th edition rules for citations and references
- Output — Assembles everything into a formatted
.docxmanuscript
📖 Usage Example
Just ask Claude naturally:
🗣 "Search for papers about machine learning in drug discovery from 2020-2024, analyze the results, and generate a literature review section with APA 7 citations."
Claude will automatically:
- Search across available databases
- Deduplicate and rank results
- Analyze themes and identify gaps
- Generate formatted citations
- Write a structured section with proper references
🔑 API Key Setup
| Source | How to Get Key | Cost |
|---|---|---|
| Semantic Scholar | semanticscholar.org/product/api | Free |
| PubMed (NCBI) | ncbi.nlm.nih.gov/account | Free |
| CORE | core.ac.uk/services/api | Free |
| Scopus | dev.elsevier.com | Institutional |
| IEEE Xplore | developer.ieee.org | Paid |
| Springer | dev.springernature.com | Free tier |
| Dimensions | dimensions.ai | Free for research |
🧪 Development
# Clone the repo
git clone https://github.com/ZaEyAsa/q1-crafter-mcp.git
cd q1-crafter-mcp
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Lint
ruff check src/
📊 Test Coverage
| Module | Tests | What's Covered |
|---|---|---|
| Models | 15 | Paper, Author, SearchConfig, serialization |
| APA Formatter | 18 | In-text, references, ordering, Turkish chars |
| Config | 10 | Source availability, key management |
| Dedup | 9 | DOI match, fuzzy title, metadata richness |
| Analysis | 18 | Gap analysis, keywords, summarizer, citations |
| Visualization | 17 | Charts, tables, citation networks |
| Output | 12 | Section writer, DOCX generator |
| Search Base | 7 | Client lifecycle, safe_search |
| Total | 120 | All passing ✅ |
📄 License
MIT © ZaEyAsa
Built with ❤️ for researchers who deserve better tools.
If this helps your research, give it a ⭐ on GitHub!
Metadata
Release files for q1-crafter-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| q1_crafter_mcp-0.1.0.tar.gz | 51.9 kB | Without provenance | Details for q1_crafter_mcp-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| q1_crafter_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for q1_crafter_mcp-0.1.0-py3-none-any.whl |
Total release size: 119.9 kB
Release files / q1_crafter_mcp-0.1.0.tar.gz
| Download URL | q1_crafter_mcp-0.1.0.tar.gz |
|---|---|
| Size | 51.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3d4a445b849c141b0e77038c7e446e7b8ca711da8a8472496f126f1693f79026
|
|
BLAKE2b-256 checksum How to use checksums |
e683939f978e110162143847b316823ed4c09bf8b4044a9d0dfdb7171ee920ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / q1_crafter_mcp-0.1.0-py3-none-any.whl
| Download URL | q1_crafter_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 68.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c0ab34884b6f628d4cad4a3d2d36d1a0b7b12408b72671381f576765b7393f7f
|
|
BLAKE2b-256 checksum How to use checksums |
aea7f93083f7a470509e398a759428cd937e2cd7f3ee2f8f4e72e85752e64baf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for q1-crafter-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.