Gedfire

io.github.morrillonline由 GitHub 帳號 morrillonline 發布v4.1.7更新於 Oct 27, 2026

GEDCOM CLI and MCP server for AI-assisted family-history research with reviewable changesets.

概覽

AI 產生的概覽

本機 stdio MCP 伺服器兼命令列工具,為 AI 助理提供型別化的族譜工具,用來檢索、引用、起草並驗證 GEDCOM 變更後再寫入。

可以做什麼
  • 查找人物、家庭與來源,讀取紀錄,分頁瀏覽人物並找出缺少時間地點錨點的人
  • 將多人紀錄與家譜中的家庭比對,產生研究簡報或評分後的研究目標
  • 把帶引用的發現編譯成型別化變更集,說明操作結構,並計算日期與年齡
  • 驗證變更集與合理性,檢查整份文件的 GEDCOM 7 合規性,並起草審閱提案
  • 將核准的變更集項目套用到綁定的 GEDCOM,並產生靜態家族頁面網站
適用情境
適合讓助理協助處理 GEDCOM 檔案的族譜研究:查找人物、比對紀錄、起草帶引用的修改,並在寫入前審閱。適合希望取得可審閱、經驗證的修改,而不是直接改寫文字的使用者。
執行需求
由 MCP 用戶端以 stdio 啟動的本機程序,沒有遠端位址或連接埠。需安裝 .NET 10 SDK 與 GedFire 工具,或使用自帶執行環境的發行檔。需提供 GEDCOM 檔案的絕對路徑。不需要 API 金鑰、憑證或環境變數。
安裝前請注意
apply_changeset 會寫入綁定的 GEDCOM,且不驗證人工審閱核准,應透過用戶端的工具權限控管,並在無意寫入時保留 --read-only。即使唯讀,其他工具仍可寫出草稿與報告檔案。--enforce-privacy 會遮蔽受保護及可能仍在世者,但仍會顯示姓氏,且屬啟發式判斷。請保留備份;驗證只檢查結構,不驗證證據真偽。工具結果可能被送往模型供應商。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Gedfire,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

GedFire

[CI] [License: MIT] [.NET 10]

Give an AI agent genealogy tools, not a text editor for your GEDCOM.

GedFire is a local Model Context Protocol (MCP) server and command-line tool. It helps an agent find people, compare records, draft cited changes, and validate them before writing your family history. It also generates static family-page websites from the same data.

GedFire supports local MCP mode only, using stdio (standard input/output). Your MCP client launches the installed executable as a local process. There is no remote HTTP, Streamable HTTP or SSE transport, server URL, or listening port. This describes the MCP connection, not where your client's AI model runs.

text
historical records -> findings -> changesets -> review -> GEDCOM -> website

GedFire handles the mechanics. You and your reviewer judge the evidence. The server exposes nineteen typed tools; only apply_changeset can modify the bound GEDCOM. Other tools can write drafts and reports to separate files. Review and permission limits matter: GedFire validates changes, but it does not collect or authenticate your approval.

Quick start

Install with the .NET 10 SDK:

powershell
dotnet tool install --global GedFiregedfire --version

Or download a self-contained release without installing .NET.

Start with a copy of your GEDCOM. Configure your MCP client to launch:

powershell
gedfire mcp --input "C:\Genealogy\family.ged" --read-only --enforce-privacy

Replace the input path with your file's absolute path. Let the client launch the local stdio server rather than running a second copy in a terminal; it communicates through the process streams, not a network connection.

Ask your agent: "How many people and families are in this file?" It should call get_document_stats and report both counts.

--read-only blocks GEDCOM changes, not drafting or report files. --enforce-privacy masks protected and plausibly living individuals in tool output. Keep both flags until you understand the safety and privacy limits.

Try the fictional demo

Browse the generated family pages. CI rebuilds this site from the fictional Ash family on every push. Hover over the footnotes to read each fact's citations.

To run the demo yourself, download or clone this repository. From its root:

powershell
Copy-Item docs\demo\ash-whitfield.ged family.gedgedfire apply --input family.ged --changes docs\demo\proposed-findings.json --items all --dry-rungedfire apply --input family.ged --changes docs\demo\proposed-findings.json --items allgedfire generate --input family.ged --output-dir site --template docs\demo\template.html

The first apply only previews the changes. The second writes them to the copy. Open site/index.html to browse the result. All people, records, places, and sources in the demo are fictional. On Linux or macOS, use cp and / paths.

Why GedFire?

Online trees offer leads, not proof. Repeated claims can spread an error without adding evidence. GedFire supports a different workflow: capture what a record says, identify whom it concerns, then propose a cited change.

  • Typed changes, not raw text edits. GedFire applies operations to a parsed GEDCOM document. It checks structure, pointers, and record-count changes before writing.
  • Citations travel with facts. Findings carry verbatim extracts, source details, and quality grades. Drafted changes and generated pages retain them.
  • Deterministic mechanics. Tools rank identity candidates, reconcile compatible findings, reuse sources, and flag disagreements. The agent supplies the evidence and judgment.
  • Rules you control. A policy file can reject banned prose, require verification notes, and demand evidence for a death place.
  • Local processing. GedFire makes no network requests and sends no telemetry. Your MCP client controls where tool results go.
  • One publishing source. Generate family pages directly from the reviewed GEDCOM rather than maintaining a separate copy of its facts.

Agents exchange compact findings and operations instead of rewriting whole records. Token use depends on the client and task; this README makes no quantified savings claim.

GedFire is not a graphical tree editor, record provider, or hosted genealogy service. It cannot establish that a quotation is genuine or an identification is correct.

Connect an AI client

Choose local or stdio if your client asks for the MCP server type. Configure an executable command and arguments, not a remote server URL.

VS Code / GitHub Copilot

Add this to .vscode/mcp.json in your workspace:

json
{  "servers": {    "gedfire": {      "type": "stdio",      "command": "gedfire",      "args": [        "mcp", "--input", "C:\\Genealogy\\family.ged",        "--read-only", "--enforce-privacy"      ]    }  }}

Replace the input path, start the server from VS Code's MCP controls, and approve trust when prompted. Enable its tools in chat. See the VS Code MCP guide for user-level configuration and tool permissions.

Claude Desktop, Claude Code, Cursor, Windsurf, and Gemini CLI

These clients use an mcpServers entry:

json
{  "mcpServers": {    "gedfire": {      "command": "gedfire",      "args": [        "mcp", "--input", "C:\\Genealogy\\family.ged",        "--read-only", "--enforce-privacy"      ]    }  }}
ClientConfiguration file
Claude DesktopOpen Settings > Developer > Edit Config to edit claude_desktop_config.json.
Claude Code.mcp.json in the project root.
Cursor.cursor/mcp.json in the project, or the client's global mcp.json.
Windsurf~/.codeium/windsurf/mcp_config.json.
Gemini CLI.gemini/settings.json in the project, or ~/.gemini/settings.json.

Codex

Add this to .codex/config.toml in the project or ~/.codex/config.toml:

toml
[mcp_servers.gedfire]command = "gedfire"args = ["mcp", "--input", "C:\\Genealogy\\family.ged", "--read-only", "--enforce-privacy"]

Options and troubleshooting

All examples use Windows paths. On Linux or macOS, replace the input with an absolute path such as /home/me/genealogy/family.ged. JSON and TOML double-quoted strings require escaped backslashes on Windows.

OptionEffect
--read-onlyRefuse every apply_changeset call. Leave all other tools available, including draft and report output.
--enforce-privacyMask protected and plausibly living people in tool output. See privacy limits.
--policy <json>Enforce editorial rules during changeset validation and apply. See the example policy and policy reference.

Restart or reload your client after changing its configuration. If startup fails, check:

  1. gedfire --version works in a new terminal.
  2. The absolute GEDCOM path exists.
  3. The client's MCP log shows no startup error.
  4. command names an absolute executable path if the client cannot find gedfire on its inherited PATH.

GedFire needs no API keys, credentials, or environment variables.

Research workflow

A finding records what a source says. Capture a verbatim extract, source and locator, source and information classes, claimed facts, and quality grades. Keep conflicting findings instead of flattening them into one conclusion.

Correlation identifies the person. Use find_person for a hinted name lookup or match_record for a household, obituary, or other multi-person record. Inspect the candidates and exclusions. A deterministic match score is not a probability or a substitute for a proof argument.

A changeset specifies the edits. draft_changeset compiles findings into typed operations. It reconciles compatible facts, preserves their citations, and leaves genuine disagreements as open decisions. Fix the findings and draft again when validation exposes a defect.

A proposal presents the case for review. After validate_changeset and check_plausibility, call draft_package. It writes a numbered proposal from the finished changesets, including evidence, grades, and any identity arguments the author supplied.

Apply only what your review process accepts. Select the approved items with apply_changeset. It validates and verifies them again before writing. Generate the site when you are ready to publish.

Source and information classes bound citation quality; they do not prove a claim. A death certificate may offer primary information about death but secondary information about birth. Read the grading and drafting reference for the QUAY ceilings.

The tools

The server binds to one GEDCOM and reloads it when the file changes on disk. Every returned xref belongs to that document only; never reuse it against a different file or provider.

ToolPurpose
get_document_statsReport person and family counts, GEDCOM version, and GedFire version.
find_personRank name matches with optional birth, death, parent, and marriage hints.
find_familyFind a person through a named spouse, parent, or child.
find_sourceFind existing sources by title, author, or URL.
get_recordFetch a person, family, or source with citations and optional source text.
get_recordsFetch several records at once, optionally selecting fields.
list_peoplePage through people in stable surname/name/xref order.
list_unanchored_peopleFind people with no dated or placed anchors of their own or through immediate kin.
match_recordCompare a multi-person record with tree families and survey same-name rivals.
research_briefSummarize a person's facts, kin, gaps, notes, duplicates, and plausibility issues.
select_targetsScore research gaps and draw targets, or score specified people.
date_calcNormalize dual dates, add or subtract ages, or calculate elapsed time.
describe_changeset_opsReturn the changeset envelope, operation schemas, and worked examples.
draft_changesetCompile findings into cited changesets and report unresolved decisions.
draft_packageWrite a review proposal from finished changesets.
validate_changesetPreview selected edits, enforce policy, and optionally score gap closures.
check_plausibilityReport chronological and biological issues the edits would introduce.
validate_documentCheck the whole document for GEDCOM 7 conformance.
apply_changesetValidate, apply, and verify selected items, then write the GEDCOM.

Use the advertised MCP schemas for exact parameters and the MCP reference for behavior and examples. Every tool rejects missing required parameters and unrecognized parameters. The error names the offending fields and lists the accepted ones.

Safety and review

What GedFire enforces

  • Dry-run and apply use the same validation. If an operation fails validation, GedFire writes nothing.
  • Path-based apply holds an exclusive file lock from the initial read through the verified write to prevent competing GedFire writers from racing.
  • Before creating a person, validation rejects high-confidence duplicates among existing and planned people. Ambiguous candidates do not block creation.
  • Before writing, GedFire checks a byte-stable reparse/format round trip, pointer resolution, and expected record-count changes.
  • --read-only refuses apply calls even if the client approves them.
  • A configured policy can reject a changeset at both preview and apply.

Keep backups or version history. Structural validation cannot catch every genealogical mistake.

What you and your client control

GedFire does not authenticate reviewer approval. apply_changeset accepts the caller's selected items; it does not verify that a human or independent reviewer approved them. A proposal supports consent but does not enforce it.

Use your MCP client's tool permissions to control apply access. For a hard GEDCOM write block, keep --read-only. Remove it only when you intend to allow writes. Decide explicitly whether a human must approve each change or whether you authorize an automated review workflow. GedFire does not require a human gate; an independent model can review every item.

Validation checks the edits, not the truth of the evidence. Review quotations, identity arguments, source independence, and unresolved conflicts yourself or through a reviewer you trust.

Privacy

GedFire makes no network requests and sends no telemetry. Your chosen client may send tool results to a model provider; local processing does not make the whole conversation local.

--enforce-privacy uses the site's privacy filter. It masks individuals with RESN CONFIDENTIAL or RESN PRIVACY, plus plausibly living people: no death-class fact and a birth within the last 100 years. Their tool views become Living <Surname> placeholders without dates, places, notes, or media.

The filter uses recorded facts, not verified living status. Placeholders still reveal surnames. Without a birth year or explicit restriction, the age heuristic does not mask a person. The flag does not promise to redact every mention in other records or user-supplied text. Inspect your data and your client's privacy settings before sharing results.

Installation

Install as a .NET tool

Requires the .NET 10 SDK:

powershell
dotnet tool install --global GedFiregedfire --version

To update: dotnet tool update --global GedFire.

Download a release

Download your platform's archive from GitHub Releases and extract it. These self-contained binaries do not require a separate .NET install.

On Windows, run .\GedFire.exe help. On Linux or macOS, run ./GedFire help.

The command line

The CLI uses the same engine as the MCP server.

CommandPurpose
createCreate a seeded GEDCOM 7 document.
upgrade / downgradeConvert between GEDCOM 5.5 and 7.
validateCheck GEDCOM 7 conformance.
applyPreview or apply selected changeset items; use --dry-run to preview.
generateGenerate static family pages, with optional media staging.
export-indexExport a JSON person-name index.
select-targetsDetect, score, and draw research gaps for study surnames.
date-calcNormalize dual dates or calculate dates and ages.
find-person / get-record / get-document-statsRun one lookup and print JSON without starting a server.
pack / unpackCreate or extract a GEDZIP archive.
mcpStart the local-only stdio MCP server; no HTTP or remote transport.
tools list / tools describe / tools callDiscover or invoke any MCP tool directly using the same JSON schemas and handlers.

Run gedfire help for command syntax. See the MCP reference for changeset semantics and date-arithmetic examples.

Use tools from scripts

Every MCP tool is also available as a one-shot command, without a server or AI client:

text
gedfire tools listgedfire tools describe find_persongedfire tools call find_person --input family.ged --args request.json --out result.json --enforce-privacy

The arguments file contains exactly the MCP tool's arguments object, for example:

json
{"query":"Mara Example","maxResults":8}

Use --args - to read JSON from stdin, or omit --args for {}. Results are JSON on stdout unless --out names a new file; existing output files are refused. Diagnostics go to stderr. The exit code is 0 on success and 1 on errors or failed validation/plausibility checks.

--policy, --read-only, and --enforce-privacy have the same meaning as on mcp. Read-only prevents GEDCOM changes, not separate draft or report files. Discovery needs no GEDCOM, and calls to date_calc and describe_changeset_ops need no --input. Existing convenience commands remain unchanged. See the script interface for output details.

Building from source

Requires the .NET 10 SDK:

powershell
git clone https://github.com/morrillonline/GedFire.gitcd GedFiredotnet build --nologodotnet test --nologo.\GedFire\bin\Debug\net10.0\GedFire.exe help

The solution contains GedCore (engine), GedFire (CLI, MCP server, and site generator), and GedCore.Tests.

Versions follow VersionMajor.VersionMinor.BuildNumber. Directory.Build.props defines major/minor (currently 4.1). Local builds default to build number 1; CI supplies its workflow run number, and release builds use the final segment of a v<major>.<minor>.<build> tag. Set -p:BuildNumber=<build> on dotnet build, test, or publish to reproduce a build number locally.

Standards and contributing

GedFire independently implements FamilySearch GEDCOM 7. It has no affiliation with or endorsement from FamilySearch or The Church of Jesus Christ of Latter-day Saints. See the official specification repository and registries for standards and extensions.

Bug reports, pull requests, and synthetic edge-case fixtures are welcome. Never include private family data in an issue, fixture, or pull request. Run dotnet test --nologo before opening a PR.

License

MIT.

來源:README.md,提交 656549c

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v4.1.7最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分