inclusio-mcp について
inclusio-mcp は、LaTeX 出版ワークフロー向けの MCP サーバーで、エージェントによるアクセシブルな文書の構築と検査を支援します。PDF のレンダリングとアクセシビリティ監査を行い、複数形式への出力にも対応します。
主な機能
- 01コンテンツツリー内の文書一覧
- 02PDF と他形式の生成
- 03veraPDF による PDF 監査
- 04文書・監査リソースの公開
活用シーン
- 01エージェントによる公開対象の検索
- 02MCP 経由でのアクセシブルな PDF 生成
- 03PDF のアクセシビリティ適合性確認
MCP 対応
list_docs、doc_count、render、audit_pdf ツールに加え、プロジェクト情報、最新の監査レポート、バージョン情報を MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Inclusio
すべての人を包み込む出版。
LaTeX 向けのアクセシビリティを最優先にした出版エンジンを、 Python CLI としてパッケージ化しています。PDF/UA-2 + WTPDF + PDF/A-4f の三重適合、 C2PA + PAdES + SLSA による来歴情報、マルチフォーマット出力 (HTML5 / JATS / EPUB3)、LLM による判定の拡張、エージェント連携用の MCP サーバーを備えています。
目次
- インストール —
pip、オプションの追加機能、ソース - クイックスタート — 60 秒で最初のタグ付き PDF を作成
- 機能 — エンジンに備わる機能
- 使い方 — よく使う Python + CLI のレシピ
- ツール — MCP ツールとリソースの概要
- アーキテクチャ — エンジンのパッケージ構成
- 例 — 実行可能な 6 つのシナリオ
- ドキュメント — クイックスタート、チュートリアル、リファレンス
- 外部コンテンツツリーを使った出版
- 開発 — ローカル検証ゲート
- セキュリティ — 署名付きコミット、来歴情報、監査
- ライセンス
インストール
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 |
c2patool | C2PA Content Credentials | contentauth/c2patool releases |
pyhanko ([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 の 3 規格に準拠する成果物を生成します。veraPDF の監査ゲートは CI に組み込まれており、FAIL があると終了コードがゼロ以外になります。 - 複数形式での出力。 同じ LaTeX ソースから、Pandoc を使って HTML5(WCAG に準拠)、JATS XML(1.3、JATS4R 対応)、EPUB3 を生成します。
- LLM で強化された評価機能。 ATS(Workday/Greenhouse/Lever のヒューリスティック)、引用の根拠確認、求人情報と CV の適合度を評価します。ローカルの
llama.cppまたは独自キーを使うクラウド(Anthropic/OpenAI)に対応し、LLM に接続できない場合はヒューリスティックのみで代替します。 - コンテンツの来歴。 C2PA コンテンツ認証情報(
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 コンテンツ認証情報の埋め込み
inclusio provenance --doc cv \
--cert /path/to/cert.pem \
--key /path/to/key.pem \
--output build/cv.c2pa.pdf
ツール
inclusio-mcp サーバーは 4 つの MCP ツールを公開します。
list_docs— コンテンツツリーに登録されたドキュメントを列挙しますdoc_count— 利用可能なドキュメント数をすばやく取得しますrender— ドキュメントのタグ付き準拠 PDF(およびその他の形式)をビルドしますaudit_pdf— PDF のアクセシビリティを監査します(veraPDF)
さらに、読み取り専用リソースを 3 つ公開します。
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/ ディレクトリは、公開エンジンのセルフテスト用フィクスチャも兼ねています。
例
| # | フォルダー | 説明 |
|---|---|---|
| 1 | 01-hello-world/ | 監査ゲート付きのタグ付き PDF ビルド |
| 2 | 02-cv-from-jsonresume/ | JSON Resume → CV → ATS + 求人情報との適合度スコアリング |
| 3 | 03-paper-with-citations/ | 論文 → PDF + HTML + JATS + EPUB + 引用評価 |
| 4 | 04-mcp-agent/ | inclusio-mcp + Claude Code スキル |
| 5 | 05-c2pa-sign/ | C2PA コンテンツ認証情報 |
| 6 | 06-pades-sign/ | PAdES B-T eIDAS 署名 |
各フォルダーには独自の Makefile(make help でターゲットを表示)と、背景や手順を説明する README.md があります。
ドキュメント
- クイックスタート — 5 分でできる手順。
- チュートリアル — 例と 1 対 1 で対応する、4 つのエンドツーエンドの手順。
- アーキテクチャ — 公開エンジンとコンテンツリポジトリの境界、スプリントの履歴、意思決定ログ。
- タグ付き PDF — 準拠性を実現するスタック。
- 複数形式 — HTML/JATS/EPUB。
- 評価機能 — ATS、引用、求人情報との適合度、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
main へのすべてのコミットは、PR 経由でスカッシュマージされます。ブランチ保護では、Lint (ruff)、Public Engine Checks (py3.11 / 3.12 / 3.13)、および Signed-commit gate の通過が必須です。CONTRIBUTING.md を参照してください。
セキュリティ
- SSH 署名付きコミット。
main上のすべてのコミットは、GitHub によって検証済みです。 - 署名付きタグ。 リリースタグは ED25519 で署名されています。
- SLSA L3 ビルド来歴(リポジトリが公開されているか、有料の GitHub プランを利用している場合に有効になります)。
- PyPI Trusted Publishing の設定(
pypa/gh-action-pypi-publish)をrelease.ymlに用意しています。PyPI のパブリッシャー設定が完了したら、vars.PYPI_TRUSTED_PUBLISHING=trueに切り替えてください。 - クラウド LLM キーは環境変数のみ —
inclusioはディスク上の認証情報を自動検出しません。
脆弱性は SECURITY.md に従って報告してください。
関連する MCP サーバー
同じ作者による関連 MCP サーバーです。それぞれ異なるエージェントのワークフローを対象としています。
| サーバー | 用途 |
|---|---|
noyalib-mcp | ロスレスな YAML 1.2 の解析、フォーマット、検証(Rust) |
rlg-mcp | オンコール/SRE エージェントのワークフロー向け 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 Registry
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。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。