Skip to main content
Glama

jstage-mcp

Claude Desktop で使用するための3つのツールとして J-STAGE WebAPI を公開する FastMCP stdio サーバーです。

これが何のためのものか

J-STAGE は日本の学術団体が発行するジャーナルの全文を収録しており、これはカタログ全体ではなく記事内部を検索します。目録作成者がキーワードとして選ばなかった用語でも、著者が論文中で使用していれば見つけることができます。つまり、名前が付けられる前に流通する概念への経路となるのです。

J-STAGE の DOI を直接レコードに解決するか、ジャーナルの巻号の背骨をたどって全体の流れを見ることができます。

ここで用語を実行し、cinii-mcp でも実行して、その差を読み取ってください。大きな乖離は、あなたの語彙が目録の記述に属するのか、それとも分野の散文に属するのかを示します。これは、文献の中での発見である前に、文献についての発見なのです。

Related MCP server: Japan Data MCP

ツール

ツール

目的

jstage_search_articles

J-STAGE 記事全体にわたる全文・著者・タイトル・ジャーナル検索

jstage_list_issues

既知のタイトル、ISSN、または cdjournal に対する巻号の背骨

jstage_get_article_by_doi

J-STAGE DOI を完全な記事レコードに解決する

すべてのツールは、mediation.py によって構築され、response-schema.json で定義された1つの型付き JSON レスポンスエンベロープを返します。スキーマバージョン 2.3.0。同じモジュールとスキーマはサーバーファミリー全体でバイト単位で同一にベンダリングされているため、あるサーバーのエンベロープは別のサーバー用に書かれたコンシューマーでも読むことができます。

エンベロープは、何が見つかったかだけでなく、検索がどのように行われたかを報告します。

  • searched_for — 検索操作では、実際に送信された用語、検出されたスクリプト、マッチングモードをエンベロープの先頭に引き上げ、中継クライアントがそれを落とせないようにします。フェッチ操作(jstage_get_article_by_doijstage_list_issues)では省略されます。識別子を渡され、用語を選択しなかったためです。

  • query — 提供された input_terms、送信された normalized、検出された script。このペアは、呼び出し元の言語とコーパスの間で実行されたレンダリングの記録です。

  • matching_mode — このサーバーでは full_text_broadresult.total の読み方を示します。

  • result.breadthnonenarrow(1〜50)、broad(51〜1000)、very_broad(>1000)。しきい値は意図的に低く設定されています。文献のように見える数百のヒットは、そのまま通過させるのではなく、マークされます。

  • items[].matched_in — レコードごとに、マッチが行われたフィールド。

  • receipt — ISO 8601 タイムスタンプ、正規化されたクエリとそのパラメータに対する SHA-256、および返された識別子。ハッシュは既に保持している用語を検証しますが、逆に用語を生成することはできないため、預託の単位はレシートではなくエンベロープです。

  • attribution — すべてのレスポンスに必要なクレジット行。

診断コード

型付きで閉じています。診断はクライアントが解析する必要のある散文ではありません。

コード

レベル

意味

OK

info

レコードが返されました。フラグはありません。

BROAD_FULLTEXT

warning

マッチは全文で行われ、複数語の用語は緩くマッチするため、高い result.total はしばしばノイズを含みます。

SCRIPT_LATIN_QUERY

warning

クエリはラテン文字だったため、ローマ字化および英語のメタデータのみにマッチしました。漢字またはかなで再発行してください。

LITERAL_COMPOUND_EMPTY

warning

このレンダリングではレコードがありません。エミックまたは構成要素の用語、あるいは別の日本語レンダリングを試してください。

API_ERROR

error

API が応答し、エラーで応答しました。

TRANSPORT_ERROR

error

リクエストが完了しませんでした。失敗した検索は結果が不明であり、欠如として記録してはならないため、API_ERROR とは区別されています。

RECEIPT_NOT_DEPOSITED

info

レシートの宛先が設定されていないため、レスポンスはクエリ台帳に書き込まれませんでした。検索には影響ありません。レシートは残りません。

RECEIPT_WRITE_FAILED

warning

レシートの宛先が設定され、書き込みが試みられましたが、着地しませんでした。一方は選択であり、他方は障害であるため、上記の行とは区別されます。

クエリレシート

すべてのエンベロープは、ledger.py によって追記専用のハッシュチェーン JSONL ログに預託できます。MCP_RECEIPT_DIR(またはレガシーの MCP_RECEIPT_LOG)が設定されていない限りオフであり、ロギングの失敗は例外として送出されるのではなく飲み込まれます。検索はその記録よりも重要です。シークレットは行が構成される前に編集されます。

スキーマ 2.3.0 以降、エンベロープはそのように示します。レスポンスが預託されない場合、emit() は変数が未設定なら RECEIPT_NOT_DEPOSITED を、設定されていて書き込みが着地しなかった場合は RECEIPT_WRITE_FAILED を追加します。そのギャップは、設定ファイルだけでなく、レコードとなる成果物にも見えるようになります。mediation.deposit_enabled() は同じ事実をオンデマンドで報告します。

MCP_RECEIPT_DIR=C:\path\to\receipts        # a folder, not a file
MCP_RECEIPT_SESSION=project-or-article-slug
MCP_RECEIPT_STRICT=1                         # optional: make logging failure raise
MCP_RECEIPT_LOG=C:\path\to\receipts.jsonl  # legacy single file; ignored when _DIR is set

フォルダと、サーバーごとに1つのファイル。 MCP_RECEIPT_DIR はディレクトリを指し、各サーバーはその中に独自の <server>.jsonl を書き込みます。それは整理整頓ではありません。追記は最後のハッシュを読んでから書き込むというもので、その周りのロックはスレッドロックであり、1つのプロセス内でのみ有効で、複数のプロセス間では有効ではありません。6つのサーバーは6つのプロセスであり、同時に応答する2つは同じ先行者を読み、両方がそれを主張します。理論ではなく測定された事実です。6つのプロセスが1つのファイルに150行を書き込むと、14のフォークが発生しました。MCP_RECEIPT_LOG は依然として機能し、単一サーバーでは正しいですが、ファミリーには間違った形です。

install.ps1 は6つすべてに対してこれを設定し、フォルダに README を書き込みます。

1つのチェーン、またはフォルダ全体を検証します:

jstage-mcp-ledger verify      receipts/jstage.jsonl
jstage-mcp-ledger verify-dir  receipts
jstage-mcp-ledger manifest    receipts        # writes receipts/manifest.json

verify は失敗時に非ゼロで終了し、見つかった種類を報告します: フォーク(同時書き込み — 設定の欠陥であり、すべての行はまだ存在します)、欠落行、並べ替え、または改ざん(自身の内容にハッシュされない行)。最後のものだけが誠実さに関する主張であり、それらを同様に報告すると、読者が一方を他方と誤解する恐れがあります。マニフェストは引用すべきオブジェクトです: 預託全体の1つの説明 — ファイルごとの行数、最初と最後のタイムスタンプ、終端ハッシュ、およびサーバー、スクリプト、セッションごとの合計。

インストール

パッケージは jstage-mcp コンソールスクリプトをインストールします。名前空間化されているため、このサーバーファミリーの残りと1つの環境を共有できます。

python3 -m venv .venv
.venv/bin/pip install .

Windows の場合:

py -3.11 -m venv .venv
.venv\Scripts\pip.exe install .

または、クローンせずにリポジトリから直接:

uvx --from "git+https://github.com/ckgerteis/jstage-mcp" jstage-mcp

インストールを検証します:

.venv/bin/python -c "import jstage_mcp; print(jstage_mcp.__version__)"

パッケージまたはそのベンダリングされたモジュールの1つが欠落している場合、それは大声で失敗します。チェックとして jstage-mcp --help を使用しないでください。未知の引数は無視され、サーバーが起動し、入力の終わりを読み、0で終了するため、コードの状態に関係なく成功を報告します。

これ以外をインストールする場合

6つの独立したパッケージ。どれも他をインポートせず、他に依存せず、それぞれが単独でインストールして応答します。このディレクトリでの pip install . は、このサーバーの完全なインストールであり、他には何もありません。

ただし、3つのものを共有しています: レスポンスエンベロープ、クエリ台帳、そして複数実行する場合のレシートフォルダです。install.ps1 は6つすべてにバイト単位で同一にベンダリングされており、それを処理します。デフォルトでこのサーバーをインストールします。1つのリポジトリをクローンすることは、さらに5つを要求することではないからです。

.\install.ps1                        # this server
.\install.ps1 -All                   # all six
.\install.ps1 -Servers jstage,cinii        # a chosen subset

指定したサブセットは、一度だけ要求された1つのレシートフォルダに対して登録されます。スクリプトはネットワークよりも兄弟チェックアウトを優先し、既に登録されている資格情報を再度尋ねるのではなく引き継ぎ、要求されなかったサーバーには触れず、既に登録されているサーバーがフォルダまたはセッションスラッグについて異なる場合には推測するのではなく停止します。また、インストールしたすべてのものに対して ledger.pymediation.py がバイト単位で同一であることを検証するため、2つのエンベロープバージョンが1つの環境に気付かれずに存在することはありません。

Claude Desktop の設定

%APPDATA%\Claude\claude_desktop_config.jsonmcpServers の下に、インストールした環境のコンソールスクリプトを指すエントリを追加します。macOS または Linux では、.venv/bin/jstage-mcp への絶対パスを使用します。

{
  "mcpServers": {
    "jstage": {
      "command": "C:\\path\\to\\.venv\\Scripts\\jstage-mcp.exe"
    }
  }
}

3.0.0 で変更されました。 以前のバージョンはパスで登録されていました — "command": "…\\python.exe", "args": ["…\\server.py"]。そのエントリはこのバージョンを起動しません。server.py は現在、インポートの隣にあるスクリプトではなく、パッケージ内のモジュールであるためです。上記のコンソールスクリプトに置き換えてください。

Claude Desktop を再起動します。3つのツールがツールリストの "jstage" の下に表示されるはずです。

レート制限

サーバーは、JST の一括ダウンロード禁止に沿って、送信リクエスト間の最小間隔を1秒に強制します。制限はプロセスごとです。複数の Claude Desktop セッションを同時に実行すると、それを超える可能性があるため、実行しないでください。

制限事項

  • ジャーナル検索ツールはありません。 jstage_search_journals は v1.x に存在し、v2.0.0 で削除されました。J-STAGE は2026年3月26日にジャーナル検索エンドポイント(service=4)を発表しましたが、公開 API は依然としてそのサービスコードを ERR_004 で拒否します。静かにボリューム検索にフォールバックするツールはジャーナル検索ではなく、このサーバーはそのようなものを提供しないことを選択します。JST が service=4 を有効にするまで、既知のタイトル、ISSN、または cdjournal に対して jstage_list_issues を使用してください。

  • jstage_get_article_by_doi は J-STAGE 発行の DOI を必要とします。 WebAPI は doi= クエリパラメータを公開していません。ツールは J-STAGE のパターン(10.<registrant>/<cdjournal>.<vol>.<no>_<page>)に従う DOI を cdjournal+vol に分解し、結果をレスポンスと照合します。そのパターン外の DOI については、ツールは doi.org の解決 URL とメモを返します。

  • 商用利用には登録が必要です。 JST 利用規約に基づき、商用利用には contact@jstage.jst.go.jp に申請フォームを送信する必要があります。研究および教育目的の利用には必要ありません。

API ノート

エンドポイント: https://api.jstage.jst.go.jp/searchapi/do

使用されるサービスコード:

  • service=2 — 巻号

  • service=3 — 記事検索

  • service=4 — ジャーナル検索(文書化されていますが、2026年8月23日時点で ERR_004 で拒否されています。どのツールでも使用されていません)

ライブ API に対して確認された有効な記事検索クエリパラメータ: material, article, author, affil, keyword, abst, text, issn, cdjournal, vol, no, pubyearfrom, pubyearto, start, count

帰属

Powered by J-STAGE

この文字列はすべてのツールレスポンスに含まれます。

引用

このソフトウェアがあなたの研究を支援する場合は、引用してください。CITATION.cff を参照するか、GitHub の「Cite this repository」ボタンを使用してください。

ライセンス

MIT © 2026 Christopher Gerteis.

このライセンスはサーバーコードのみを対象とします。J-STAGEのコンテンツやJ-STAGE WebAPIに対する権利は付与されず、これらは引き続きJSTの利用規約に従います。

免責事項

研究ツールであり、ベストエフォートで保守され、「現状のまま」提供され、保証はありません。国立研究開発法人科学技術振興機構とは無関係であり、同機構の承認を受けたものではありません。JSTはWebAPIのサポートを提供していません。

著者

Dr Christopher Gerteis、ロンドン大学SOAS

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
2wRelease cycle
6Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables querying Japan's national academic database, CiNii Research, for articles, books, dissertations, KAKEN projects, and researcher profiles via seven MCP tools.
    7
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to query Japanese public data (laws, corporations, statistics) from official government APIs, returning normalized English metadata with source attribution.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables searching CiNii Research for academic articles, books, grants, and research data, and retrieving metadata for individual items.
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables scholarly metadata lookups from the Crossref REST API, including works, members, journals, funders, types, licenses, and prefixes, as tools for LLM clients.
    18
    MIT

View all related MCP servers

Related MCP Connectors

  • Multi-engine scholarly research server for search, traversal, full text, and reading lists.

  • Scholarly search: OpenAlex, Crossref, arXiv, OpenCitations and PubMed in one endpoint.

  • Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ckgerteis/jstage-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server