Skip to main content

Extract and manage BibTeX references from PDF files with MCP support

Project description

BibTeX Reference Extractor

从PDF提取参考文献,智能查询DOI,管理BibTeX引用库。

![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue null) ![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-green null) ![MIT License](https://img.shields.io/badge/License-MIT-yellow null)

English中文


English

What is this?

A tool to extract references from PDF papers and get their BibTeX citations automatically.

Project Structure

bibtex-ref-extractor/
├── src/bibtex_extractor/     # Core Python package
│   ├── pdf_reader.py         # Extract refs from PDF
│   ├── reference_lookup.py   # Query DOI from databases
│   ├── bibtex_manager.py     # Manage .bib files
│   └── cli.py                # Command line interface
├── mcp_server/               # MCP server for AI assistants
│   └── server.py
└── pyproject.toml

Installation

# Clone and install
git clone https://github.com/Atun-tunz/bibtex-ref-extractor--.git
cd bibtex-ref-extractor
pip install -e .

Usage

Command Line:

# Look up a paper
bibtex-extractor lookup "Deep Knowledge Tracing" -a Piech

# Extract from PDF
bibtex-extractor extract paper.pdf

# Process PDF to BibTeX
bibtex-extractor process paper.pdf -b refs.bib

Python API:

import sys
sys.path.insert(0, 'src')  # Add src to path

from bibtex_extractor import lookup_reference, BibTeXManager

# Look up a paper
result = lookup_reference("Deep Knowledge Tracing", "Piech")
print(result['bibtex'])

# Manage library
manager = BibTeXManager("refs.bib")
manager.add_entry(result['bibtex'])
manager.save()

MCP for AI Assistants:

Add to Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "bibtex": {
      "command": "python",
      "args": ["-m", "mcp_server.server"],
      "cwd": "/path/to/bibtex-ref-extractor"
    }
  }
}

Data Sources

CrossRef → Semantic Scholar → arXiv → DBLP


中文

这是什么?

从PDF论文中提取参考文献,自动查询DOI并生成BibTeX引用格式。

项目结构

bibtex-ref-extractor/
├── src/bibtex_extractor/     # 核心Python包
│   ├── pdf_reader.py         # 从PDF提取参考文献
│   ├── reference_lookup.py   # 查询学术数据库获取DOI
│   ├── bibtex_manager.py     # 管理.bib文件
│   └── cli.py                # 命令行工具
├── mcp_server/               # MCP服务器(供AI助手调用)
│   └── server.py
└── pyproject.toml

安装

# 克隆并安装
git clone https://github.com/Atun-tunz/bibtex-ref-extractor--.git
cd bibtex-ref-extractor
pip install -e .

使用方式

命令行:

# 查询论文
bibtex-extractor lookup "Deep Knowledge Tracing" -a Piech

# 从PDF提取参考文献
bibtex-extractor extract paper.pdf

# 处理PDF生成BibTeX
bibtex-extractor process paper.pdf -b refs.bib

Python代码:

import sys
sys.path.insert(0, 'src')  # 添加src到路径

from bibtex_extractor import lookup_reference, BibTeXManager

# 查询论文
result = lookup_reference("Deep Knowledge Tracing", "Piech")
print(result['bibtex'])

# 管理引用库
manager = BibTeXManager("refs.bib")
manager.add_entry(result['bibtex'])
manager.save()

MCP供AI助手调用:

添加到Claude Desktop配置 (claude_desktop_config.json):

{
  "mcpServers": {
    "bibtex": {
      "command": "python",
      "args": ["-m", "mcp_server.server"],
      "cwd": "项目路径"
    }
  }
}

数据来源

CrossRef → Semantic Scholar → arXiv → DBLP


MCP说明

MCP是什么?

MCP (Model Context Protocol) 是让AI助手(如Claude)能调用外部工具的标准协议。

本项目的MCP实现

本项目包含一个MCP服务器 (mcp_server/server.py),提供以下工具:

工具 功能
extract_references_from_pdf 从PDF提取参考文献
lookup_reference 查询DOI和BibTeX
add_to_bibtex 添加到BibTeX库
search_bibtex 搜索条目
process_pdf_references 完整工作流

MCP需要部署吗?

不需要在线部署。MCP服务器在本地运行,AI助手通过标准输入输出与之通信。


License

MIT License - see LICENSE

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

bibtex_ref_extractor-0.1.0.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bibtex_ref_extractor-0.1.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file bibtex_ref_extractor-0.1.0.tar.gz.

File metadata

  • Download URL: bibtex_ref_extractor-0.1.0.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for bibtex_ref_extractor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1a23fa2547c08933581620cc6ee474f21e1b3345b1c242a963513776a244b888
MD5 ef200e2285b6789727f3f591b8861195
BLAKE2b-256 c8fa5e12318d97ac54ecb075708fa77140dd66bee29d5e68eccb7777ec95cdc5

See more details on using hashes here.

File details

Details for the file bibtex_ref_extractor-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bibtex_ref_extractor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d1176ca48f488e0dc205096a4cedf5148d582b6b6054964c6041cf9b598708d0
MD5 42557eb891534f8b5fd9f81c3b01ada5
BLAKE2b-256 2dc809a92ae79e97abe33b431c0187df85ccedc04e4334d2d3ec82430c9d8271

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page