
Norway Archives
io.github.ianderso由 GitHub 账号 ianderso 发布v0.1.0更新于 Oct 25, 2026
Norway's church books, censuses and scans, National Library books, and place names.
概览
一个用于挪威家族史研究的本地 MCP 服务器:可检索和阅读国家档案馆的教会簿、人口普查与扫描件、国家图书馆的书籍,以及官方地名。
- 可以做什么
- 检索并阅读 Digitalarkivet 的转录记录、来源与历史市镇,并把扫描的名单对应到图像编号,附永久编号与引文。将单页扫描件下载为 JPEG 文件并附带档案引文。检索国家图书馆的书籍、报纸与地图,查找提到某词的页面,读取 OCR 文本并下载可公开的页面图像。查询 Kartverket 的官方地名,并查看请求额度与缓存状态。
- 适用场景
- 适合挪威家谱或历史研究:在教区登记簿、人口普查和移民名单中追踪人物,在数字化书籍和地方史中定位姓名,或核对现行地名与历史市镇。适合以扫描页而非转录文本为证据的严谨研究。
- 运行要求
- 通过 uvx 从 PyPI 以 stdio 在本地运行,需要 Python 3.11 或更高版本以及 uv。无需 API 密钥或登录。可选环境变量可设置缓存目录、HTTP 超时、Digitalarkivet 请求间隔与每日额度、User-Agent 中的联系地址以及下载文件夹。需要能访问这三个档案服务的网络。
安装
在 SourceWeft 中
- 打开 控制台中的 Norway Archives,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
norway-archives-mcp
An MCP server for Norwegian family history: the National Archives' church books, censuses and emigrant lists and their scans, the National Library's books and newspapers, and today's official place names.
- Digitalarkivet, run by Nasjonalarkivet (the National Archives of Norway), holds the parish registers (ministerialbøker and klokkerbøker), the censuses of 1801–1920, emigrant protocols, probate records and much more. Some of it is transcribed and searchable; far more is scanned and can only be read page by page. The server does both: it searches the transcriptions, maps a scanned book's lists (baptisms, confirmations, marriages, burials, in- and out-migration) to image numbers, and downloads a page with its permanent id.
- Nasjonalbiblioteket (the National Library) has digitised nearly every Norwegian book and newspaper, including the bygdebøker, the farm-by-farm local histories genealogists live in. Many open only from Norwegian addresses, but a search still tells you which page a name is on.
- Kartverket's place-name register gives today's spelling, type and coordinates of a farm or hamlet.
It works the way a careful genealogist does. The scanned page is the evidence. A transcription is a lead (most church-book transcriptions were keyed by contractors for Ancestry, MyHeritage and FamilySearch), and a search that finds nothing has only searched what was transcribed. Every page comes back with its source, archive reference, image number and permanent link, so the citation points at the archive, not at this server.
Nothing here writes anywhere but your own disk, and nothing here keeps a family tree.
Tools
The server publishes thirteen tools. All but the two downloads are read-only; those create one new file each and never overwrite one.
A typical path through an untranscribed list (confirmations, say):
da_search_sources(municipality="Røros", list_type="kf")finds the church books that hold confirmations, and says the confirmations are scanned but not searchable.da_get_source(source_id=6540)gives the image the confirmations start on.da_list_pages(source_id=6540, section="kf")lists those pages with their permanent ids.da_download_page(page_id="kb2007…", destination=…)saves each page to read, with a citation such as Church book from Røros parish 1860-1878 (1640P), AV/SAT-A-1456/681/L0932, image 171 of 464 (kb20070419660172). Nasjonalarkivet (The National Archives of Norway), Digitalarkivet. https://goto.digitalarkivet.no/kb20070419660172.
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.
Being a good guest, and what the terms say
Digitalarkivet publishes no API and no terms-of-use page; its footer
links only privacy and accessibility statements. Its reuse page says scans
without restrictions "kan disse fritt brukes videre både i trykksaker og på
internett": they may be freely reused in print and online, with the holding
archive credited
(digitalarkivet.no/content/1570).
Its robots.txt asks every crawler for five seconds between requests and
disallows a list of named bots, AI agents among them. This server is not a
crawler: it fetches the pages a researcher asks for, one at a time, at least
five seconds apart (configurable upward only), within a daily budget, with a
User-Agent that names it. Search, record and source pages are cached as
parsed results for 1, 30 and 30 days; manifests for 30; permalink lookups for
a year.
The National Library's API is documented and keyless (api.nb.no). Access to each item follows the library's own rules: material marked for Norway opens only from Norwegian addresses (foreign researchers can apply for access to the Bokhylla collection), and this server reports that rather than working around it. One request a second.
Kartverket's place-name API needs no login or authorisation, in its own words "ikke nødvendig med innlogging/autorisasjon" (api.kartverket.no/stedsnavn). Two requests a second at most.
A 429, a 5xx or a dropped connection gets one retry, honouring Retry-After.
A bot check is reported as blocked and left alone.
How to read what comes back
- A transcription is not the record. Read the scanned page
(
da_download_page) before citing a name, a date or a relationship. - A zero is narrow.
da_search_personssearches transcribed lists only.da_search_sourcesshows which lists are scanned but not searchable; confirmations and migration lists often are. Page through them. - Municipalities moved. The
da_tools filter by the historical municipalities Digitalarkivet uses (seemunicipalities);place_namesreports today's, after the mergers of 2020 and earlier. - Section boundaries are approximate.
da_get_sourcegives the image a list starts on; it usually runs until the next list starts, but books were not always kept in order. - Norway-only books still answer.
nb_search_insidegives the printed page number of a hit even where the page cannot be shown here. - Census pages (ids beginning
ft) come from the older viewer at full resolution only.
Deliberately not here
- Writing anything, or logging in. No tool sends a correction, a report or a message to any service.
- The Norwegian Historical Population Register (HBR), whose search is a form and whose API is for partners.
- Norway Heritage, whose terms forbid duplication or redistribution without permission.
- Working around access rules: Norway-only material, restricted recent records, or bot checks.
Security
Tool arguments are written by a model, and the model reads text this server does not control: record transcriptions, catalogue entries, OCR. The server assumes that text can steer the model, and limits what a steered model can make it do.
- Which hosts. Requests go only to the three services' fixed hosts over https. Any other host is refused, including addresses taken from a response. Redirects are followed only within one service.
- How much. A page or JSON answer over 8 MB, or an image over 60 MB, is refused as it streams in.
- Which files. The downloads create one new file and never overwrite one.
The bytes must be a JPEG, judged by their first bytes, and the file must end
in
.jpgor.jpeg. Never a hidden file or folder, never under~/Library, and withNORWAY_ARCHIVES_DOWNLOAD_DIRset, never outside it, all judged after links are resolved. A refused download leaves nothing on disk. - Arguments are validated (page ids, item ids, record addresses) before they reach a request.
- Site text is untrusted. The server's instructions tell the model to treat record and catalogue text as material to weigh, never as instructions.
To report a vulnerability, see SECURITY.md.
Development
See CONTRIBUTING.md for how the suite is organised, docs/API-NOTES.md for what was observed of each service and when, and docs/DESIGN.md for why the server is shaped this way.
Credits
The records, scans and catalogue belong to Nasjonalarkivet, Nasjonalbiblioteket and Kartverket. Most church-book transcriptions were made by AMF (Ancestry, MyHeritage and FamilySearch) under agreement with the National Archives.
License
MIT.
来源:README.md,提交 da9bd5f
工具
0版本历史
1- v0.1.0最新Oct 11, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分