Skip to main content
Glama

sci-forge

SciForge — 一条 MCP 从「构思」到「论文交付」的全流程编程工作台。

一个完全本地自建的 MCP server,提供论文领域的端到端自动化:

  • 🧪 复现线 — 拿到一篇论文 PDF,五步闭环复现:解析 → 方案 → 生成代码 → 沙箱运行比对 → 产出交付物

  • ✍️ 写作线 — 按章节引导生成论文内容,导出 LaTeX / PDF / DOCX

  • 🔬 研究线 — 构思 → 选题 → 多视角假设辩论 → 实验设计 → 结果自旋门决策

  • 🧭 科研/论文线 — 研究计划书、文献综述、标题/摘要提炼、模拟同行评审、投稿匹配、论文润色

  • 📦 交付线 — 把复现/写作的全部实物(源码/数据/报告/图/导出物)分门别类交付

特色:免 API key。 文献检索用 OpenAlex 免鉴权接口(覆盖 arXiv 预印本),LLM 能力为可选增强——没有 LLM 时自动回退到本地模板,整条链路仍然可用。

独立自建、仅用公开材料,不附属于、不依赖 SciForge 官方站点或 API。


功能总览

工具

所属线

作用

reproduce_paper

复现

解析 PDF → 复现方案 → 生成代码 → 沙箱运行比对 → 交付物

reproduce_status

复现

查询复现任务的异步状态与阶段进度

write_section

写作

按章节引导撰写(abstract/problem/…/results/references)

export_document

写作

将已写 doc 导出为 LaTeX / PDF / DOCX

ideate_paper

研究

构思→选题→研究缺口→候选假设→多视角评审→实验计划

inject_results

研究

把复现的真实实验结果并入论文对应章节

research_verdict

研究

结果自旋门:PROCEED / REFINE / PIVOT 决策建议

research_plan

科研/论文

完整研究计划书(RQ/假设/目标/贡献/方法/数据/里程碑/风险)

literature_review

科研/论文

文献综述(OpenAlex 免 key 检索:代表文献/聚类/缺口/结构)

auto_title_abstract

科研/论文

从正文提炼标题/摘要/关键词

peer_review

科研/论文

模拟同行评审(4 维评分 + 推荐 + 优缺点/修改建议)

venue_suggest

科研/论文

投稿/期刊匹配(内置映射库 + 可选 LLM)

paper_polish

科研/论文

润色/一致性/完整性检查

compare_metrics

科研/论文

多任务指标对比表 + Welch t / Mann-Whitney U 显著性检验

check_novelty

科研/论文

创新性检查:检索相似工作并给出候选差异点

citation_landscape

科研/论文

引文热度分析(年度分布/高被引代表/主要载体)

project_memory

科研/论文

项目进度记账(里程碑/状态/备忘 timeline)

package_submission

交付

投稿材料打包(zip + Cover Letter + Checklist)

review_code

交付

复现代码静态点评(种子/硬编码/风险 + 可信度分)

get_deliverables

交付

列出任务(复现/写作)的交付物清单,按类型分类

science_list_dbs

科学数据

列出可用数据库(按领域筛选)

science_search

科学数据

单库搜索

science_fetch

科学数据

按 ID 获取记录

science_cross_lookup

科学数据

多库联合查询

prisma_review

科研/论文

PRISMA 系统综述流程(识别→筛选→资格→纳入)

convert_citation

科研/论文

BibTeX 转单一样式

convert_citation_all

科研/论文

BibTeX 一次转 6 种样式

revision_coach

科研/论文

论文修订教练(逐章诊断→修订建议)

rebuttal_audit

科研/论文

审稿意见回复审计(回复完整性/态度/论证强度)

detect_style

科研/论文

机器文风检测(LGS 矢量 + 判别器)

claim_strength

科研/论文

表述强度阶梯评估(7 级)

calibrate_style

科研/论文

作者声音画像(9 维文风雷达)

score_style_text

科研/论文

文风评分(对比目标模板)

verify_citation

科研/论文

引用核验:DOI 真实性(Crossref)

verify_claim

科研/论文

主张核验:检索证据判定 SUPPORTED/PARTIAL/UNSUPPORTED

verify_reference_list

科研/论文

批量引用核验(valid/invalid 列表)

paper_metadata

科研/论文

论文元数据(Crossref:标题/作者/年份/期刊/摘要)

citation_graph

科研/论文

引用图谱(OpenAlex:被引数 + 参考文献)

download_paper_pdf

科研/论文

开放获取 PDF 下载(OpenAlex OA 定位)

scout_topic

科研/论文

主题侦察:多源聚合 + 去重 + 评分排序

scout_compare

科研/论文

主题横向对比(按命中数降序)

rag_answer

科研/论文

检索增强问答(本地模板合成,无 LLM)

rag_sources

科研/论文

RAG 来源检索(按被引降序)

find_code_for_paper

科研/论文

论文找代码/数据集(HuggingFace/Zenodo)

link_papers_to_code

科研/论文

主题论文批量关联代码/数据集

全链路:从构思到论文

ideate_paper(构思/假设/实验计划)
      │
      ▼
reproduce_paper ──► reproduce_status(异步轮询,五步闭环)
      │
      ├────────────────────────────┐
      ▼                            ▼
research_verdict(PROCEED/REFINE/PIVOT)   write_section(撰写各章节)
      │                                   │
      ▼                                   ▼
inject_results(实验数据并入 results)      export_document(LaTeX/PDF/DOCX)
      │                                   │
      └──────────────► get_deliverables(交付全部实物)

Related MCP server: kavi-research-assistant-mcp

快速开始

👉 3 分钟装好、配置好后即可用对话直接调用(标准 MCP 工具调用,无需命令/文件): 详见 MCP_QUICKSTART.md。

更详细的使用指南、端到端示例与常见问题见 USAGE.md。

安装

要求 Python ≥ 3.10。

# 别人装机第一次用(最简):
pip install "git+https://github.com/liudongyan13701205717-source/sci-forge.git"

# 或克隆到本地再安装(可同时拿到源码):
git clone https://github.com/liudongyan13701205717-source/sci-forge.git
cd sci-forge
pip install -e .            # 最小安装(只带 MCP 本体)

# 需要复现线时,装上运行依赖(推荐):
pip install -e ".[reproduce,dev]"

安装后会得到 sci-forge 命令,直接注册为 local MCP 即可(不需要 PYTHONPATH / cwd,这是标准可移植配置):

{
  "mcp": {
    "sci-forge": { "type": "local", "command": ["sci-forge"], "enabled": true }
  }
}

验证安装:

sci-forge --version                     # 打印版本(还会 --help 用法)
python -m pytest tests/ -q              # 跑内置测试,应全绿

真实使用示例

1. 让 MCP 写一篇论文

paper_id = "demo"
write_section(paper_id, "abstract",   "为《边缘设备上的轻量推理》写摘要,主题=推理速度优化", "markdown")
write_section(paper_id, "problem",    "问题定义:边缘设备推理延迟与能耗瓶颈", "markdown")
write_section(paper_id, "modeling",   "建模:轻量化网络与量化方案", "markdown")
write_section(paper_id, "solution",   "求解:剪枝/蒸馏/量化组合策略", "markdown")
write_section(paper_id, "results",    "实验设置与评估指标", "markdown")
write_section(paper_id, "references", "参考文献", "markdown")

export_document(paper_id, "pdf")      # 产出 demo/doc.pdf + doc.tex + doc.html

2. 构思一个研究课题

ideate_paper("大语言模型的轻量化可解释方法", "my_proj")
# 返回:研究缺口、候选假设、多视角评审(novelty/rigor/feasibility 加权)、实验计划

3. 复现一篇论文并注入结果

tid = reproduce_paper("path/to/paper.pdf")["task_id"]
# 轮询 reproduce_status(tid) 直到 done

research_verdict(tid)             # 根据实验结果给出 PROCEED/REFINE/PIVOT
inject_results("my_proj", tid)    # 把真实指标表 + 收敛图写进 my_proj 的 results 章节

get_deliverables(tid)             # 拿到复现的全部交付物

4. 科研/论文全流程(无 key,agent 直接成文)

ideate_paper(topic, paper_id)          # 选题与缺口
research_plan(topic, paper_id)         # 研究计划书
literature_review(topic, paper_id)     # 文献综述
# 由 agent 依 WRITING_PROTOCOL 用 write_section 写满各章完整正文(无 LLM 配置)
auto_title_abstract(paper_id)          # 提炼标题/摘要/关键词
peer_review(paper_id)                  # 模拟审稿,据意见修订
paper_polish(paper_id, "completeness") # 完整性检查
paper_polish(paper_id, "grammar")      # 语言润色
venue_suggest(topic, paper_id)         # 投稿建议
export_document(paper_id, "pdf")       # 终版导出

快速起一个可写作的论文项目:python scripts/agent_write_paper.py <paper_id> --topic "..."。


架构

sciforge/
├── server.py           # MCP stdio server,注册 65 个工具 + 2 个 resource
├── review/             # 多视角评审面板(7席+Devil's Advocate+编辑综合决策)
├── claims/             # claim→source 核验 + 完整性门 + Material Passport
├── venue/              # 期刊写作模板 + journal-fit 匹配
├── disciplines/        # 学科论文支持 registry(261 门自动发现,v2 精细绑定工具/门类/论文库)
├── core/            # 布局/存储/Layout + 可选 LLM 连接层(无 key 会回退模板)
├── parse/           # 论文 PDF 解析(PyMuPDF)
├── reproduce/       # 五步复现闭环:tasks/codegen/harness/pipeline + codereview 静态点评
│   ├── codegen.py   #   提取超参 + 生成 numpy/torch 复现代码
│   ├── harness.py   #   沙箱执行 + 自愈重试 + 指标/图采集
│   └── pipeline.py  #   编排五步,产出 results.json / plan.json / deliverables/
├── write/           # 写作:doc(DocStore)/templates/validate
├── export/          # 导出:md→latex/html/docx + PDF 渲染
├── research/        # 研究线:lit/ideate/hypoth/design/inject + stats/bench/novelty/community
│   └── (plan/survey/extract/review/venue/polish  # 科研/论文工具集)
├── deliver/         # 交付:get_deliverables + package_submission(投稿打包)
└── science/         # 科学数据查询:46 个连接器,覆盖文献/蛋白/化学/基因组/通路/组学/数据集

学科体系 v2(Discipline v2,261 门)

sciforge/disciplines/ 内置 261 门学科的论文支持 registry(零注册自动发现),每门学科 13 个声明式字段:

字段

说明

name / aliases / paper_types / citation_style / reporting_standards / conventions / key_venues / units_and_formulas_notes

体裁、结构与写作规范(v1 八字段)

paper_capable

该学科是否以论文为主要产出

contribution_forms

产出形式(可多值):论文 / 学术专著 / 文学作品 / 艺术作品 / 软件与代码 / 专利 / 教案与教材 / 译文 / 报告 / 数据集

tools

该学科用到的工具(软件/仪器/方法平台,如 LaTeX、PyTorch、PCR 仪)

category

学科门类(中国 14 门类:哲学/经济学/法学/教育学/文学/历史学/理学/工学/农学/医学/军事学/管理学/艺术学/交叉学科)

databases

优先论文库/数据库(如 OpenAlex、arXiv、PubMed、CNKI)

覆盖全部主流学科:数理、化学、生物与生态、医学与健康、工程与技术、计算机与信息、地球与环境、社会科学、人文与艺术、体育与军事、交叉与新兴——MCP 不强制选学科,venue_suggest / literature_review 等工具按文本语义自动路由。

查询 API(大小写不敏感子串匹配):

from sciforge.disciplines import list_disciplines, get_discipline, list_by_category, list_by_contribution_form, list_by_tool, list_by_database

list_by_category("理学")          # 全部理学门学科
list_by_contribution_form("专利")  # 可产出专利的学科
list_by_tool("PyTorch")            # 绑定 PyTorch 的学科
list_by_database("PubMed")        # 优先 PubMed 的学科

科学数据查询(science)

通过 46 个连接器,覆盖 7 大领域的公开科学数据库:

领域

连接器

literature

openalex, arxiv, biorxiv, crossref, europepmc, pubmed, semantic-scholar, unpaywall, core, opencitations-coci, cnki, wanfang

proteins

uniprot, rcsb-pdb, pdbe, alphafold, interpro, sifts

chemistry

chembl, pubchem, chebi, bindingdb, gtopdb, surechembl

genomics

ensembl, eutils, mygene, myvariant, clinvar, dbsnp, gnomad

pathways

biogrid, intact, kegg, opentargets, reactome

omics

arrayexpress, depmap, expression-atlas, geo, gtex, hpa

datasets

zenodo, doaj, openaire, huggingface

提供 4 个 MCP 工具:

工具

描述

science_list_dbs(domain?)

列出可用数据库,可按领域筛选

science_search(database, query, limit)

单库搜索

science_fetch(database, id, format)

按 ID 获取记录

science_cross_lookup(query, databases?, limit)

多库联合查询

存储布局

.sci-forge/                  # 运行产物,已 gitignore
├── env                         # 本地配置(可选 LLM 端点),不提交
├── projects/{paper_id}/        # 写作项目:doc.md / doc.pdf / doc.tex / sections/
│   └── research/               #   研究产物:*.json + *.md(供后续复用/打包)
└── tasks/{task_id}/            # 复现任务:parse/ code/ runs/ deliverables/

可选增强:LLM

在 .sci-forge/env 写入 OpenAI 兼容端点即可启用 LLM 增强(更自然的章节生成/评审/构思):

BASE_URL=https://.../v1
API_KEY=sk-...
MODEL=...

未配置时,所有线自动回退到本地模板,功能不受阻断。


测试

pip install -e ".[dev]"
python -m pytest tests/ -q      # 全量测试,全离线可跑(文献/复现用模拟数据)

测试覆盖四条线上的单元 + stdio 端到端(真实 spawn MCP server 并调用工具)+ 科学数据连接器。


反馈与贡献

遇到 bug、功能建议或有任何问题,欢迎通过 GitHub Issues 反馈:

👉 https://github.com/liudongyan13701205717-source/sci-forge/issues

  • 🐛 Bug:请附上复现步骤、报错信息(含 File "...", line ... 堆栈)与相关 paper_id/task_id。

  • 💡 Feature:说明你的使用场景与期望行为。

  • 🤝 Contribute:Fork 后提 PR 即可;请先运行 python -m pytest tests/ -q 确保全绿。


License

MIT

本项目为独立开发的教育/研究工作,与 SciForge 及其商标无关联。

Related MCP Connectors

Related MCP Servers