Skip to main content
Glama

hal-mcp

HAL(フランス国立オープンアーカイブ、Hyper Articles en Ligne)向けのMCP(Model Context Protocol)サーバーです。Claude や MCP 互換クライアントなどの AI アシスタントが HAL を検索し、出版物の検索、統計の計算、引用のエクスポート、研究者の成果の追跡を行うことができます。

API キーは不要です。単純な検索を超えて、ファセット(集計統計)、IdHAL による著者追跡、ネイティブな書誌エクスポートを提供します。

機能(6ツール)

ツール

説明

search_publications

人間にわかりやすいフィルターで検索:年範囲、文書タイプ、オープンアクセス、全文利用可能性、並べ替え。

get_publication

HAL識別子による単一文書の完全なレコード。

export_citations

BibTeX / EndNote / CSV / TEI にエクスポート(HALのネイティブ wt パラメータ経由)。

get_publication_stats

Solrファセットを使用した集計数(年、タイプ、キーワード、著者別)。

get_author_production

IdHALによる研究者の完全な成果物。オプションで最も頻繁な共著者も含む。

search_structures

研究室 / 研究組織を検索。

Related MCP server: Crossref Academic MCP Server

要件

  • Python 3.10 以上

  • mcp SDK、バージョン 1.x(下記の重要な注意を参照)

⚠️ 重要 — mcp SDK のバージョン このサーバーは FastMCP を使用していますが、これは mcp v2.0.0 で削除されました。 そのため、このプロジェクトは mcp>=1.2.0,<2.0.0 に固定されています。起動時に FastMCP のインポートエラーが発生した場合、v2 が誤ってインストールされています。次のコマンドで再インストールしてください: pip install "mcp<2.0.0"。

インストール

git clone https://github.com/Arpany-Tech/hal-mcp
cd hal-mcp
pip install -e .

動作確認

1. サーバーが起動することを確認

python -m hal_mcp.server

カーソルが動かず出力がない場合、これは正常です。サーバーは実行中で、標準入力で MCP メッセージを待機しています。停止するには Ctrl+C を押してください。(代わりにエラーが表示された場合は、上記の mcp SDK の注意を参照してください。)

2. MCP Inspector での対話テスト

完全なクライアントなしで MCP サーバーを探索するための公式ツール:

npx @modelcontextprotocol/inspector python -m hal_mcp.server

表示された URL を開き、Connect をクリックし、List Tools をクリックすると、6つのツールが表示されます。各ツールを手動で呼び出して応答を確認できます。

3. APIレイヤーを直接テストする(MCPなし)

python3 - << 'PY'
import asyncio
from hal_mcp import client

async def main():
    res = await client.search_publications(
        "artificial intelligence", year_from=2023,
        open_access_only=True, rows=3,
    )
    print("Total:", res["total"])
    for d in res["documents"]:
        print("-", d.get("label_s"))

asyncio.run(main())
PY

Claude Desktop に接続

claude_desktop_config.json(設定 → 開発者 → 設定を編集)で:

{
  "mcpServers": {
    "hal": {
      "command": "python",
      "args": ["-m", "hal_mcp.server"]
    }
  }
}

Claude Desktop を完全に再起動します。HAL ツールがメッセージボックスのツールインジケーターに表示されます。

ヒント:Claude Desktop が python を見つけられない場合は、command の "python" の代わりにインタープリタのフルパス(例:Windows では C:\\Python313\\python.exe)を使用してください。

質問例

  • 「2023年以降の連合学習に関するオープンアクセス記事を検索してください。」

  • 「IdHAL dominique-lesselier の研究者の成果を、共著者とともに教えてください。」

  • 「深層学習の出版物の年別内訳は?」

  • 「トランスフォーマーに関する最新の10件の出版物を BibTeX にエクスポートしてください。」

  • 「量子物理学を研究している研究室はどこですか?」

仕組み

HAL は Apache Solr 上に構築された検索 API を公開しており、認証なしで HTTP 経由でクエリできます。このサーバーは、人間にわかりやすいパラメータ(year_from、doc_type、open_access_only など)を Solr 構文(fq、facet、wt など)に変換するため、エージェントは Solr のパワー(フィルター、ファセット、エクスポート)を活用しながら、シンプルなインターフェースを得られます。

アーキテクチャ

src/hal_mcp/
├── server.py    # declares the 6 MCP tools (FastMCP)
├── client.py    # calls to HAL's Solr API (httpx)
└── fields.py    # constants: Solr fields, document types

client.py レイヤーには MCP 依存関係がありません。単独でテストできます。

開発

テストを実行:

pip install pytest pytest-asyncio
pytest                    # all tests
pytest -m "not network"   # unit tests only (offline, fast)
pytest -m network         # integration tests that call HAL

ロードマップ

  • get_structure_output — 特定の研究室の成果物。

  • ピボットファセット(タイプ × 全文、年 × タイプ)。

  • 時系列/進化チャート用のレンジファセット(facet.range)。

  • コレクション/ポータルフィルタリングをパラメータとして公開。

  • Claude.ai(コネクタ)および ChatGPT(開発者モード)向けの HTTP トランスポート。

ライセンス

MIT — LICENSE ファイルを参照してください。

免責事項

独立したプロジェクトであり、CCSD(HAL を運営)とは提携していません。メタデータは HAL の公開 API から取得しています。HAL の利用規約と各出版物のライセンスを尊重してください。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for academic paper search that integrates with AI assistants (e.g., Claude Code, Cursor), enabling them to search and retrieve academic paper metadata.
    62 PyPI
    247
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for the OpenAlex scholarly database, providing AI agents with tools to search and retrieve academic works, authors, and institutions via natural language queries.
    8
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    AI-powered research assistant MCP server for searching academic papers and answering research questions with DOI citations.
    3
    -