gedfire について
GedFireは、系譜研究向けのローカルGEDCOMコマンドラインツール兼MCPサーバーです。出典の記録から引用付きの変更案を作り、検証やレビューを経て反映できるほか、確認済みデータから家系ウェブサイトを生成します。
主な機能
- 01人物と記録の検索・照合
- 02引用付きの型付き変更案の作成
- 03レビュー済み編集の検証と適用
- 04プライバシーと編集ポリシーの適用
- 05静的な家系ウェブサイトの生成
活用シーン
- 01ローカルGEDCOM内の人物調査
- 02複数人が記載された史料の照合
- 03引用付き変更案のレビュー準備
- 04確認済みデータから家系ページを公開
MCP 対応
GedFireは単一のGEDCOMファイルに結び付いたローカルstdio MCPサーバーとして動作し、系譜調査、変更案作成、検証、適用のツールを公開します。読み取り専用やプライバシーのオプションで動作を制限できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GedFire
AI エージェントに、GEDCOM 用のテキストエディターではなく、系譜調査ツールを提供しましょう。
GedFire は、ローカルのModel Context Protocol (MCP)サーバー兼コマンドラインツールです。エージェントが人物を検索し、記録を比較し、出典を明記した変更案を作成して、家族の歴史に書き込む前に検証できるよう支援します。同じデータから、静的な家族ページのウェブサイトも生成します。
GedFire がサポートするのは、stdio(標準入出力)を使用するローカル MCP モードのみです。MCP クライアントが、インストール済みの実行可能ファイルをローカルプロセスとして起動します。リモート HTTP、Streamable HTTP、SSE トランスポート、サーバー URL、待ち受けポートはありません。これは MCP 接続についての説明であり、クライアントの AI モデルの実行場所についてではありません。
historical records -> findings -> changesets -> review -> GEDCOM -> website
GedFire は作業の仕組みを担います。証拠の妥当性は、あなたとレビュー担当者が判断します。サーバーは型付きツールを 19 個公開します。バインドされた GEDCOM を変更できるのは apply_changeset だけです。その他のツールは、別ファイルに変更案やレポートを書き出せます。レビューと権限の制限は重要です。GedFire は変更を検証しますが、あなたの承認を収集したり、認証したりすることはありません。
クイックスタート
.NET 10 SDK を使ってインストールします。
dotnet tool install --global GedFire
gedfire --version
または、.NET をインストールせずに自己完結型のリリースをダウンロードしてください。
GEDCOM のコピーを用意して始めましょう。MCP クライアントを設定し、次を起動します。
gedfire mcp --input "C:\Genealogy\family.ged" --read-only --enforce-privacy
入力パスをファイルの絶対パスに置き換えてください。ターミナルで 2 つ目のコピーを実行するのではなく、クライアントからローカルの stdio サーバーを起動してください。通信はネットワーク接続ではなく、プロセスのストリームを通じて行われます。
エージェントに、**「このファイルには人物と家族がそれぞれ何件ありますか?」**と尋ねてください。get_document_stats を呼び出し、両方の件数を報告するはずです。
--read-only は GEDCOM の変更を禁止しますが、変更案やレポートファイルの作成は禁止しません。--enforce-privacy は、ツールの出力で保護対象の人物と、生存している可能性のある人物をマスキングします。安全性とプライバシーの制限を理解するまでは、両方のフラグを有効にしておいてください。
架空のデモを試す
生成された家族ページを見る。CI はプッシュのたびに、架空の Ash 家族のデータからこのサイトを再構築します。脚注にカーソルを合わせると、各事実の出典を確認できます。
デモを自分で実行するには、このリポジトリをダウンロードするか、クローンします。ルートディレクトリから、次を実行します。
Copy-Item docs\demo\ash-whitfield.ged family.ged
gedfire apply --input family.ged --changes docs\demo\proposed-findings.json --items all --dry-run
gedfire apply --input family.ged --changes docs\demo\proposed-findings.json --items all
gedfire generate --input family.ged --output-dir site --template docs\demo\template.html
最初の apply は変更をプレビューするだけです。2 回目の apply で、コピーに変更を書き込みます。site/index.html を開いて、生成結果を確認してください。デモに登場する人物、記録、場所、出典はすべて架空のものです。Linux または macOS では、cp と / 区切りのパスを使用してください。
GedFire を選ぶ理由
オンラインの家系図から得られるのは手がかりであり、証拠ではありません。同じ主張が繰り返されても、証拠が増えないまま誤りが広まることがあります。GedFire は異なるワークフローをサポートします。記録に書かれている内容を記録し、誰に関する記述かを特定してから、出典を明記した変更案を提示します。
- 生のテキスト編集ではなく、型付きの変更。 GedFire は、解析済みの GEDCOM ドキュメントに操作を適用します。書き込む前に、構造、ポインター、レコード数の変更を検証します。
- 事実には出典が伴います。 調査結果には、原文の抜粋、出典の詳細、品質評価が含まれます。変更案や生成ページにも、これらが保持されます。
- 決定論的な処理。 ツールは人物の候補を順位付けし、整合する調査結果を突き合わせ、出典を再利用し、意見の不一致にフラグを付けます。証拠と判断はエージェントが提供します。
- 管理できるルール。 ポリシーファイルを使って、禁止された表現を拒否し、検証メモを必須にし、死亡地に関する証拠を求めることができます。
- ローカル処理。 GedFire はネットワークリクエストを行わず、テレメトリも送信しません。ツールの結果をどこに送るかは、MCP クライアントが制御します。
- 公開元を一本化。 事実の別コピーを保守するのではなく、レビュー済みの GEDCOM から家系図ページを直接生成します。
エージェントはレコード全体を書き換えるのではなく、コンパクトな調査結果と操作をやり取りします。トークンの使用量はクライアントとタスクによって異なります。この README では、節約量を定量的に示していません。
GedFire は、グラフィカルな家系図エディター、記録の提供者、ホスト型の系譜サービスではありません。引用文が真正か、人物の特定が正しいかを立証することはできません。
AI クライアントを接続する
クライアントから MCP サーバーの種類を尋ねられた場合は、local または stdio を選択します。リモートサーバーの URL ではなく、実行可能なコマンドと引数を設定してください。
VS Code / GitHub Copilot
ワークスペースの .vscode/mcp.json に次の設定を追加します。
{
"servers": {
"gedfire": {
"type": "stdio",
"command": "gedfire",
"args": [
"mcp", "--input", "C:\\Genealogy\\family.ged",
"--read-only", "--enforce-privacy"
]
}
}
}
入力パスを置き換え、VS Code の MCP コントロールからサーバーを起動し、プロンプトが表示されたら信頼を承認します。チャットでツールを有効にしてください。ユーザーレベルの設定とツールのアクセス許可については、VS Code の MCP ガイドを参照してください。
Claude Desktop、Claude Code、Cursor、Windsurf、Gemini CLI
これらのクライアントでは、mcpServers エントリを使用します。
{
"mcpServers": {
"gedfire": {
"command": "gedfire",
"args": [
"mcp", "--input", "C:\\Genealogy\\family.ged",
"--read-only", "--enforce-privacy"
]
}
}
}
| クライアント | 設定ファイル |
|---|---|
| Claude Desktop | Settings > Developer > Edit Config を開き、claude_desktop_config.json を編集します。 |
| Claude Code | プロジェクトのルートにある .mcp.json。 |
| Cursor | プロジェクトの .cursor/mcp.json、またはクライアントのグローバルな mcp.json。 |
| Windsurf | ~/.codeium/windsurf/mcp_config.json。 |
| Gemini CLI | プロジェクトの .gemini/settings.json、または ~/.gemini/settings.json。 |
Codex
プロジェクトの .codex/config.toml または ~/.codex/config.toml に次の設定を追加します。
[mcp_servers.gedfire]
command = "gedfire"
args = ["mcp", "--input", "C:\\Genealogy\\family.ged", "--read-only", "--enforce-privacy"]
オプションとトラブルシューティング
すべての例では Windows のパスを使用しています。Linux または macOS では、入力を /home/me/genealogy/family.ged のような絶対パスに置き換えてください。JSON と TOML の二重引用符で囲まれた文字列では、Windows のバックスラッシュをエスケープする必要があります。
| オプション | 効果 |
|---|---|
--read-only | すべての apply_changeset 呼び出しを拒否します。下書きやレポートの出力を含む、その他すべてのツールは引き続き利用できます。 |
--enforce-privacy | ツールの出力で、保護対象の人物や存命の可能性が高い人物をマスクします。プライバシーの制限を参照してください。 |
--policy <json> | 変更セットの検証および適用時に編集ルールを適用します。ポリシーの例とポリシーのリファレンスを参照してください。 |
設定を変更した後は、クライアントを再起動するか、再読み込みしてください。起動に失敗した場合は、次の点を確認してください。
- 新しいターミナルで
gedfire --versionが動作すること。 - GEDCOM の絶対パスが存在すること。
- クライアントの MCP ログに起動エラーがないこと。
- クライアントが継承した
PATHからgedfireを見つけられない場合、commandに絶対実行ファイルパスが指定されていること。
GedFire には API キー、認証情報、環境変数は必要ありません。
調査ワークフロー
調査結果には、情報源の記述を記録します。 原文の抜粋、情報源と位置情報、情報源と情報の分類、主張されている事実、品質評価を記録します。矛盾する調査結果は、ひとつの結論にまとめず、そのまま保持します。
相関によって人物を特定します。 名前の手掛かりから検索する場合は find_person を、世帯、死亡記事、その他の複数人が記載された記録を照合する場合は match_record を使用します。候補と除外対象を確認します。決定論的な一致スコアは確率ではなく、立証の論拠に代わるものでもありません。
変更セットで編集内容を指定します。 draft_changeset は調査結果を型付き操作にまとめます。両立する事実を調整し、出典を保持するとともに、実際に意見が分かれる箇所は open の判断事項として残します。検証で不備が判明した場合は、調査結果を修正して再度ドラフトを作成します。
提案書で審査用の論拠を提示します。 validate_changeset と check_plausibility の後に、draft_package を呼び出します。作成者が提示した証拠、評価、人物同定の論拠を含め、完成した変更セットから番号付きの提案書を作成します。
審査プロセスで承認されたものだけを適用します。 apply_changeset で承認済み項目を選択します。書き込み前に、再度検証して確認します。公開する準備ができたら、サイトを生成します。
情報源と情報の分類は引用の品質を判断する基準であり、主張を証明するものではありません。死亡証明書は、死亡については一次情報を提供する一方、出生については二次情報となる場合があります。QUAY の上限については、評価とドラフト作成のリファレンスを参照してください。
ツール
サーバーは 1 つの GEDCOM にバインドされ、ファイルがディスク上で変更されると再読み込みします。返されるすべての xref はそのドキュメントだけに属します。別のファイルやプロバイダーに対して再利用しないでください。
| ツール | 目的 |
|---|---|
get_document_stats | 人物数と家族数、GEDCOM のバージョン、GedFire のバージョンを報告します。 |
find_person | 出生、死亡、親、結婚に関する任意の手掛かりを使って、名前の一致候補を順位付けします。 |
find_family | 配偶者、親、子の名前を指定して人物を検索します。 |
find_source | タイトル、著者、URL から既存の情報源を検索します。 |
get_record | 引用と、任意で情報源のテキストを含めて、人物、家族、情報源のいずれかを取得します。 |
get_records | 複数のレコードを一度に取得し、任意でフィールドを選択します。 |
list_people | 姓/名前/xref の安定した順序で、人物をページ単位で取得します。 |
list_unanchored_people | 本人または近親者に日付や場所のアンカーがない人物を検索します。 |
match_record | 複数人が記載された記録を家系図の家族と比較し、同名の別候補を調査します。 |
research_brief | 人物の事実、親族、調査の不足、メモ、重複、妥当性に関する問題を要約します。 |
select_targets | 調査の不足を評価して対象を選ぶか、指定した人物を評価します。 |
date_calc | 二重日付の正規化、年齢の加算または減算、経過時間の計算を行います。 |
describe_changeset_ops | 変更セットのエンベロープ、操作スキーマ、記入例を返します。 |
draft_changeset | 調査結果を引用付きの変更セットにまとめ、未解決の判断事項を報告します。 |
draft_package | 完成した変更セットから審査用の提案書を作成します。 |
validate_changeset | 選択した編集内容をプレビューし、ポリシーを適用するとともに、任意で調査の不足を解消できたか評価します。 |
check_plausibility | 編集によって発生する時系列上および生物学上の問題を報告します。 |
validate_document | ドキュメント全体が GEDCOM 7 に準拠しているか確認します。 |
apply_changeset | 選択した項目を検証、適用、確認した後、GEDCOM を書き込みます。 |
正確なパラメーターについては公開されている MCP スキーマを、動作と例については MCP リファレンスを参照してください。 すべてのツールは、必須パラメーターの欠落と認識されないパラメーターを拒否します。 エラーには問題のあるフィールド名と、指定可能なフィールドが表示されます。
安全性と審査
GedFire が適用する制約
- ドライランと適用では、同じ検証を実行します。操作が検証に失敗した場合、GedFire は何も書き込みません。
- パスベースの適用では、初回読み込みから検証済みの書き込みまで排他ファイルロックを保持し、GedFire の書き込み処理が競合しないようにします。
- 人物を作成する前に、検証によって、既存の人物と作成予定の人物の間に信頼度の高い重複がないかを確認します。候補が曖昧な場合、作成は阻止されません。
- 書き込み前に、GedFire はバイト単位で安定した再解析/フォーマットの往復、ポインターの解決、予想されるレコード数の変化を確認します。
--read-onlyを指定すると、クライアントが承認していても適用の呼び出しは拒否されます。- 設定済みのポリシーでは、プレビュー時と適用時の両方で変更セットを拒否できます。
バックアップまたはバージョン履歴を保持してください。構造検証では、すべての系譜上の誤りを検出できるわけではありません。
あなたとクライアントが制御すること
GedFire はレビュアーの承認を認証しません。 apply_changeset は呼び出し元が選択した項目を受け入れますが、人間または独立したレビュアーが承認したかどうかは確認しません。提案は同意を支援しますが、それを強制するものではありません。
クライアントのツール権限を使って、適用へのアクセスを制御してください。GEDCOM への書き込みを確実に阻止するには、--read-only を指定したままにしてください。書き込みを許可する場合に限り、このオプションを外してください。各変更について人間の承認を必須にするのか、自動レビューのワークフローを承認するのかを明示的に決めてください。GedFire は人間による承認を必須としません。独立したモデルがすべての項目をレビューすることもできます。
検証で確認するのは編集内容であり、証拠の真偽ではありません。引用、人物の同定に関する論拠、出典の独立性、未解決の矛盾は、自分自身または信頼できるレビュアーを通じて確認してください。
プライバシー
GedFire はネットワークリクエストを行わず、テレメトリも送信しません。選択したクライアントがツールの結果をモデルプロバイダーに送信する場合があります。ローカル処理でも、会話全体がローカルになるわけではありません。
--enforce-privacy は、サイトのプライバシーフィルターを使用します。RESN CONFIDENTIAL または RESN PRIVACY が設定されている人物に加え、死亡を示す事実がなく、生年月日が過去 100 年以内であるなど、生存している可能性が高い人物もマスクします。これらの人物は、日付、場所、メモ、メディアを含まない Living <Surname> というプレースホルダーとしてツールに表示されます。
このフィルターは記録された事実に基づいており、実際に生存しているかどうかを検証するものではありません。プレースホルダーからも姓は分かります。生年も明示的な制限もない場合、年齢に基づく判定では人物はマスクされません。このフラグは、他のレコードやユーザーが入力したテキストに含まれるすべての言及を確実に削除するものではありません。結果を共有する前に、データとクライアントのプライバシー設定を確認してください。
インストール
.NET ツールとしてインストール
.NET 10 SDK が必要です:
dotnet tool install --global GedFire
gedfire --version
更新するには、dotnet tool update --global GedFire を実行します。
リリースをダウンロード
GitHub Releases からお使いのプラットフォーム用のアーカイブをダウンロードし、展開してください。これらの自己完結型バイナリを使用する場合、別途 .NET をインストールする必要はありません。
Windows では .\GedFire.exe help を実行します。Linux または macOS では ./GedFire help を実行します。
コマンドライン
CLI は MCP サーバーと同じエンジンを使用します。
| コマンド | 目的 |
|---|---|
create | GEDCOM 7 文書を初期データ付きで作成します。 |
upgrade / downgrade | GEDCOM 5.5 と 7 の間で変換します。 |
validate | GEDCOM 7 への準拠を確認します。 |
apply | 選択した変更セット項目をプレビューまたは適用します。プレビューするには --dry-run を使用します。 |
generate | 静的な家系ページを生成します。メディアのステージングは任意です。 |
export-index | JSON 形式の人物名インデックスをエクスポートします。 |
select-targets | 研究対象の姓について、調査の空白を検出、評価、図示します。 |
date-calc | 二重日付を正規化するか、日付と年齢を計算します。 |
find-person / get-record / get-document-stats | サーバーを起動せずに、1 回の検索を実行して JSON を出力します。 |
pack / unpack | GEDZIP アーカイブを作成または展開します。 |
mcp | ローカル専用の stdio MCP サーバーを起動します。HTTP またはリモートトランスポートは使用しません。 |
tools list / tools describe / tools call | 同じ JSON スキーマとハンドラーを使用して、MCP ツールを直接検出または呼び出します。 |
コマンドの構文については gedfire help を実行してください。変更セットの仕様と日付計算の例については、MCP リファレンスを参照してください。
スクリプトからツールを使用する
すべての MCP ツールは、サーバーや AI クライアントを使わずに、単発コマンドとしても利用できます。
gedfire tools list
gedfire tools describe find_person
gedfire tools call find_person --input family.ged --args request.json --out result.json --enforce-privacy
引数ファイルには、たとえば次のように、MCP ツールの引数オブジェクトのみを記述します。
{"query":"Mara Example","maxResults":8}
--args - を指定すると標準入力から JSON を読み込みます。--args を省略すると {} が使われます。--out に新しいファイルを指定しない限り、結果は標準出力に JSON 形式で出力されます。既存の出力ファイルは拒否されます。診断情報は標準エラー出力に送られます。終了コードは、成功時は 0、エラーまたは検証/妥当性チェックの失敗時は 1 です。
--policy、--read-only、--enforce-privacy の意味は mcp の場合と同じです。読み取り専用モードでは GEDCOM の変更は防止されますが、個別のドラフトファイルやレポートファイルの作成は防止されません。検出には GEDCOM は不要で、date_calc と describe_changeset_ops の呼び出しには --input は不要です。既存の便利なコマンドは変更されていません。出力の詳細については、スクリプトインターフェースを参照してください。
ソースからビルドする
.NET 10 SDK が必要です。
git clone https://github.com/morrillonline/GedFire.git
cd GedFire
dotnet build --nologo
dotnet test --nologo
.\GedFire\bin\Debug\net10.0\GedFire.exe help
ソリューションには GedCore(エンジン)、GedFire(CLI、MCP サーバー、サイトジェネレーター)、GedCore.Tests が含まれています。
バージョンは VersionMajor.VersionMinor.BuildNumber に従います。
Directory.Build.props でメジャー/マイナーのバージョンを定義しています(現在は 4.1)。ローカルビルドでは、ビルド番号の既定値は 1 です。CI ではワークフローの実行番号が使われ、リリースビルドでは v<major>.<minor>.<build> タグの最後のセグメントが使われます。ローカルでビルド番号を再現するには、dotnet build、test、または publish に -p:BuildNumber=<build> を指定してください。
標準規格とコントリビューション
GedFire は FamilySearch GEDCOM 7 を独自に実装しています。FamilySearch または末日聖徒イエス・キリスト教会とは無関係であり、推奨も受けていません。標準規格と拡張機能については、公式仕様リポジトリおよびレジストリを参照してください。
バグ報告、プルリクエスト、合成エッジケースのフィクスチャを歓迎します。イシュー、フィクスチャ、プルリクエストに個人の家族データを含めないでください。PR を作成する前に dotnet test --nologo を実行してください。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。