Islam West Africa Collection (IWAC) について
IWAC MCP Serverは、Claude DesktopなどのMCPクライアントを使う研究者に、Islam West Africa Collectionへの読み取り専用アクセスを提供します。キーワード検索やローカルのセマンティック検索、全文取得、コレクション単位の統計に対応しています。
主な機能
- 017つのコレクション区分を検索
- 02EmbeddingGemma 2によるローカル検索
- 03レコードと全文の抜粋を取得
- 04統計とコレクション集計を確認
- 05公開データまたは認可済み全文にアクセス
活用シーン
- 01テーマから記事やアーカイブ記録を検索
- 02長文から関連箇所を取得
- 03出版物・国・時期の分布を比較
- 04ガイド付きワークフローでフランス語資料を調査
MCP 対応
MCPクライアントに39個の読み取り専用ツールと同梱の研究スキルを提供します。Claude Desktop拡張として利用でき、ホスト型エンドポイントもあります。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://islam.zmo.de/mcp/claude mcp add --transport http fmadore-iwac https://islam.zmo.de/mcp/{"mcpServers":{"fmadore-iwac":{"type":"http","url":"https://islam.zmo.de/mcp/"}}}Cursor で開く{"servers":{"fmadore-iwac":{"type":"http","url":"https://islam.zmo.de/mcp/"}}}VS Code で開く{"mcpServers":{"fmadore-iwac":{"type":"http","url":"https://islam.zmo.de/mcp/"}}}{"mcpServers":{"fmadore-iwac":{"serverUrl":"https://islam.zmo.de/mcp/"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
35| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 全カテゴリの最大結果数。デフォルトは 20、最大は 50 です。 |
| query | string | はい | 概念、名前、または短い語句。一次資料にはフランス語の概念語を、参考資料にはフランス語/英語の語句を使用してください |
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
IWAC MCP サーバー
イスラム教西アフリカ・コレクション(IWAC)向けの読み取り専用Model Context Protocolサーバーです。
Claude Desktop用のワンクリックデスクトップ拡張機能
(.mcpb)として提供され、IWAC Hugging Faceデータセットを利用します。
ChatGPTやその他のMCPクライアント向けに、https://islam.zmo.de/mcp/のホステッドエンドポイントも利用できます。接続方法の詳細(Claude DesktopおよびChatGPT)については、docs/connecting.mdをご覧ください。
インストール
各リリースには、お使いのオペレーティングシステム用のサーバーバンドルと、リサーチスキルの.zipが含まれています。
.mcpbはClaudeにデータとツールを提供し、.zipはClaudeにツールの使い方を教えるリサーチスキルを追加します。まずサーバーをインストールし、続けてスキルもインストールすることを強くおすすめします。ツールを最大限に活用でき、無駄なクエリを減らしながら、Claudeがより効率的に検索して情報を統合できるようになります。
1. MCP サーバー — お使いのOS用のバンドルを選択
| お使いのOS | ダウンロード |
|---|---|
| Windows(Intel/AMDまたはSnapdragon) | iwac-mcp-server-windows.mcpb |
| macOS(Apple SiliconまたはIntel) | iwac-mcp-server-macos.mcpb |
- 上記のリンクから、お使いのOS用の最新バンドルをダウンロードします。
- ファイルをダブルクリックします。Claude Desktopにインストールダイアログが表示されたら、Installをクリックします。
- 初回使用時に、サーバーはHugging Faceから約265 MBのparquetデータを
~/.iwac-mcp/cache/にダウンロードします(拡張機能の設定で保存先を変更できます)。
バンドルには、お使いのOS用のサーバーとDuckDBバイナリ(x64およびarm64)が含まれています。 Claude DesktopがNode.jsランタイムを提供する ため、Node.jsやPythonを別途インストールする必要はありません。WindowsとmacOS向けのデスクトップバンドルを公開しています。
拡張機能の設定と更新
Claude Desktop の Settings → Extensions → Islam West Africa Collection (IWAC) を開き、次のオプションを設定します。
| 機能 | 認証情報 | 設定 |
|---|---|---|
| 公開キーワード検索、フィルター、統計、アイテムの詳細 | なし | デフォルトです。 |
| セマンティック検索 | なし | デフォルトで有効です(Semantic search)。最初のセマンティック検索時にクエリモデルが一度ダウンロードされます(約350 MB)。ダウンロードを避けるには、この設定をオフにしてください。 |
| 非公開の全文検索 | 非公開データセットの読み取り権限がある Hugging Face トークン | Use private full dataset を有効にし、Hugging Face token (private dataset only) を入力します。 |
セマンティック検索では、コーパスのベクトル生成に使用されたモデルである EmbeddingGemma 2を ご利用のマシン上で実行します。API キーは不要で、クエリがコンピューターの外に送信されることはありません。Windows(x64 または ARM64。ほとんどの PC にすでにインストールされている Microsoft Visual C++ 2015-2022 Redistributable が必要です)または Apple シリコン搭載の Mac が必要です。Intel Mac ではセマンティックツールを実行できないと表示されますが、それ以外の機能はすべて動作します。共有ホスト型エンドポイントでは公開データを提供します。
**更新:**ご利用の OS 用の最新バンドルをダウンロードして開き、拡張機能を更新してください。Hugging Face のフィールドが表示されない場合、インストール済みの拡張機能は v3.6.0 より前のバージョンである可能性があります。更新後、設定を確認し、変更があれば保存してから Claude Desktop を再起動してください。
非公開の全文検索へのアクセス(任意)
公開データがデフォルトで使用され、トークンは不要です。デスクトップ拡張機能で Use private full dataset を有効にし、Hugging Face token (private dataset only) を入力して、設定を保存し、再起動してください。fmadore/islam-west-africa-collection-fullへの読み取りアクセス権がある、きめ細かい権限設定のトークンを使用してください。トークンの入力欄は機密情報として扱われます。トークンをチャットに貼り付けたり、コミットしたりしないでください。
ほかのローカルランチャーでは、IWAC_PRIVATE_DATASET=trueを設定し、IWAC_HF_TOKEN(またはHF_TOKEN)を指定できます。トークンを設定しただけでは非公開モードは有効になりません。公開データのダウンロード時にトークンが送信されることもありません。新しい依存関係やアカウントシステムは不要です。
非公開ファイルは、IWAC_CACHE_DIR(デフォルト:~/.iwac-mcp/cache)内の専用サブディレクトリprivate-full/に保存されます。モードを変更した後は再起動してください。トークンがない場合や、非公開データへの HTTP 401/403/404 エラーが発生した場合は、キャッシュにフォールバックせず処理に失敗します。ネットワークが停止した場合は、そのモードのキャッシュを使用できます。IWAC_OFFLINE=trueを明示的に設定すると、認証なしでダウンロード済みのファイルを使用します。トークンを削除しても、非公開ファイルは消去されません。
共有ホスト型エンドポイントは公開状態にしてください。この設定はインスタンス全体に適用されます。非公開インスタンスにクエリできるユーザーは、誰でも全文にアクセスできます。そのため、IWAC_ALLOW_PRIVATE_HTTP=trueも設定しない限り、HTTP モードは非公開モードでの起動を拒否します。また、どちらのトランスポートも起動時に提供するデータセットをログに記録します。
2. 調査スキル — iwac-mcp-skill.zip(強く推奨)
iwac-mcp スキルは、未加工のツールを構造化された調査ワークフローで包みます。5段階の手法、フランス語圏向けの検索戦略、信頼度評価を伴う出典の明示、バイアスや網羅性に関する注意点が含まれます。これにより、サーバーをはるかに効率よく利用できます。Claudeは最初の検索で適切なツールと検索語を選び(無駄なクエリを削減)、フランス語の情報源を適切に検索し、ツールの出力をそのまま返すのではなく、出典を明記した統合結果を返します。スキルがなくてもツールを実行できますが、インストールしておくと、各クエリからより多くの情報を得られます。
最新の iwac-mcp-skill.zipをダウンロードし、次の手順でインストールします。
-
Claude Desktop — Customize → Skills → + → Create skill → Upload a skill を開き、zipファイルを選択します。(または、zipを
~/.claude/skills/に展開して、Claude Desktopを再起動します。) -
Claude Code — スキルディレクトリにzipを展開します。Claude Codeは変更を即座に認識するため、再起動は不要です。
# macOS / Linux unzip iwac-mcp-skill.zip -d ~/.claude/skills/# Windows (PowerShell) Expand-Archive iwac-mcp-skill.zip -DestinationPath $HOME\.claude\skills\どちらの方法でも、スキルは
~/.claude/skills/iwac-mcp/に配置されます。リポジトリ内の正本は.agents/skills/iwac-mcp/です。同じスキルを.claude/に複製せず、プロジェクト内のコピーはここに置いてください。この方法でインストールする価値は十分にあります。インストール済みのスキルは、ツールが呼び出される前に、質問に応じて自動的に適用されます。
サーバーからもスキルを提供(skill://)
Dockerイメージを含むすべてのビルドには、MCPリソースとして調査スキルが埋め込まれています。Skills拡張は正式化済みです(SEP-2640)。この拡張をサポートするクライアントは、io.modelcontextprotocol/skills の skills/list および skills/get を通じて同じカタログを取得できます。この拡張をサポートしないクライアントは、通常の resources/read を使用できます。
| リソース | 内容 |
|---|---|
skill://iwac-mcp | バイトサイズとSHA-256ダイジェストを含むカタログ |
skill://iwac-mcp/SKILL.md | 調査ワークフロー |
skill://iwac-mcp/references/… | 必要に応じて読み込む参考ファイル |
オプションの resources/directory/read メソッドは公開されていません。skill://iwac-mcp というURI単体はカタログ文書であり、ディレクトリではありません。スキルの内容はビルド時点のスナップショットです。ソースを編集した場合は、再ビルドが必要です。スキルをローカルにインストールするクライアント向けに、リリースzipも引き続き提供されています。リモートクライアントは、リリース成果物をダウンロードせずに同じワークフローを読み取れます。
Claudeが利用できる機能
7つのIWACサブセットにわたる39個の読み取り専用ツールを利用できます。APIキーは不要です。4つの semantic_search_* ツールは無効にできます。これらのツールは、ローカルで実行されるEmbeddingGemma 2を使って順位付けします(mcpb/README.mdを参照)。キーワードとフィルターによる照合はすべて、アクセント記号と大文字・小文字を区別しません。統合された search/fetch のペア、統計ツール、集計ツール、list_periodicals、get_sentiment_distribution もMCP構造化コンテンツ(outputSchema と structuredContent)を返します。これはChatGPTコネクターの仕様で必須とされています。
| グループ | ツール |
|---|---|
| 複数サブセット | search, fetch, explore_corpus |
| 記事 | search_articles, get_article, semantic_search_articles |
| センチメント | search_by_sentiment, get_sentiment_distribution |
| インデックス | search_index, get_index_entry, list_subjects, list_locations, list_persons |
| 統計 | get_collection_stats, get_newspaper_stats, get_country_comparison, get_temporal_distribution |
| 集計 | get_topic_distribution, get_field_distribution, get_cooccurrence, get_lexical_metrics, get_place_distribution, get_semantic_map, get_similar_items |
| 出版物 | search_publications, list_periodicals, get_publication_fulltext, semantic_search_publications |
| 参考資料 | search_references, get_reference, semantic_search_references |
| 画像 | search_images, get_image, semantic_search_images |
| その他 | search_documents, get_document, search_audiovisual, list_audiovisual, get_audiovisual |
集計ツールは、個々の項目を返すのではなく、項目全体についての質問に答えます。事前計算済みの30個のLDAトピックにどのように分布しているか、どの主題、場所、署名者が中心なのか、どの話題が何と一緒に論じられているのか、文章がどのような読み味なのか、地図上のどこを示しているのか、埋め込み空間上でどのように配置されているのか、そして指定した項目に最も近い項目は何か、といった質問です。統計ツール群、これらの集計ツール、list_periodicals、get_sentiment_distribution、explore_corpusを合わせた14個のツールはMCP Appビューを宣言しているため、ClaudeではJSONではなくインタラクティブなチャートとして表示されます。
get_temporal_distributionはイスラム暦にも対応しています。granularity="lunar_month"を指定すると、全年度のデータを12の太陰月にまとめます。これはグレゴリオ暦の軸では構造上作成できない唯一の区分です。ヒジュラ暦の年は毎年約11日ずつずれるため、各祭事がグレゴリオ暦の12か月すべてに分散するからです。完全な日付が記録された16,579件の記事を見ると、アーカイブの周期は明白です。均等配分と比べ、ラマダンは+73%、ドゥー・アル=ヒッジャ(ハッジとタバスキ)は+68%、シャウワール(コリテ)は+42%である一方、ラビーウ・アル=アウワル(マウルード)は横ばいです。ピークの背景にある項目を確認するには、search_articlesとsearch_publicationsでhijri_month(1〜12、またはいずれかの音訳による名称)とhijri_yearを指定します。太陰暦の日付は、islam.zmo.deの「本日の出来事」ブロックと同じ変換ツールであるウム・アル=クラー暦表を使ってデータセットのパイプラインで事前計算されるため、両者が食い違うことはありません。年または月までしか日付が特定できない項目には太陰暦の日付がなく、グラフには表示されず、imprecise_date_countに報告されます。
全文を取得する4つのツール(get_article、get_document、get_publication_fulltext、get_audiovisual)では、任意でkeywordを指定すると、一致箇所の前後約2,000文字を抜粋して返します。これによりClaudeは、長い記事、アーカイブ文書、定期刊行物の号、書き起こしの全文ではなく、関連箇所だけを読み取れます。全文が必要な場合は、25,000文字ずつ返します。各パートには次のパートの開始位置(next_offset)が示され、その値をoffsetとして渡すと、最後まで続きを読み取れます。
すべての結果オブジェクトには、正規のIWACレコードを指すurlフィールドが含まれます。例:https://islam.zmo.de/s/afrique_ouest/item/28576。
コレクションについて
IWAC は、西アフリカのイスラム教とムスリムに焦点を当てたデジタルアーカイブです。
- 16,700 件以上の新聞記事を収録しています。ベナン、ブルキナファソ、コートジボワール、ニジェール、トーゴの新聞記事で、1961 年から現在までを対象としています(大半はフランス語)。各記事には AI による要約が付いています。公開データセットには、テキストが islam.zmo.de で公開されている約 45%の記事の OCR 全文が含まれます。
get_collection_statsで現在の割合を確認できます。 - AI による感情分析(極性/中心性/主観性)を、エンリッチメント処理が完了した 12,298 件の記事に対して実施しています。5 つのモデルがそれぞれ独立してスコアを付けています。
gpt-5-6-luna(インライン列で報告されるモデル)、mistral-small-2603、deepseek-v4-flash-0731、gemma-4-31b-it、qwen3-8-27bです。新着記事のうち約 4,400 件はまだスコア付けされていません。5 つすべてのモデルが極性について一致する記事は約 32%にすぎないため、数値を引用する場合はget_sentiment_distribution(model="all")を使うのが適切です。各モデルが対象とする記事も同じではなく(qwen3-8-27bは 12,098 件をスコア付けし、他のモデルは 12,298 件をスコア付けしています)、各モデルは独自のcoverageを報告します。model="consensus"はパネルで事前計算された多数決結果を返します(6 つ目のモデルではありません)。また、search_by_sentiment(disputed=…)では、モデル間で判定が分かれた記事を検索できます。 - 5,000 件以上の典拠レコード(人物、組織、場所、出来事、主題)
- 1,500 件以上のイスラム関連出版物(定期刊行物の号、書籍)を収録しており、その大半には OCR 全文があります。
- 860 件以上の学術文献を収録しており、その半数には要約が付いています。
- 1,800 件以上の視聴覚資料を収録しています。ブルキナファソ、トーゴ、ベナンのフランス語圏ウェブ動画(公開チャンネルから収集したもので、現在も増加中。チャンネルで検索でき、視聴 URL からアクセス可能)と、ファイルが提供されているナイジェリアのハウサ語/アラビア語の寄贈録音 47 件が含まれます。
- 26 件のアーカイブ文書と30 枚のフィールドワーク写真
研究ワークベンチ
explore_corpus を使うと、選択内容を情報源、キーワードの文脈、収録状況のヒートマップ、比較、出版国/言及された場所のマトリックス、ページ分割に対応したマニフェスト、CSL-JSON、BibTeX のエクスポートに結び付けられます。iwac://datasets/{subset} リソースでは、現在の列、フィールドの利用可否、データセットの来歴を確認できます。
時系列チャートでは、分母を明示した正規化済み割合を利用できます。感情の比較では、同じ選択フィルターと任意の 2 つのモデルを指定でき、明示的に報告された対象集団について Cohen のカッパ係数と二次重み付きカッパ係数を算出します。チャートでの選択内容、情報源の閲覧、戻る操作、来歴のエクスポートは、アプリ全体で共有されます。使用例、解釈上の制限、キャッシュの動作、ローカル埋め込みの移行については、ワークベンチガイドをご覧ください。
対応する MCP Apps ホストでは、全画面表示でビューを拡大できます。また、現在の選択内容の簡潔な要約がアシスタントと自動的に共有されます。この選択内容について質問するを使うと、その選択内容のスナップショットを添えて明示的な質問を送信します。自動更新によって会話のターンが開始されることはありません。要約には、上限付きのフィルター、件数、情報源 ID、来歴が含まれ、省略された項目はその旨が示されます。情報源の全文を取得するには、引き続き取得操作が必要です。操作項目は、ホストが通知する機能によって異なります。操作仕様をご覧ください。
アーキテクチャ
- データ:IWAC Hugging Face データセットの Parquet ファイルは、サブセット(記事、出版物、文書、視聴覚資料、画像、インデックス、参考文献)ごとに必要に応じてローカルキャッシュへダウンロードされ、DuckDB のビューを通じてクエリされます。長時間稼働するサーバーは各サブセットを毎日再確認し(
IWAC_REFRESH_HOURS)、再起動せずに新しいリビジョンへ切り替えます。各リクエストでは使用するファイルが固定されます。ほかの読み取り処理や再現性を保つため、古い世代も保持されます。すべての SQL はパラメーター化されており、照合ではアクセントと大文字・小文字が区別されません。 - トランスポート:stdio(デフォルト。Claude Desktop の
.mcpbが使用します)と、ベアラートークンで保護されたステートレスな Streamable-HTTP モード(node server/index.js --http)があり、Docker イメージはホスト型のhttps://islam.zmo.de/mcp/エンドポイントで使用します。 - Docker:各リリースでは、HTTP エンドポイントをセルフホストするための
ghcr.io/fmadore/iwac-mcp-serverが公開されます。必要な環境変数とトークンの設定については、mcpb/README.mdを参照してください。
開発
この実装では、ビルドとサーバーの実行環境の両方に Node.js 24 以降が必要です。Node.js 20 はサポート終了となっています。古い組み込みランタイムを使うデスクトップホストは、次のバンドルをインストールする前にアップグレードする必要があります。マニフェストは互換性のないランタイムを拒否します。
バンドルは mcpb/ にあります。ビルド/パックのワークフローについては、mcpb/README.md を参照してください。
cd mcpb
npm ci
npm run install-bindings # fetch the 4 macOS/Windows DuckDB binaries
npm run typecheck # tsc --noEmit
npm run lint # biome (linter only)
npm run build # esbuild -> single server/index.js
npm test # unit, fixture, app, skills, HTTP and token-budget tests
npm run test:browser # Chromium app behavior (install browser first)
npm run test:live # full smoke test against the real HF dataset (~265 MB)
CI では、main へのプッシュごと、およびプルリクエストごとに、バージョン確認、型チェック、Lint、ビルド、ユニットテスト、オフラインのフィクスチャテストと HTTP ラウンドトリップテストを実行します。ライブスモークテストは毎週実行されます(固定された件数はデータセットの変更を検知するアラームです)。
リリースするには、v* タグをプッシュします。リリースワークフローでは、テストスイート全体を再実行し、バージョンが未公開であることを確認したうえで、macOS/Windows 向けデスクトップバンドルをパックして検証し、公開前に Docker イメージのスモークテストを実施します。公開ジョブでは、それらのテスト済みアーティファクトを使用します。既存のリリースとレジストリのバージョンは上書きできません。新しいリリースには新しいバージョンを使用してください。
ロードマップ
TODO.md を参照してください。近い目標は、Anthropic の拡張機能ディレクトリへの申請と、本番用コード署名証明書によるバンドルへの署名です。
引用方法
機械可読なメタデータは CITATION.cff にあります。GitHub のこのリポジトリを引用ボタン(サイドバー)を使うと、現在のバージョンを反映した APA 形式または BibTeX 形式で表示されます。本文中では、次のように引用してください。
Madore, F. (2026). IWAC MCP Server (Version 4.1.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.21805837
@software{madore_iwac_mcp_server,
author = {Madore, Frédérick},
title = {{IWAC MCP Server}},
year = {2026},
version = {4.1.0},
publisher = {Zenodo},
doi = {10.5281/zenodo.21805837},
url = {https://github.com/fmadore/iwac-mcp-server},
license = {MIT}
}
この DOI はコンセプト DOIです。常に最新リリースへ解決されるため、バージョンが更新されても正しく参照できます。実行したバージョンを正確に引用する必要がある場合は、Zenodo のレコードからバージョンごとの DOI を取得してください。
このソフトウェアが調査結果につながる助けになった場合は、コレクション自体も引用してください。アーカイブ作業の成果は、そちらにあります。
ライセンス
関連リンク
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。