mcpField
N
Nplg Catalog

Nplg Catalog

リモート
pipeworx.io検索01 日前に更新
リポジトリ公式サイト

Nplg Catalog について

Nplg Catalogは、ジョージア国立議会図書館の総合目録とデジタルコレクションを検索する図書館員、研究者、読者向けのサービスです。MARCのフィールド構造を保持し、スキャン資料、学位論文、ポスターも検索できます。

主な機能

  1. 01総合目録レコードの検索
  2. 02資料種別による絞り込み
  3. 03解析済みMARCフィールドの取得
  4. 04デジタルライブラリーの検索
  5. 05安定したレコードリンクの取得

活用シーン

  1. 01ジョージア語の書誌資料を探す
  2. 02著者・件名・分類情報を調べる
  3. 03学位論文やポスターをデジタル資料から検索

MCP 対応

MCP サーバーとして、総合目録検索、MARCレコード取得、デジタルライブラリー検索のツールを提供します。Pipeworxゲートウェイ経由で接続でき、ローカルのstdio MCP サーバーとしても実行できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://gateway.pipeworx.io/nplg-catalog/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

@pipeworx/nplg-catalog

ジョージア国立議会図書館の総合目録とデジタルライブラリ — MARC をそのまま保持したジョージア語の書誌レコードに加え、小規模な全文デジタルコレクションを提供します。

Pipeworx の一部です — AI エージェントを1683以上の稼働中のデータソースに接続する MCP ゲートウェイです。

ツール

  • nplg_search(query, index?, scope?, offset?) — キーワード/タイトル/著者/主題で総合目録を検索します。真の総件数(ページ数ではありません)と、恒久的な Sierra bib_id、タイトル(レコードに並列のラテン文字タイトルがある場合は、ジョージア語のタイトルと分けて表示)、著者、出版事項、資料種別、安定した目録 URL を含む50件の簡易書誌情報を返します。scope 1-11で資料種別を絞り込めます — 書籍、定期刊行物、地図、学位論文、古文書、新聞記事、雑誌記事が対象です。
  • nplg_record_marc(bib_id) — 1件のレコードを解析済み MARC として返します。リーダー、制御フィールド、インディケーターとサブフィールドを個別に保持したすべてのデータフィールドに加え、要約(タイトル、著者、出版事項、言語、分類、主題、収載資料)を含みます。041の言語コードと、並列のジョージア語/英語の245は、1つの文字列ではなく構造として保持されます。
  • nplg_dlibrary_search(query, collection?, page?) — デジタルライブラリを検索します。スキャンされた印刷物アーカイブ、学位論文、ポスターを対象とし、各検索結果には著者、発行日、完全な出典情報、ジョージア語/ロシア語/英語の件名、デューイ主題、安定したアイテム URL が含まれます。

認証

キーは不要です。すべてのリクエストに認証情報なしで応答します。

Sierra REST API v6.1.0 は catalog.nplg.gov.ge/iii/sierra-api/v6/ で稼働していますが、図書館が発行するクライアントキー/シークレットがない場合は401を返します(OAuth2 クライアントクレデンシャルを /v6/token で交換します)。NPLG にキーの発行を依頼すれば、このパック内のすべての HTML パースがサポート対象の JSON API に置き換わり、それ以外の形式は何も変わりません。

データソース

次の担当者が苦労して再発見することを防ぐために

フレーズ索引はレコードを返しません。 /search*eng/t、/a、/d は、見出しのアルファベット順一覧を返すだけで、簡潔な引用はゼロ件です。ステータスコードは200ですが、検索結果が何もないように見えるタイトル検索です。レコードを取得するには、III 独自のフィールド修飾子をクエリ内に指定してキーワード索引を使います。例:t:(tbilisi)、 a:(abashidze)、d:(tbilisi)。ここでの index: はそのためのものです。

オフセットカーソルには結果の合計件数が URL に含まれており、誤った値を指定しても行が返ります。 51,2896,2896,B という組は first,last,total を表します。検索結果と異なる合計件数を指定しても、レコードとともにステータスコード200が返ります。ただし、ヘッダーにはどの結果にも該当しない合計件数が表示されます。つまり、ページに含まれる行は正しい一方、ページ対象の件数は誤っています。そのため、オフセットを指定したリクエストでは、オフセットを尋ねる前に最初のページから実際の合計件数を取得します。リクエストが1回余分に必要ですが、正確にページ分割する唯一の方法です。

カーソルのパスにある ~S<scope> は searchscope= と一致させる必要があります。 同じ数値を2か所に指定しますが、実際に一覧の範囲を決めるのはパス側です。

ジョージア語は数値文字参照として返されます。 マークアップの大部分は UTF-8 ではなく &#4315; のような形式で、MARC の句読点も &#59; / &#34; として返されます。&amp; などしか扱えない文字参照デコーダーを使うと、文字化けしていても問題なく解析できてしまう結果になります。

検索結果がない場合は、404 ではなく「NO ENTRIES FOUND」と「もしかして」ブロックを含むステータスコード200が返ります。 パックは注記とともに total: 0 を報告します。これ以外の理由でレコード数がゼロになる場合はエラーとして扱います。リストが何も表示されない状態では、レイアウトの変更と区別できないためです。

簡潔な引用は1行または2行で、1行だけの場合は著者がありません。 100 フィールドを持たないレコードでは出版事項だけが表示されます。そのため、最初の行を著者として読み取ると、「თბილისი, 2023.」が人物名として登録されてしまいます。

MARC の列位置は厳密に守る必要があります。 タグは0~2列、インジケーターは4~5列、データは7列目から始まり、折り返された行は7文字分字下げされます。タグの除去時にスペースへ置き換えると列位置がずれ、すべてのフィールドが1文字ずつ誤った位置になります。

/search*geo は MARC リーダーを ლიდერი、結果ヘッダーをジョージア語で表示します。 /search*eng は LEADER と Keywords (1-50 of 2896) と表示します。どちらでもレコードは同じなので、ラベルを一定にするためだけに、パックでは英語インターフェースを使用します。

行き止まり:同じ調査を繰り返さないために

  • dspace.nplg.gov.ge — DSpace インスタンスです。稼働していれば OAI-PMH と REST API を提供するはずです。2026-09-10 の朝、すべてのパスで Apache から503が返り、同日あらためて確認した際には、/、/rest/communities、 /server/api、/oai/request?verb=Identify、/jspui/ を含むすべてのパスでApache から404が返りました。依然としてウェブサーバーの背後にアプリケーションはありません。障害の形が変わっただけです。このパックのデジタルライブラリ部分が現状で限界だと考える前に、再確認する価値があります。
  • www.nplg.gov.ge/ec/ka/* — 旧電子カタログです。403 が返ります。
  • geoclassic.nplg.gov.ge — ジョージアのクラシック音楽を扱う WooCommerce ショップです。 wp-json は公開されていますが、カタログではなく店舗です。

クイックスタート

MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します:

{
  "mcpServers": {
    "nplg-catalog": {
      "url": "https://gateway.pipeworx.io/nplg-catalog/mcp"
    }
  }
}
このエンドポイントが実際に提供するもの

https://gateway.pipeworx.io/nplg-catalog/mcp の tools/list は、上の表にあるツールに加えて、共有 Pipeworx メタツール(ask_pipeworx、discover_tools、search_within、remember/recall など、ゲートウェイ全体で使えるツール群)も返します。そのため、表示されるツール数はこの表より多くなります。現在、単一パックのエンドポイントには、そのパック独自のツールとともに、およそ 30 個の共有ツールが一覧表示されます。接続の initialize レスポンスに正確な範囲が記載されており、その日の状況を確認する際の正式な情報源になります。

これは意図的なものであり、誤って多重化されているわけではありません。メタツールを使うと、このパックの対象外の質問にも、カタログ全体を横断して振り分ける ask_pipeworx 経由で回答できます。そのため、2 つ目の MCP サーバーを追加する必要はありません。現時点では、メタツールを含めずにパックのエンドポイントを接続する方法はありません。追加のスキーマによるコンテキスト消費が、振り分けのメリットを上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。

または、Pipeworx のフルゲートウェイに接続すると、このパックのツールだけでなく、すべてのパックのツールが直接一覧表示されます。

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

どちらの URL も同じゲートウェイと、同じ 1683+ のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも ask_pipeworx を使ってすべてのツールにアクセスできます。

MCP クライアントがない場合:HTTP 経由で呼び出す

curl -X POST https://gateway.pipeworx.io/v1/tools/nplg_search \
  -H 'Content-Type: application/json' \
  -d '{"query":"tbilisi"}'

最初の呼び出しにアカウントは不要です。任意のツールを調べるには、GET https://gateway.pipeworx.io/v1/tools/nplg_search を使用します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を使用します。

スタンドアロン(ゲートウェイアカウント不要)

このパッケージは、ローカルの stdio MCP サーバーとしても動作します。Pipeworx アカウントも、ゲートウェイへの往復通信も必要ありません。

{
  "mcpServers": {
    "nplg-catalog": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-nplg-catalog"]
    }
  }
}

または、直接実行して起動を確認できます。

npx -y @pipeworx/mcp-nplg-catalog

stdin/stdout 経由で MCP を使用し、このパックのツールのみを対象に initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx による振り分けはありません。

ask_pipeworx の使用

ツールを直接呼び出す代わりに、自然な言葉で質問できます。これは上記のパックエンドポイントとフルゲートウェイの両方で使えます。

ask_pipeworx({ question: "your question about Nplg Catalog data" })

ゲートウェイが適切なツールを選び、引数を自動的に入力します。

詳細

ライセンス

MIT

コメント

MCP は初めてですか?

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

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