Skip to main content
Glama
muslus

Q1 Crafter MCP

by muslus
README.md
<p align="center">
  <img src="https://img.shields.io/badge/MCP-Server-blueviolet?style=for-the-badge&logo=anthropic" alt="MCP Server" />
  <img src="https://img.shields.io/badge/Python-3.10+-3776AB?style=for-the-badge&logo=python&logoColor=white" alt="Python" />
  <img src="https://img.shields.io/badge/APA_7-Compliant-success?style=for-the-badge" alt="APA 7" />
  <img src="https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge" alt="License" />
</p>

<h1 align="center">๐ŸŽ“ Q1 Crafter MCP</h1>

<p align="center">
  <strong>Academic Research MCP Server for Claude Desktop</strong><br/>
  Automates the full research cycle โ€” from source discovery across 18 databases<br/>
  to Q1-quality, APA 7-formatted <code>.docx</code> output.
</p>

<p align="center">
  <a href="#-features">Features</a> โ€ข
  <a href="#-quick-start">Quick Start</a> โ€ข
  <a href="#%EF%B8%8F-claude-desktop-setup">Claude Desktop</a> โ€ข
  <a href="#-available-tools">Tools</a> โ€ข
  <a href="#-supported-sources">Sources</a> โ€ข
  <a href="#-contributing">Contributing</a>
</p>

---

## โœจ 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

```bash
pip install q1-crafter-mcp
```

### Configuration

```bash
# 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

```bash
q1-crafter-mcp
```

---

## ๐Ÿ–ฅ๏ธ Claude Desktop Setup

Add to your Claude Desktop configuration file:

<details>
<summary><strong>๐Ÿ“‹ Windows</strong> โ€” <code>%APPDATA%\Claude\claude_desktop_config.json</code></summary>

```json
{
  "mcpServers": {
    "q1-crafter": {
      "command": "python",
      "args": ["-m", "q1_crafter_mcp.server"],
      "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"
      }
    }
  }
}
```

</details>

<details>
<summary><strong>๐Ÿ“‹ macOS / Linux</strong> โ€” <code>~/Library/Application Support/Claude/claude_desktop_config.json</code></summary>

```json
{
  "mcpServers": {
    "q1-crafter": {
      "command": "python3",
      "args": ["-m", "q1_crafter_mcp.server"],
      "env": {
        "SCOPUS_API_KEY": "your-scopus-key",
        "IEEE_API_KEY": "your-ieee-key",
        "SPRINGER_API_KEY": "your-springer-key"
      }
    }
  }
}
```

</details>

> **๐Ÿ’ก 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.

---

## ๐Ÿ”ง Troubleshooting

<details>
<summary><strong>โŒ ENOENT error: <code>spawn q1-crafter-mcp ENOENT</code></strong></summary>

This means Claude Desktop can't find the executable. This is common on Windows because `pip install` puts scripts in a user directory that isn't in Claude Desktop's PATH.

**Fix:** Use `python -m` instead of the direct command (already shown in the config above). Make sure you're using:

```json
"command": "python",
"args": ["-m", "q1_crafter_mcp.server"]
```

**Alternative fix:** Use the full path to the executable:

```bash
# Find where it's installed:
pip show q1-crafter-mcp
# Look at the "Location" field, then the Scripts folder next to it

# Example: C:\Users\YourName\AppData\Roaming\Python\Python313\Scripts\q1-crafter-mcp.exe
```

Then use that full path in your config:

```json
"command": "C:\\Users\\YourName\\AppData\\Roaming\\Python\\Python313\\Scripts\\q1-crafter-mcp.exe"
```

</details>

<details>
<summary><strong>โŒ Server disconnected immediately</strong></summary>

Check that the package is installed correctly:

```bash
python -m q1_crafter_mcp.server
```

If you get an import error, reinstall:

```bash
pip install --force-reinstall q1-crafter-mcp
```

</details>

<details>
<summary><strong>โŒ No search results returned</strong></summary>

- Free sources (arXiv, CrossRef, OpenAlex) work without API keys
- If you added API keys, verify they are correct in your Claude Desktop config
- Run `check_api_status` tool in Claude to see which sources are available

</details>

---

## ๐Ÿ›  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

<table>
<tr>
<th>๐Ÿ†“ Free (No Key)</th>
<th>๐Ÿ”‘ Free (Key Required)</th>
<th>๐Ÿ›๏ธ Institutional</th>
<th>๐Ÿ‡น๐Ÿ‡ท Turkish</th>
</tr>
<tr>
<td>

- arXiv
- CrossRef
- OpenAlex
- Europe PMC
- DOAJ
- BASE

</td>
<td>

- Semantic Scholar
- PubMed (NCBI)
- CORE
- Unpaywall

</td>
<td>

- Scopus (Elsevier)
- Web of Science
- IEEE Xplore
- Springer Nature
- ScienceDirect
- Dimensions

</td>
<td>

- TR Dizin
- DergiPark (OAI-PMH)
- Yร–K Tez Merkezi

</td>
</tr>
</table>

---

## ๐Ÿ— 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

```mermaid
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]
```

1. **Search** โ€” Queries up to 18 databases in parallel, routes by field (medicine โ†’ PubMed, CS โ†’ Semantic Scholar)
2. **Deduplicate** โ€” Removes duplicates via exact DOI + fuzzy title matching (92% threshold)
3. **Analyze** โ€” Identifies themes, gaps, trends, and extracts keywords
4. **Visualize** โ€” Generates charts, tables, and citation networks
5. **Format** โ€” Applies APA 7th edition rules for citations and references
6. **Output** โ€” Assembles everything into a formatted `.docx` manuscript

---

## ๐Ÿ“– 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:
1. Search across available databases
2. Deduplicate and rank results
3. Analyze themes and identify gaps
4. Generate formatted citations
5. Write a structured section with proper references

---

## ๐Ÿ”‘ API Key Setup

| Source | How to Get Key | Cost |
|--------|---------------|------|
| Semantic Scholar | [semanticscholar.org/product/api](https://www.semanticscholar.org/product/api) | Free |
| PubMed (NCBI) | [ncbi.nlm.nih.gov/account](https://www.ncbi.nlm.nih.gov/account/) | Free |
| CORE | [core.ac.uk/services/api](https://core.ac.uk/services/api) | Free |
| Scopus | [dev.elsevier.com](https://dev.elsevier.com/) | Institutional |
| IEEE Xplore | [developer.ieee.org](https://developer.ieee.org/) | Paid |
| Springer | [dev.springernature.com](https://dev.springernature.com/) | Free tier |
| Dimensions | [dimensions.ai](https://www.dimensions.ai/scientometric-research/) | Free for research |

---

## ๐Ÿงช Development

```bash
# 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](https://github.com/ZaEyAsa)

---

<p align="center">
  <strong>Built with โค๏ธ for researchers who deserve better tools.</strong><br/>
  <sub>If this helps your research, give it a โญ on GitHub!</sub>
</p>

TDQS

A3.8/5.0

Scored across 14 tools

Disambiguation5/5

Each tool has a clearly distinct purpose covering different aspects of academic research and manuscript creation. There is no overlap or ambiguity between tools like search_academic, search_by_doi, search_citations, and search_references.

Naming Consistency5/5

All 14 tools follow a consistent verb_noun naming pattern (e.g., analyze_literature, build_docx, validate_citations), making it easy to infer functionality from the name.

Tool Count5/5

14 tools are well-scoped for the server's purpose of academic literature analysis and manuscript generation. Each tool contributes meaningfully without being excessive or insufficient.

Completeness5/5

The tool set covers the full workflow: searching literature, analyzing trends, generating visualizations, writing sections, formatting references, building final document, and validating citations. No obvious gaps are present.

Maintenance

ActivityInactive
ResponsivenessNo issues