mcpField
N
Norway Archives

Norway Archives

ローカル
github.com/ianderso法務・行政03 週間前に更新

Norway Archives について

ノルウェーの家族史を調べる研究者向けのMCPサーバーです。公文書の転記記録やスキャン、国立図書館の資料、公式地名を検索し、出典情報と恒久リンクを返します。証拠としてスキャン画像を重視します。

主な機能

  1. 01教会簿、国勢調査、移民記録の検索
  2. 02資料情報とスキャン頁一覧の確認
  3. 03出典情報付きスキャン頁のダウンロード
  4. 04国立図書館の書籍・新聞検索
  5. 05公式地名と座標の検索
  6. 06歴史的な自治体の検索

活用シーン

  1. 01転記記録からノルウェーの祖先を探す
  2. 02未転記の教会簿スキャンを調べる
  3. 03図書館資料から人名の掲載頁を探す
  4. 04農場や村の公式地名を確認する

MCP 対応

stdio経由でMCPサーバーを提供し、MCPクライアントから起動できます。公文書、図書館資料、地名を検索・取得するツールを公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ianderso-norway-archives": {
"command": "uvx",
"args": [
"norway-archives-mcp"
],
"env": {
"NORWAY_ARCHIVES_CACHE_DIR": "<NORWAY_ARCHIVES_CACHE_DIR>",
"NORWAY_ARCHIVES_TIMEOUT": "<NORWAY_ARCHIVES_TIMEOUT>",
"NORWAY_ARCHIVES_DA_INTERVAL": "<NORWAY_ARCHIVES_DA_INTERVAL>",
"NORWAY_ARCHIVES_DA_DAILY_BUDGET": "<NORWAY_ARCHIVES_DA_DAILY_BUDGET>",
"NORWAY_ARCHIVES_CONTACT": "<NORWAY_ARCHIVES_CONTACT>",
"NORWAY_ARCHIVES_DOWNLOAD_DIR": "<NORWAY_ARCHIVES_DOWNLOAD_DIR>"
}
}
}
}
起動コマンドuvx norway-archives-mcp
設定が必要な環境変数
NORWAY_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypinorway-archives-mcp0.1.0

ツール

13

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
pageintegerいいえ結果ページ。1 ページあたり 50 件。
refreshbooleanいいえTrue の場合、キャッシュされた回答を使わずに再検索し、回答を置き換えます。
domicilestringいいえ記録に記載された居住地または農場。
last_namestringいいえ姓。* はワイルドカードです(例:'Rønning*')。
list_typestringいいえコードまたはラベルで名簿を 1 つ指定します:dp 洗礼、kf 堅信礼、vi 結婚、gr 埋葬、uf 転出、if 転入、fl 転入/転出。
first_namestringいいえ名。
birth_placestringいいえ記録に記載された出生地。
municipalitystringいいえ歴史上の自治体:名称または 4 桁の番号(municipalities を参照)。
birth_year_toanyいいえ最も新しい出生年。
event_year_toanyいいえイベント年の上限。
name_variantsbooleanいいえDigitalarkivet の名前の異形も検索対象にします。
birth_year_fromanyいいえ最も古い出生年。
event_year_fromanyいいえイベント年の下限。

詳細

norway-archives-mcp

CI PyPI

ノルウェーの家族史のための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_record1件の記録を読み取ります。項目、記録に名前が記載されている全員、出典、スキャン画像の恒久IDを確認できます。
da_search_sources場所、年代、リストを指定して出典を検索し、スキャン済みのリストと検索可能なリストを確認します。
da_get_source1つの出典について説明し、スキャン画像を対応付けます。アーカイブ参照情報、画像数、各リストの開始画像を確認できます。
da_list_pages出典のページを順番に一覧表示します。必要に応じてリストの開始位置を指定でき、恒久IDとリンクも確認できます。
da_download_pageページIDがあるスキャン済みページ(教会簿、国勢調査など)を引用情報付きでダウンロードします。
nb_search国立図書館の書籍、新聞、雑誌、地図などを検索します。
nb_search_inside1つの資料内で単語が記載されているページを、抜粋と印刷ページ番号付きで検索します。
nb_get_page1つの資料のページを読み取ります。資料が公開されている場合はOCRテキストと引用情報を確認できます。
nb_download_page現在地で公開されている資料のページ画像を1枚ダウンロードします。
place_namesKartverketの公式地名台帳(農場、集落、湖、山など)を検索します。
municipalitiesDigitalarkivetの歴史的な自治体とその番号、リストの種類を表すコードを確認します。ネットワーク接続は不要です。
cache_statusこのセッションのリクエスト、Digitalarkivetの1日あたりの利用枠、キャッシュの使用状況を確認します。ネットワーク接続は不要です。

転記されていないリスト(たとえば堅信礼名簿)を調べる一般的な流れは、次のとおりです。

  1. da_search_sources(municipality="Røros", list_type="kf") で堅信礼名簿が含まれる教会簿を検索します。堅信礼名簿はスキャン済みですが、検索はできないことも確認できます。
  2. da_get_source(source_id=6540) で、堅信礼名簿が始まる画像を確認します。
  3. da_list_pages(source_id=6540, section="kf") で、それらのページを恒久ID付きで一覧表示します。
  4. 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_TIMEOUT1回のリクエストに対するHTTPタイムアウト(秒)。デフォルトは30です。画像のダウンロードでは、読み込みに120秒を設定します。
NORWAY_ARCHIVES_DA_INTERVALDigitalarkivetへのリクエスト間隔の最小秒数。デフォルトは5秒で、5秒未満にはできません。
NORWAY_ARCHIVES_DA_DAILY_BUDGETUTCの1日あたりに許可されるDigitalarkivetへのライブリクエストの最大数。デフォルトは600です。キャッシュ済みの結果はカウントされません。
NORWAY_ARCHIVES_CONTACTUser-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。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。