Norway Archives について
ノルウェーの家族史を調べる研究者向けのMCPサーバーです。公文書の転記記録やスキャン、国立図書館の資料、公式地名を検索し、出典情報と恒久リンクを返します。証拠としてスキャン画像を重視します。
主な機能
- 01教会簿、国勢調査、移民記録の検索
- 02資料情報とスキャン頁一覧の確認
- 03出典情報付きスキャン頁のダウンロード
- 04国立図書館の書籍・新聞検索
- 05公式地名と座標の検索
- 06歴史的な自治体の検索
活用シーン
- 01転記記録からノルウェーの祖先を探す
- 02未転記の教会簿スキャンを調べる
- 03図書館資料から人名の掲載頁を探す
- 04農場や村の公式地名を確認する
MCP 対応
stdio経由でMCPサーバーを提供し、MCPクライアントから起動できます。公文書、図書館資料、地名を検索・取得するツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx norway-archives-mcpNORWAY_ARCHIVES_CACHE_DIRDirectory for the on-disk cache and the daily request count.NORWAY_ARCHIVES_TIMEOUTHTTP timeout in seconds for one request. Image downloads get 120 s to read.NORWAY_ARCHIVES_DA_INTERVALLeast seconds between two Digitalarkivet requests. Never below 5.NORWAY_ARCHIVES_DA_DAILY_BUDGETMost live Digitalarkivet requests per UTC day. Cached answers are free.NORWAY_ARCHIVES_CONTACTAn email address or URL appended to the User-Agent, so an archive can reach whoever runs the server.NORWAY_ARCHIVES_DOWNLOAD_DIRAn existing folder. When set, the downloads save only inside it; needed to save under ~/Library, such as an iCloud Drive folder.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
13掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| page | integer | いいえ | 結果ページ。1 ページあたり 50 件。 |
| refresh | boolean | いいえ | True の場合、キャッシュされた回答を使わずに再検索し、回答を置き換えます。 |
| domicile | string | いいえ | 記録に記載された居住地または農場。 |
| last_name | string | いいえ | 姓。* はワイルドカードです(例:'Rønning*')。 |
| list_type | string | いいえ | コードまたはラベルで名簿を 1 つ指定します:dp 洗礼、kf 堅信礼、vi 結婚、gr 埋葬、uf 転出、if 転入、fl 転入/転出。 |
| first_name | string | いいえ | 名。 |
| birth_place | string | いいえ | 記録に記載された出生地。 |
| municipality | string | いいえ | 歴史上の自治体:名称または 4 桁の番号(municipalities を参照)。 |
| birth_year_to | any | いいえ | 最も新しい出生年。 |
| event_year_to | any | いいえ | イベント年の上限。 |
| name_variants | boolean | いいえ | Digitalarkivet の名前の異形も検索対象にします。 |
| birth_year_from | any | いいえ | 最も古い出生年。 |
| event_year_from | any | いいえ | イベント年の下限。 |
詳細
norway-archives-mcp
ノルウェーの家族史のためのMCPサーバーです。国立公文書館の教会記録簿、国勢調査、移民名簿とそのスキャン画像、国立図書館の書籍や新聞、そして現在の公式地名を扱います。
- **Digitalarkivet**は、ノルウェー国立公文書館(Nasjonalarkivet)が運営しており、教区記録簿(ministerialbøkerとklokkerbøker)、1801~1920年の国勢調査、移民記録、遺産目録などを保管しています。一部は文字起こしされて検索できますが、さらに多くの資料はスキャン画像で、ページごとにしか読めません。このサーバーはその両方に対応しています。文字起こしを検索し、スキャンされた記録簿の各名簿(洗礼、堅信、婚姻、埋葬、転入・転出)を画像番号に対応付け、恒久的なID付きでページをダウンロードします。
- Nasjonalbiblioteket(国立図書館)は、系図研究者に親しまれている農場ごとの郷土史であるbygdebøkerを含め、ノルウェーのほぼすべての書籍や新聞をデジタル化しています。多くの資料はノルウェー国内の住所からしか閲覧できませんが、検索すれば名前が載っているページはわかります。
- **Kartverket**の地名登録簿では、農場や集落の現在の表記、種類、座標を確認できます。
このサーバーは、慎重な系図研究者と同じように機能します。**証拠となるのはスキャンされたページです。**文字起こしは手がかりです(教会記録簿の文字起こしの大半は、Ancestry、MyHeritage、FamilySearchの委託業者によって入力されました)。検索結果が見つからなくても、文字起こし済みの資料だけを検索したにすぎません。すべてのページには出典、アーカイブ参照情報、画像番号、恒久的なリンクが付いているため、引用先はこのサーバーではなくアーカイブになります。
ここで書き込みが行われるのはお使いのディスクだけで、家系図が保存されることもありません。
ツール
サーバーは13個のツールを公開しています。2つのダウンロードツール以外はすべて読み取り専用です。ダウンロードツールはそれぞれ新しいファイルを1つ作成し、既存のファイルを上書きすることはありません。
| ツール | 機能 |
|---|---|
da_search_persons | 名前、歴史的な自治体、リストの種類、年代を指定して、Digitalarkivetの転記済み記録を検索します。 |
da_get_record | 1件の記録を読み取ります。項目、記録に名前が記載されている全員、出典、スキャン画像の恒久IDを確認できます。 |
da_search_sources | 場所、年代、リストを指定して出典を検索し、スキャン済みのリストと検索可能なリストを確認します。 |
da_get_source | 1つの出典について説明し、スキャン画像を対応付けます。アーカイブ参照情報、画像数、各リストの開始画像を確認できます。 |
da_list_pages | 出典のページを順番に一覧表示します。必要に応じてリストの開始位置を指定でき、恒久IDとリンクも確認できます。 |
da_download_page | ページIDがあるスキャン済みページ(教会簿、国勢調査など)を引用情報付きでダウンロードします。 |
nb_search | 国立図書館の書籍、新聞、雑誌、地図などを検索します。 |
nb_search_inside | 1つの資料内で単語が記載されているページを、抜粋と印刷ページ番号付きで検索します。 |
nb_get_page | 1つの資料のページを読み取ります。資料が公開されている場合はOCRテキストと引用情報を確認できます。 |
nb_download_page | 現在地で公開されている資料のページ画像を1枚ダウンロードします。 |
place_names | Kartverketの公式地名台帳(農場、集落、湖、山など)を検索します。 |
municipalities | Digitalarkivetの歴史的な自治体とその番号、リストの種類を表すコードを確認します。ネットワーク接続は不要です。 |
cache_status | このセッションのリクエスト、Digitalarkivetの1日あたりの利用枠、キャッシュの使用状況を確認します。ネットワーク接続は不要です。 |
転記されていないリスト(たとえば堅信礼名簿)を調べる一般的な流れは、次のとおりです。
da_search_sources(municipality="Røros", list_type="kf")で堅信礼名簿が含まれる教会簿を検索します。堅信礼名簿はスキャン済みですが、検索はできないことも確認できます。da_get_source(source_id=6540)で、堅信礼名簿が始まる画像を確認します。da_list_pages(source_id=6540, section="kf")で、それらのページを恒久ID付きで一覧表示します。da_download_page(page_id="kb2007…", destination=…)で、各ページを保存して読み取ります。引用情報は次のようになります。*1860~1878年のRøros教区教会簿(1640P)、AV/SAT-A-1456/681/L0932、464枚中171枚目(kb20070419660172)。Nasjonalarkivet(ノルウェー国立公文書館)、Digitalarkivet。 https://goto.digitalarkivet.no/kb20070419660172*。
セットアップ
Python 3.11以降とuvが必要です。キーの申請は不要です。
クローンせずに実行する場合。 uvxがPyPIから取得して、1ステップで実行します。
uvx norway-archives-mcp
クローンから実行する場合は、コードを変更する予定がある場合に適しています。
git clone https://github.com/ianderso/norway-archives-mcp
cd norway-archives-mcp
uv sync
uv run norway-archives-mcp # stdio server, usually launched by the client
どちらの場合も、サーバーはstdio経由でMCPを使用します。そのため、通常は手動で実行するのではなく、MCPクライアントから起動します。
Claude Desktop
{
"mcpServers": {
"norway-archives": {
"command": "uvx",
"args": ["norway-archives-mcp"]
}
}
}
デスクトップアプリがシェルのPATHを常に引き継ぐとは限りません。uvxが見つからずサーバーの起動に失敗する場合は、which uvxで表示されるフルパスをcommandに指定してください。
Claude Code
claude mcp add norway-archives -- uvx norway-archives-mcp
設定
必須項目はありません。サーバーの起動ディレクトリにある .env ファイルで、環境変数で設定されていない値を補えます。読み込まれるのはそのディレクトリだけです。
| 変数 | 意味 |
|---|---|
NORWAY_ARCHIVES_CACHE_DIR | キャッシュディレクトリ。1日のリクエスト数もここに保存されます。デフォルトは ~/.cache/norway-archives-mcp です。 |
NORWAY_ARCHIVES_TIMEOUT | 1回のリクエストに対するHTTPタイムアウト(秒)。デフォルトは30です。画像のダウンロードでは、読み込みに120秒を設定します。 |
NORWAY_ARCHIVES_DA_INTERVAL | Digitalarkivetへのリクエスト間隔の最小秒数。デフォルトは5秒で、5秒未満にはできません。 |
NORWAY_ARCHIVES_DA_DAILY_BUDGET | UTCの1日あたりに許可されるDigitalarkivetへのライブリクエストの最大数。デフォルトは600です。キャッシュ済みの結果はカウントされません。 |
NORWAY_ARCHIVES_CONTACT | User-Agentに追加するメールアドレスまたはURLです。利用によって問題が生じた場合に、アーカイブから連絡できるようにします。省略可能ですが、設定することをお勧めします。 |
NORWAY_ARCHIVES_DOWNLOAD_DIR | 既存のフォルダーを指定します。設定すると、ダウンロードはそのフォルダー内にのみ保存されます。~/Library 以下にあるiCloud Driveのフォルダーに保存する場合は、そのフォルダーを指定してください。 |
使用できない値は、最初のツール呼び出し時に、変数名を示す not_configured 結果として報告されます。
適切に利用するために、利用条件を確認しましょう
Digitalarkivet はAPIも利用規約ページも公開していません。フッターのリンク先は、プライバシーとアクセシビリティに関する声明のみです。再利用についてのページでは、制限のないスキャン画像について「kan disse fritt brukes videre både i trykksaker og på internett」と記載されています。これは、所蔵アーカイブを明記すれば、印刷物とオンラインの両方で自由に再利用できるという意味です
(digitalarkivet.no/content/1570)。
robots.txt では、すべてのクローラーにリクエスト間隔を5秒空けるよう求め、AI エージェントを含む名前付きボットのリストを拒否しています。このサーバーはクローラーではありません。利用者が求めたページを1件ずつ取得し、設定で延長することはできますが、間隔は最低でも5秒空けます。また、1日の上限を設け、サーバー名を明記したUser-Agentを使用します。検索結果、記録、資料のページは解析済みの結果として、それぞれ1日、30日、30日間キャッシュされます。マニフェストは30日間、パーマリンクの検索結果は1年間キャッシュされます。
ノルウェー国立図書館のAPI はドキュメントが公開されており、キーは不要です (api.nb.no)。各資料へのアクセスには図書館独自の規則が適用されます。ノルウェー向けと表示された資料はノルウェー国内のアドレスからのみ閲覧できます(国外の研究者はBokhyllaコレクションへのアクセスを申請できます)。このサーバーは、その制限を回避せずに報告します。リクエストは1秒あたり1回です。
Kartverketの地名API は、公式の説明によると「ikke nødvendig med innlogging/autorisasjon」(ログイン/認証は不要)です (api.kartverket.no/stedsnavn)。 リクエストは最大で1秒あたり2回です。
429、5xx、または接続切断が発生した場合は、Retry-After に従って1回だけ再試行します。ボットチェックは blocked として報告し、それ以上は試みません。
返される情報の読み方
- 書き起こしは記録そのものではありません。 氏名、日付、関係を引用する前に、スキャン画像のページ(
da_download_page)を確認してください。 - 検索結果が0件でも、対象は限定されています。
da_search_personsが検索するのは、書き起こし済みのリストだけです。da_search_sourcesでは、スキャン画像はあるものの検索できないリストを確認できます。堅信礼と移住者のリストは、検索できないことがよくあります。ページを順に確認してください。 - 自治体の区分は変わっています。
da_ツールはDigitalarkivetが使用する歴史上の自治体で絞り込みます(municipalitiesを参照)。place_namesが返すのは、2020年以前の合併後における現在の地名です。 - セクションの境界はおおよそのものです。
da_get_sourceはリストの開始ページの画像を返します。通常は次のリストが始まるまで続きますが、帳簿が必ずしも順番どおりに保管されていたとは限りません。 - ノルウェー国内限定の書籍でも検索結果は返されます。 ページをここで表示できない場合でも、
nb_search_insideは該当箇所の印刷上のページ番号を返します。 - 国勢調査のページ(
ftで始まるID)は、古いビューアーから取得され、フル解像度でのみ表示されます。
あえて対応していないこと
- 何かを書き込むこと、またはログインすること。 どのツールも、サービスに訂正、報告、メッセージを送信しません。
- ノルウェー歴史人口登録簿(HBR)。検索はフォームで行い、API はパートナー向けです。
- Norway Heritage。利用規約により、許可なく複製または再配布することは禁止されています。
- アクセス規則の回避。 ノルウェー国内限定の資料、閲覧制限のある最近の記録、ボットチェックには対応しません。
セキュリティ
ツールの引数はモデルが記述し、モデルはこのサーバーが制御できないテキスト(記録の転記、目録項目、OCR)を読み取ります。サーバーは、そのテキストがモデルを誘導し得ることを前提とし、誘導されたモデルが実行できることを制限しています。
- 接続先ホスト。 リクエストは、3 つのサービスの固定ホストに対して https 経由でのみ送信されます。応答から取得したアドレスを含め、それ以外のホストへの接続は拒否されます。リダイレクトは、同一サービス内でのみ追跡されます。
- データ量。 ページまたは JSON の応答が 8 MB を超える場合、または画像が 60 MB を超える場合は、ストリーミング中に拒否されます。
- ファイル。 ダウンロードでは新しいファイルを 1 つ作成し、既存のファイルを上書きすることはありません。内容の先頭バイトに基づいて JPEG と判定され、ファイル名は
.jpgまたは.jpegで終わる必要があります。隠しファイルやフォルダー、~/Library内への保存は禁止されています。また、NORWAY_ARCHIVES_DOWNLOAD_DIRが設定されている場合は、そのディレクトリの外への保存も禁止されます。これらはすべて、リンクを解決した後に判定されます。ダウンロードが拒否された場合、ディスクには何も残りません。 - 引数は検証されます。 ページ ID、アイテム ID、記録のアドレスは、リクエストに渡される前に検証されます。
- サイトのテキストは信頼できません。 サーバーの指示では、モデルに対し、記録や目録のテキストを検討対象の資料として扱い、指示として扱わないよう伝えています。
脆弱性の報告については、SECURITY.md をご覧ください。
開発
uv sync --extra dev
uv run pytest # mocked with respx; never touches a site
uv run ruff check .
uv run ruff format --check .
uv run python -m tests.live_check # paced calls to the live services
テストスイートの構成については CONTRIBUTING.md、各サービスについて確認された内容とその時期については docs/API-NOTES.md、このようなサーバー設計にした理由については docs/DESIGN.md をご覧ください。
クレジット
記録、スキャン画像、目録は、Nasjonalarkivet、Nasjonalbiblioteket、Kartverket に帰属します。教会簿の転記の大半は、国立公文書館との契約に基づき、AMF(Ancestry、MyHeritage、FamilySearch)が作成しました。
ライセンス
MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。