mcpField
O
One MCP, many parsers

One MCP, many parsers

ローカル
github.com/adelaidasofia生産性04 日前に更新

One MCP, many parsers について

parse-mcpは、ファイルやURLの解析先をmarkitdown、Docling、LlamaParseの間で振り分けるMCPサーバーです。解析結果のノート化や検索向け分割に加え、テキストをClaudeに渡して解釈できます。

主な機能

  1. 013つのバックエンドで解析を振り分け
  2. 02失敗・空結果時のフォールバック
  3. 03解析結果をVaultのノートに保存
  4. 04解析テキストをClaudeで解釈
  5. 05文書種別に応じたテキスト分割
  6. 06出力と処理時間の比較

活用シーン

  1. 01スキャンPDFの解析をDoclingに切り替え
  2. 02文書をMarkdownノートに変換
  3. 03検索用に文書テキストを分割
  4. 04同じ入力でパーサーを比較

MCP 対応

解析、変換、解釈、分割、診断のツールをMCPクライアントに公開します。任意のバックエンドはルーターが選択または切り替え、利用できないものはスキップします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbparse-mcp.mcpb0.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

parse-mcp

ライセンス GitHub スター数 最終コミット 未解決の課題 PyPI バージョン PyPI ダウンロード数 Mycelium AI 製

1つのMCPで、さまざまなパーサーを利用できます。デフォルトはmarkitdown(無料、高速、MIT)です。markitdownの品質が十分でない場合は、Docling(表の多い文書、スキャン済みPDF)やLlamaParse(クラウド、BYOK)に切り替えられます。さらに、解析したMarkdownをClaudeに渡して「要約/Xを抽出」するinterpretツールも用意されているため、パーサーやanthropicのスキルを使い分ける手間がなくなります。

インストール

Claude Codeを開き、次のコマンドを貼り付けます。

/plugin marketplace add adelaidasofia/parse-mcp
/plugin install parse-mcp@parse-mcp
旧方式でのインストール

手動インストール(プラグインマーケットプレイス導入前の方式)です。詳細はSETUP.mdを参照してください。

pip3 install --break-system-packages -r requirements.txt
pip3 install --break-system-packages 'markitdown[pdf,docx,pptx,xlsx]'

次に、クライアントの.mcp.jsonにサーバーを登録します。

{
  "mcpServers": {
    "parse": {
      "command": "python3",
      "args": ["/absolute/path/to/parse-mcp/server.py"]
    }
  }
}

ツール

ツール機能
parse(source, backend?, hints?)ファイルパスまたはhttp(s) URLをMarkdownに変換します。ルーターがバックエンドを選択し、結果が空、またはエラーの場合はフォールバックします。試行したすべてのバックエンドの履歴とMarkdownを返します。
parse_url(url, backend?)HTTP(S)入力用のショートカットです。戻り値の形式はparseと同じです。
parse_to_vault(source, vault_folder?, backend?, overwrite?)解析した結果をVaultのMarkdownノートとして書き込みます。デフォルトのフォルダーは<VAULT_ROOT>/📥 Inbox/Converted/です。フロントマターにはsource、format、backend、latency、bytes_inが記録されます。単独のmarkitdown_to_vault.pyシェルスクリプトを置き換えます。
interpret(source, instruction, backend?, model?, max_tokens?)まず解析し、解析済みのMarkdownをClaudeに渡して指示を実行します。キャッシュにヒットした場合、解析済みテキストが再利用されるため、入力トークンは無料です。
list_backends()インストール済みおよび未インストールのバックエンドを表示します。診断用です。
benchmark(source)利用可能なすべてのバックエンドで同じ入力を処理します。レイテンシーと出力を並べて比較できます。
chunk_text(text, doc_type?, target_tokens?, max_tokens?, min_tokens?)文書タイプに応じたチャンク分割器を使って、解析済みMarkdownを検索向けのチャンクに分割します。doc_type="auto"(デフォルト)では構造を検出し、paper/book/manual/qa/resume/table/defaultから適切なタイプを選びます。各分割器は文書の形状を考慮します(例:paperはabstract全体を1つにまとめ、manualは番号付きセクションをまたいで結合せず、qaは各質問と回答をペアにします)。チャンクと解決済みのdoc_typeを返します。chunkers/パッケージを参照してください。
detect_doc_type(text)診断用です。Markdownに対して構造的ヒューリスティックを実行し、chunk_textが選択するdoc_typeを返します。

バックエンド(優先順位順)

  1. markitdown(デフォルト、MIT、基本インストールに含まれます)。PDF、DOCX、PPTX、XLSX、HTML、CSV、JSON、XML、EPub、ZIPに対応します。高速で決定論的です。
  2. docling(オプション、pip install docling)。複雑な表(ベンチマークで97.9%)やスキャン済みPDFに最適です。初回実行時にモデルの重みをダウンロードします。
  3. llamaparse(オプション、BYOK、pip install llama-cloud-services+LLAMA_CLOUD_API_KEY)。クラウド型で、視覚的に複雑なPDFを最もきれいに出力します。

ルーティング戦略

  • backend 引数なしで parse(source) を呼び出すと、ルーターがファイル形式に基づいてバックエンドを選びます。バックエンドでエラーが発生するか、空の結果が返された場合はフォールバックします。
  • parse(source, backend="docling") のように呼び出すと、特定のバックエンドを強制的に使用し、フォールバックは行いません。診断モードです。
  • 利用できないバックエンドはスキップされ(チェーン内にログとして記録されます)、エラーにはなりません。

パース忠実度の評価

上記のルーティングテーブルは、以前は推測に基づいていました。tests/eval/ では、合成フィクスチャコーパス(デジタル PDF、スキャン/画像のみの PDF、表が多い文書、複数段組み、ラスター画像の各クラスにまたがる16件の文書)と、そこから作成したグラウンドトゥルースの Markdown を使って、これをデータで検証します。各バックエンドの出力を、OmniDocBench/PubTabNet の3つの指標(テキスト編集距離、表の TEDS(木編集距離の類似度)、読み取り順序)で評価します。すべてのスコアは品質を [0, 1] で表し、値が高いほど良好です。

主な結果(全表は tests/eval/parse_fidelity_matrix.md):

文書クラスmarkitdown(テキスト)docling(テキスト)
digital_pdf0.950.97
table_heavy0.930.89
scanned_pdf0.000.87
image0.000.90
multicolumn0.351.00

markitdown は、デジタル形式のきれいなテキストや表の処理に優れています(無料、高速、決定論的)。しかし OCR は行わないため、スキャンされた PDF や画像のスコアはゼロで、複数段組みのレイアウトも入り交じってしまいます。docling はモデルの重みのダウンロードが必要ですが、OCR とレイアウト分析によりすべてのクラスで優れています。これが、形式優先のチェーン(画像、スキャン、複数段組みの文書では docling を優先する)の根拠です。

実行方法:

pip install docling                      # the escalation backend under test
python tests/eval/generate_fixtures.py   # rebuild the corpus (needs fpdf2 + Pillow)
make eval                                # -> parse_fidelity_matrix.{md,json}

このマトリックスには 来歴(バックエンド、Python のバージョン、フィクスチャセットのハッシュ)が記録されるため、結果が古くなっていることが分かります。パースバックエンドをアップグレードまたは再調整した場合は、make eval で再生成してください。また、バックエンドごとの 中央値レイテンシ(コストの指標)も報告されます。忠実度が最も高いバックエンド(docling)はデフォルトよりはるかに遅いため、ルーターはこれをデフォルトにはせず、必要に応じて切り替えます。

スコアラーの指標テストは純粋な Python で実装され、バックエンドに依存しないため、pytest tests/ では基本インストール(markitdown のみ)で CI のゲートを実行できます。「markitdown には OCR がない」という前提を崩すルーティングのリグレッションがあると、ビルドは失敗します。

アーキテクチャ

FastMCP v3.2.3 以降、stdio トランスポート、Python 3.13 以降を使用します。[VAULT_ROOT]/.mcp.json に登録します。デーモンやリスナーはなく、デフォルトではモデルの重みもダウンロードされません。

インストールとバックエンドごとのオプトインについては、SETUP.md を参照してください。

関連する MCP

同じ作者、同じアーキテクチャパターン(FastMCP、書き込み時のドラフト+確認、該当する場合は Vault への自動エクスポート):

テレメトリー

このプラグインは、あるマシン上で Claude Code のセッションに初めて読み込まれたとき、匿名のインストールシグナルを1回だけ myceliumai.co に送信します。

送信される情報:

  • プラグイン名(例:slack-mcp)
  • プラグインのバージョン(例:0.1.0)

送信されない情報:

  • ユーザー識別子、氏名、メールアドレス、トークン、API キーは送信されません
  • ファイルパス、メッセージ内容、業務に関する情報は送信されません
  • 重複排除処理後に IP アドレスが保存されることはありません

目的: メンテナーが実際にインストールされているプラグインを把握し、使われているプラグインに注力できるようにします。

オプトアウト: Claude Code を起動する前に、環境変数 MYCELIUM_NO_PING=1 を設定してください。フックはネットワーク呼び出しを完全にスキップします。すでにシグナルが送信されたインストール環境では、~/.mycelium/onboarded-<plugin> にセンチネルファイルが作成されます。状態をリセットする場合は削除してください。

ライセンス

MIT。LICENSE を参照してください。


インストール全体版またはチーム版については、diazroa.com をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。