mcpField
I
inclusio-mcp

inclusio-mcp

本地服务
github.com/sebastienrousseau生产力03 天前更新

关于 inclusio-mcp

inclusio-mcp 是面向 LaTeX 出版工作流的 MCP 服务,可供 Agent 构建与检查无障碍文档。它提供 PDF 渲染和无障碍审计工具,并支持多格式输出。

主要功能

  1. 01列出内容树中的文档
  2. 02构建 PDF 及其他格式
  3. 03使用 veraPDF 审计 PDF
  4. 04提供文档与审计资源

适用场景

  1. 01让 Agent 查询可发布的文档
  2. 02通过 MCP 构建无障碍 PDF
  3. 03检查 PDF 的无障碍合规性

MCP 相关

服务通过 MCP 提供 list_docs、doc_count、render、audit_pdf 工具,以及项目元数据、最新审计报告和版本资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sebastienrousseau-inclusio": {
"command": "uvx",
"args": [
"inclusio"
]
}
}
}
启动命令uvx inclusio

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiinclusio0.0.8

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Inclusio 标志

Inclusio

让出版惠及每一个人。

面向无障碍的 LaTeX 出版引擎,以 Python CLI 形式打包。实现 PDF/UA-2 + WTPDF + PDF/A-4f 三重符合性,提供 C2PA + PAdES + SLSA 来源证明、多格式输出 (HTML5 / JATS / EPUB3)、大模型增强评审,以及用于 Agent 集成的 MCP 服务。

引擎验证 veraPDF 审计 Glama MCP 服务评分 Python >= 3.11 PDF/UA-2 · WTPDF · PDF/A-4f Apache-2.0 OR MIT 许可证

Inclusio 演示


目录


安装

pip install inclusio                       # engine + CLI
pip install 'inclusio[mcp]'                # + FastMCP server
pip install 'inclusio[provenance]'         # + pyhanko (PAdES)
pip install 'inclusio[dev]'                # + pytest, ruff, sphinx, interrogate

要求: Python ≥ 3.11,且 PATH 中包含 LuaLaTeX 工具链。支持 Linux、 macOS 和 WSL(原生 Windows 可使用 Python 接口;LaTeX 门禁需要 WSL 或 TeX Live 安装)。

可选工具提供功能安装
verapdf严格的 EAA / 无障碍审计门禁verapdf.org/install
pandoc (≥ 3.0)HTML5 / JATS XML / EPUB3 多格式输出brew install pandoc · apt install pandoc
c2patoolC2PA 内容凭证contentauth/c2patool releases
pyhanko (via [provenance])PAdES B-T / B-LT / B-LTA 签名由附加项安装
从源码构建
git clone https://github.com/sebastienrousseau/inclusio.git
cd inclusio
./bin/setup        # check toolchain + install dev extras
make test          # smoke suite
make coverage      # full suite (gate: 97 %)

快速开始

下面是一个完整的示例,可粘贴到一个空目录中:

pip install inclusio

# Grab the minimal example, build + audit + emit + judge:
git clone --depth=1 https://github.com/sebastienrousseau/inclusio
cd inclusio/examples/01-hello-world && make

这条 make 命令会生成 build/hello.pdf(符合 PDF/UA-2 + WTPDF + PDF/A-4f 三重标准),对其运行 veraPDF,并在任何一种格式验证失败时以非零状态退出。

也可以从 Python 驱动相同的接口:

# quickstart.py
import subprocess
from pathlib import Path

# 1. Render + build the bundled "hello" fixture — the CLI is the
#    canonical entry point for the LaTeX step.
subprocess.run(
    ["python", "-m", "inclusio.cli.build", "build", "--doc", "hello"],
    cwd="examples/01-hello-world",
    check=True,
)

# 2. Audit the produced PDF in-process — pure-Python, no subprocess.
from inclusio.cli import audit

pdfs = audit.collect_pdfs(
    target=Path("examples/01-hello-world/build"),
    build_dir=Path("examples/01-hello-world/build"),
    registry_stems={"hello"},
)
report = audit.audit(pdfs)
assert report["summary"]["fail"] == 0, "veraPDF reported a failure"
print(f'  PASS  {report["summary"]["pdfs"]} PDF(s), '
      f'{report["summary"]["pass"]}/{report["summary"]["total"]} checks')
# →   PASS  1 PDF(s), 3/3 checks

功能

  • 默认生成带标签的 PDF。 每次构建都会通过 LaTeX 内核的 tagpdf 集成,生成同时符合 PDF/UA-2、WTPDF 和 PDF/A-4f 标准的产物。veraPDF 审核关卡已接入 CI,任何 FAIL 都会以非零状态退出。
  • 生成多种格式。 同一份 LaTeX 源文件可通过 Pandoc 生成 HTML5(符合 WCAG)、JATS XML(1.3,已为 JATS4R 做好准备)和 EPUB3。
  • LLM 增强型评审器。 ATS(Workday / Greenhouse / Lever 启发式评估)、引用依据核验和职位描述(JD)与简历(CV)的匹配度评估——可使用本地 llama.cpp,也可使用自带密钥的云服务(Anthropic / OpenAI);无法连接 LLM 时回退为仅启发式评估。
  • 内容来源证明。 C2PA Content Credentials(通过 c2patool)、PAdES B-T / B-LT / B-LTA 签名(通过 pyhanko)以及 SLSA L3 构建证明(通过 actions/attest-build-provenance)。
  • MCP 服务。 inclusio-mcp 提供 list_docs、audit_pdf、render 和 doc_count,让 Claude Code、Cursor、Continue 或任何其他 MCP 客户端都能驱动引擎。
  • JSON Resume 导入器。 inclusio import-resume 可将 jsonresume.org v1 文档转换为引擎的 CV YAML 架构。
  • 根据需求定制 CV。 根据职位描述定制符合 ATS 要求的版本,并进行英式英语校正和一致性检查。

用法

构建、审核并评审已注册的文档
inclusio build --doc cv --mode draft        # → build/cv.pdf
inclusio audit --strict                     # → veraPDF, non-zero on FAIL
inclusio judge --doc cv --judge ats         # → grade + findings
根据职位描述为 CV 评分
# score_cv.py — fully runnable: drop into a directory with brief.txt + cv.txt
from pathlib import Path
from inclusio.judge import jd_fit

jd_text = Path("brief.txt").read_text(encoding="utf-8")
cv_text = Path("cv.txt").read_text(encoding="utf-8")

report = jd_fit.score_jd_fit(jd_text, cv_text)
print(f"score:   {report.score}/100   grade: {report.grade}")
print(f"missing: {sorted(report.metrics['missing_required'])[:5]}")
# → score:   78/100   grade: B
# → missing: ['opentelemetry', 'rust']
通过 MCP 驱动引擎
inclusio-mcp                          # stdio (Claude Code default)
inclusio-mcp --http --port 8765       # Streamable HTTP

通过 ~/.claude/claude_desktop_config.json 接入 Claude Code:

{
  "mcpServers": {
    "inclusio": {
      "command": "inclusio-mcp",
      "env": { "INCLUSIO_CONTENT_DIR": "/absolute/path/to/content" }
    }
  }
}
嵌入 C2PA Content Credentials
inclusio provenance --doc cv \
  --cert /path/to/cert.pem \
  --key  /path/to/key.pem \
  --output build/cv.c2pa.pdf

工具

inclusio-mcp 服务提供四种 MCP 工具:

  • list_docs — 列出内容树中注册的文档
  • doc_count — 快速统计可用文档数量
  • render — 为文档构建带标签且符合标准的 PDF(及其他格式)
  • audit_pdf — 对 PDF 进行无障碍审核(veraPDF)

另提供三种只读资源:

  • inclusio://meta — 项目清单(meta.yaml)
  • inclusio://audit/latest — 最新审核报告
  • inclusio://version — 引擎版本卡片

架构

inclusio/                  # Python package
  cli/                     # build · audit · render · tailor · judge · emit · provenance · …
  judge/                   # ats · citations · jd_fit · local_llm · cloud_llm
  emit/                    # pandoc (HTML5 / JATS XML / EPUB3)
  provenance/              # c2pa (c2patool) · pades (pyhanko)
  mcp/                     # FastMCP server
  tools/                   # fix_semantic · stamp_pdfs · overlay
core/                      # LaTeX classes (.cls) and styles (.sty)
templates/                 # Jinja2 templates for the template-driven docs
benches/                   # pytest-benchmark micro-benchmarks
examples/                  # Six self-contained runnable scenarios
docs/                      # Sphinx documentation

外部使用者提供自己的内容树(LaTeX 源文件、YAML 元数据、品牌素材),并通过 INCLUSIO_CONTENT_DIR 或 --content-dir 指定引擎使用该目录。仓库自身的 src/ 和 data/ 目录也兼作公共引擎的自测样例。

示例

#文件夹示例内容
101-hello-world/带审核关卡的带标签 PDF 构建
202-cv-from-jsonresume/JSON Resume → CV → ATS + JD 匹配度评分
303-paper-with-citations/论文 → PDF + HTML + JATS + EPUB + 引用评审
404-mcp-agent/inclusio-mcp + Claude Code 技能
505-c2pa-sign/C2PA Content Credentials
606-pades-sign/PAdES B-T eIDAS 签名

每个文件夹都有自己的 Makefile(运行 make help 可列出目标),以及说明缘由和操作方法的 README.md。

文档

  • 快速入门 — 五分钟快速浏览。
  • 教程 — 四篇端到端教程,与示例一一对应。
  • 架构 — 公共引擎与内容仓库的边界、迭代历史、决策日志。
  • 带标签的 PDF — 符合标准的技术栈。
  • 多格式 — HTML / JATS / EPUB。
  • 评审器 — ATS、引用、JD 匹配度、LLM 重排约定。
  • 来源证明 — C2PA、PAdES、SLSA。
  • MCP 服务 — 工具与资源接口。

使用外部内容树发布

make publish CONTENT_DIR=/absolute/path/to/your-content-repo

内容仓库提供自己的 data/meta.yaml(文档注册表)和 src/**.tex(LaTeX 源文件)。设置 INCLUSIO_CONTENT_DIR 后,引擎不会读取该目录之外的任何状态。

开发

make test          # smoke (≤ 20 s)
make coverage      # full suite + 97 % gate (~3 min)
make docstrings    # 100 % interrogate gate
make benchmark     # pytest-benchmark micro-budgets
make audit-strict  # veraPDF, exits non-zero on any FAIL
make docs          # Sphinx

所有提交都会通过 PR squash 合并到 main。分支保护要求通过 Lint (ruff)、Public Engine Checks (py3.11 / 3.12 / 3.13) 和 Signed-commit gate。请参阅 CONTRIBUTING.md。

安全

  • SSH 签名提交。 main 上的每次提交都经过 GitHub 验证。
  • 签名标签。 发布标签使用 ED25519 签名。
  • SLSA L3 构建来源证明(要求仓库为公开状态或使用付费 GitHub 计划)。
  • release.yml 中配置了 PyPI Trusted Publishing(pypa/gh-action-pypi-publish);配置好 PyPI 发布者后,将 vars.PYPI_TRUSTED_PUBLISHING=true。
  • 云端 LLM 密钥仅通过环境变量提供——inclusio 不会自动从磁盘发现凭据。

请按照 SECURITY.md 报告漏洞。

相关 MCP 服务

同一作者开发的同系列 MCP 服务——每个服务针对不同的 Agent 工作流:

服务用途
noyalib-mcp无损解析、格式化和验证 YAML 1.2(Rust)
rlg-mcp用于值班 / SRE Agent 工作流的 RustLogs 日志流
pain001-mcp生成和验证 ISO 20022 pain.001 支付发起文件
bankstatementparser-mcp解析银行对账单(BAI2、MT940/MT942、CAMT.053、OFX、CSV)
camt053-mcp解析并对账 ISO 20022 camt.053 银行对客户对账单
acmt001-mcp生成和验证 ISO 20022 acmt.001 账户管理消息

MCP 注册表

mcp-name: io.github.sebastienrousseau/inclusio-mcp

使用 pip install 'inclusio[mcp]' 安装 MCP 服务(mcp 附加组件会引入 mcp[cli]>=1.27.0)。运行 inclusio-mcp——采用 stdio 传输方式,向 Claude Desktop、Cursor 和其他 MCP 客户端提供无障碍发布工具。


许可证

可任选以下许可证:

© 2026 Sebastien Rousseau。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。