# harcx-mcp
MCP server for verifying BibTeX citations using [harcx](https://pypi.org/project/harcx/). Allows AI assistants like Claude to check your bibliography against Semantic Scholar, DBLP, and other academic databases.
> **Thanks** to the original [harcx](https://pypi.org/project/harcx/) package for providing the citation verification functionality.
## Quick Setup
1. Create a `.vscode` folder in your project (if it doesn't exist)
2. Create `.vscode/mcp.json` with:
```json
{
"servers": {
"harcx": {
"command": "python",
"args": ["/path/to/harcx_mcp.py"]
}
}
}
```
3. Use `#harcx` in Claude Code to access the tools:
```
verify citations in references.bib
verify urls in references.bib
```
## Installation
```bash
pip install "mcp[cli]" harcx
```
## Usage
### With Claude Code
Add to your project's `.mcp.json`:
```json
{
"mcpServers": {
"harcx": {
"command": "python",
"args": ["/path/to/harcx_mcp.py"]
}
}
}
```
Then ask Claude to verify your citations:
```
verify citations in references.bib
```
### With Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
```json
{
"mcpServers": {
"harcx": {
"command": "python",
"args": ["/path/to/harcx_mcp.py"]
}
}
}
```
## Tools
### verify_citations
Verify academic papers and books against Semantic Scholar and DBLP.
**Parameters:**
- `bib_content` (required): Path to .bib file or inline BibTeX content
- `author_threshold` (optional): Author name match tolerance, 0.0-1.0 (default: 0.6)
- `check_urls` (optional): Also verify URLs in citations (default: false)
- `api_key` (optional): Semantic Scholar API key for higher rate limits
**Example:**
```
Check the citations in my thesis.bib file
```
### verify_urls
Check that URLs in your bibliography are accessible.
**Parameters:**
- `bib_content` (required): Path to .bib file or inline BibTeX content
**Example:**
```
Verify all URLs in references.bib are still working
```
## Rate Limits
Semantic Scholar has rate limits. If you're checking many citations, you may see 429 errors and retries. For higher limits, get a free API key from [Semantic Scholar](https://www.semanticscholar.org/product/api) and pass it via the `api_key` parameter.
## License
MIT