
GOV Historical Gazetteer
io.github.ianderso由 GitHub 帳號 ianderso 發布v0.1.0更新於 Oct 24, 2026
German historical gazetteer GOV: a place's name, Kreis, parish and Standesamt in any year.
概覽
針對德國歷史地名志 GOV 的唯讀 MCP 伺服器,讓助理依年份查詢某地的名稱、Kreis、教區與 Standesamt。
- 可以做什麼
- 依名稱、類型、座標與目前上級尋找地點,可限定在某一日期屬於某 Kreis、省或邦的範圍內
- 讀取單一物件的完整資訊:帶日期的名稱、類型、座標、外部識別碼、各種關係及其下級物件
- 解析某地在指定年份的名稱,以及逐級往上的行政鏈直至國家,並標示關係日期與確定程度
- 查詢某年涵蓋該地的教區與 Standesamt、教區之上的機構以及當地法院
- 列出某地及其各級行政上級所有帶日期的歸屬,整理成帶日期的地名樹,附 Gramps 日期與建議地名類型
- 回報本次工作階段對 GOV 的請求次數與快取使用情形,且不發出請求
- 適用情境
- 適合德國及歷史上曾屬德國或普魯士地區的地名與族譜研究,需要事件發生當年的行政與教區背景而非現今區劃時使用。可與依日期解析地名但不含教區與 Standesamt 的工具搭配使用。
- 執行需求
- 以 stdio 在本機執行,需要 Python 3.11 以上版本與 uv,通常以 uvx 從 PyPI 啟動。不需金鑰或帳號。選用環境變數可設定快取目錄、HTTP 逾時、請求最小間隔,以及加入 User-Agent 的聯絡位址。需要能連線至 GOV 的公開網路服務。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 GOV Historical Gazetteer,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
gov-gazetteer-mcp
An MCP server for GOV, the Geschichtliches Orts-Verzeichnis: the historical gazetteer of the Verein für Computergenealogie (CompGen), with about 1.2 million places, mostly in Germany and the lands that were once German or Prussian. GOV dates everything it records about a place: its names, what kind of place it was, and every place that enclosed it, civil and ecclesiastical.
That makes it the tool for the question a genealogist asks of every German village: in the year of the event, which Kreis, province and state held it, and which parish and Standesamt kept its registers? A village in Posen was Prussian until 1919 and Polish after 1920; a Pomeranian one was German until 1945. A Kreis was renamed, an Amt dissolved, a parish merged. The server reads GOV's public web service and answers for one year at a time, and it gives the dated enclosures a genealogy program needs to build a place tree that is right for every date.
It works the way a careful genealogist does. A gazetteer entry is a finding aid, not evidence. GOV is edited by volunteers: a parish or Standesamt link says which register to look in, and the register's own heading confirms it. Every result credits GOV and CompGen and carries the address of each object's page on GOV, because that page is what gets cited.
Nothing here writes anywhere, and nothing here keeps a family tree. It sits well beside familysearch-mcp, whose place tools resolve a place by date but know no parishes or Standesämter, and us-places-mcp, its counterpart for American counties.
This is an independent project. It is not affiliated with, endorsed by, or supported by the Verein für Computergenealogie.
Tools
The server publishes six tools. All are read-only.
Setup
You need Python 3.11 or later and uv. There is no key to request.
Without cloning. uvx fetches it from PyPI and runs it in one step:
From a clone, which is what you want if you will change it:
Either way the server speaks MCP over stdio, so you will normally let an MCP client start it rather than run it by hand.
Claude Desktop
A desktop app does not always inherit your shell's PATH. If the server fails
to start because uvx cannot be found, give the full path that which uvx
prints as the command.
Claude Code
Configuration
Nothing is required. A .env file in the directory the server starts in
supplies anything the environment does not; only that directory is read.
An unusable value is reported on the first tool call as a not_configured
result naming the variable. The server writes no files but its cache.
Being a good guest
GOV is run by volunteers on CompGen's own server. The client sends one
request at a time, at least a second apart, and two identical calls in flight
share one request. Objects are cached for 30 days and searches for 7, and
every object an answer carries (a search returns whole objects, not ids) is
kept for the session, so a place already seen is not asked for again. A
question about one year reads each enclosing object once; the same place in
another year then costs nothing. A walk reads at most 40 objects per call and
says so if it stops. A 429, a 5xx or a dropped connection gets one retry,
honouring Retry-After; a SOAP fault is GOV's answer and is not retried. The
User-Agent names the package, its version and this repository.
Terms of use
GOV's site has no terms-of-use page; its footer links CompGen's Impressum and privacy statement. The home page says the project was started to make "qualitativ hochwertige Daten für jedermann bereitzustellen" (to provide high-quality data for everyone, gov.genealogy.net), and it publishes its SOAP services without a key at gov.genealogy.net/services. CompGen describes GOV's data as freely available Linked Open Data; GOV's documentation on GenWiki sits behind a bot check and was not read for this project. Every result credits "GOV — Geschichtliches Orts-Verzeichnis, Verein für Computergenealogie (CompGen)" and links each object's page.
As a fact: GOV's robots.txt disallows a few website paths (edit and history
pages, KML and GeoJSON exports, the distance search) and names several
crawlers it shuts out entirely; it does not mention /services/, the web
service this server uses.
How to read what comes back
- Ask with the event's year.
gov_place_at_dateandgov_registersanswer for one year. A place that changed Kreis or state within that year shows both links with their dates; choose by the event's exact date. - A parish or Standesamt link is a lead. GOV is edited by volunteers. Confirm the parish or office in the register itself, whose heading or title page names it and the places it served, and cite the register.
- Certainty is marked. A link is
dated(its dates bracket the year),undated(GOV gives none; it is assumed to hold), orattested in another year only(GOV records it from one directory of another year). Prefer the first. - Where GOV links no parish to a place,
gov_registersgives the parishes whose church stands in the place, and says so: usually, not always, the place's own parish. Where GOV links no Standesamt, it gives a Standesamt of the same name in the same district, as a candidate, and says GOV does not link them. In well-modelled regions (Pomerania, for one) GOV links both directly. - Name search is literal. It matches whole words and word beginnings,
ignoring case and accents (
Lubeckfinds Lübeck), and never spelling variants: German, Polish and older spellings (Cöslin, Köslin, Koszalin) each need their own call. A zero covers only the spellings and area searched. GOV answers at most 500 objects per search. - Names follow the year. A Polish name GOV dates from 1945 is not given
for 1900. Among names that hold,
language(deuby default,polfor a place under Polish rule) picks the one shown;names_at_datelists them all. - Before 1874 there was no Standesamt in Prussia (1876 in the rest of the
Empire; earlier on the left bank of the Rhine).
gov_registerssays so for those years. - Confederations are left out. GOV records memberships of the German Confederation, the Rheinbund, the League of Nations, the EU and the UN as enclosures; they are not levels of government, so a chain stops below them and a note names them.
- Cite the object's page. Use the
citationeach result carries: the source credit, the entry's title, its GOV id and address, the day GOV last changed it and the day it was read.
Deliberately not here
- Editing GOV. GOV's ChangeService needs an account; this server builds no envelope for it.
- The GenWiki documentation. It sits behind a bot check (Anubis), which this project does not work around. Everything here was built from the WSDLs and GOV's live answers; see docs/API-NOTES.md.
- Bulk export. This server reads places one at a time for research, not whole regions.
Security
Tool arguments are written by a model, and the model reads text this server does not control, including GOV's own names and notes. The server assumes that text can steer the model, and limits what a steered model can make it do.
- One address. Every request is a POST over https to
gov.genealogy.net/services/ComplexService; a request hook refuses anything else, and an argument chooses only what is asked, never where. Redirects are not followed. - Read operations only. The client builds envelopes for seven read operations and nothing else.
- Public addresses only. The connection goes to an address checked to be public, so a DNS answer pointing at a private network is refused. Proxy settings in the environment are not used.
- Bounded, plain answers. An answer over 10 MB is refused as it streams in, and one carrying a document type declaration is refused before it is parsed.
- Arguments are validated (GOV ids, external ids, years, type names) before they reach a request.
- GOV's text is untrusted. Names and notes reach the model verbatim. The server's instructions tell the model to treat that text as material to weigh, never as instructions; the model still decides, so review what it proposes to do.
To report a vulnerability, see SECURITY.md.
Development
The live check asks GOV what the recorded fixtures cannot: whether its answers still have the shape the server reads. See CONTRIBUTING.md for how the suite is organised, docs/API-NOTES.md for what was observed of the service and when, and docs/DESIGN.md for why the server is shaped this way.
Credits
The data is GOV's — Geschichtliches Orts-Verzeichnis, a project of the Verein für Computergenealogie e.V. (CompGen), built by its volunteers. GOV's software is by Jesper Zedlitz.
License
MIT.
來源:README.md,提交 157266e
工具
0版本歷史
1- v0.1.0最新Oct 11, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分