jstage-mcp
jstage-mcp
Claude Desktop で使用するための3つのツールとして J-STAGE WebAPI を公開する FastMCP stdio サーバーです。
これが何のためのものか
J-STAGE は日本の学術団体が発行するジャーナルの全文を収録しており、これはカタログ全体ではなく記事内部を検索します。目録作成者がキーワードとして選ばなかった用語でも、著者が論文中で使用していれば見つけることができます。つまり、名前が付けられる前に流通する概念への経路となるのです。
J-STAGE の DOI を直接レコードに解決するか、ジャーナルの巻号の背骨をたどって全体の流れを見ることができます。
ここで用語を実行し、cinii-mcp でも実行して、その差を読み取ってください。大きな乖離は、あなたの語彙が目録の記述に属するのか、それとも分野の散文に属するのかを示します。これは、文献の中での発見である前に、文献についての発見なのです。
Related MCP server: Japan Data MCP
ツール
ツール | 目的 |
| J-STAGE 記事全体にわたる全文・著者・タイトル・ジャーナル検索 |
| 既知のタイトル、ISSN、または |
| J-STAGE DOI を完全な記事レコードに解決する |
すべてのツールは、mediation.py によって構築され、response-schema.json で定義された1つの型付き JSON レスポンスエンベロープを返します。スキーマバージョン 2.3.0。同じモジュールとスキーマはサーバーファミリー全体でバイト単位で同一にベンダリングされているため、あるサーバーのエンベロープは別のサーバー用に書かれたコンシューマーでも読むことができます。
エンベロープは、何が見つかったかだけでなく、検索がどのように行われたかを報告します。
searched_for— 検索操作では、実際に送信された用語、検出されたスクリプト、マッチングモードをエンベロープの先頭に引き上げ、中継クライアントがそれを落とせないようにします。フェッチ操作(jstage_get_article_by_doi、jstage_list_issues)では省略されます。識別子を渡され、用語を選択しなかったためです。query— 提供されたinput_terms、送信されたnormalized、検出されたscript。このペアは、呼び出し元の言語とコーパスの間で実行されたレンダリングの記録です。matching_mode— このサーバーではfull_text_broad。result.totalの読み方を示します。result.breadth—none、narrow(1〜50)、broad(51〜1000)、very_broad(>1000)。しきい値は意図的に低く設定されています。文献のように見える数百のヒットは、そのまま通過させるのではなく、マークされます。items[].matched_in— レコードごとに、マッチが行われたフィールド。receipt— ISO 8601 タイムスタンプ、正規化されたクエリとそのパラメータに対する SHA-256、および返された識別子。ハッシュは既に保持している用語を検証しますが、逆に用語を生成することはできないため、預託の単位はレシートではなくエンベロープです。attribution— すべてのレスポンスに必要なクレジット行。
診断コード
型付きで閉じています。診断はクライアントが解析する必要のある散文ではありません。
コード | レベル | 意味 |
| info | レコードが返されました。フラグはありません。 |
| warning | マッチは全文で行われ、複数語の用語は緩くマッチするため、高い |
| warning | クエリはラテン文字だったため、ローマ字化および英語のメタデータのみにマッチしました。漢字またはかなで再発行してください。 |
| warning | このレンダリングではレコードがありません。エミックまたは構成要素の用語、あるいは別の日本語レンダリングを試してください。 |
| error | API が応答し、エラーで応答しました。 |
| error | リクエストが完了しませんでした。失敗した検索は結果が不明であり、欠如として記録してはならないため、 |
| info | レシートの宛先が設定されていないため、レスポンスはクエリ台帳に書き込まれませんでした。検索には影響ありません。レシートは残りません。 |
| 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.jsonverify は失敗時に非ゼロで終了し、見つかった種類を報告します: フォーク(同時書き込み — 設定の欠陥であり、すべての行はまだ存在します)、欠落行、並べ替え、または改ざん(自身の内容にハッシュされない行)。最後のものだけが誠実さに関する主張であり、それらを同様に報告すると、読者が一方を他方と誤解する恐れがあります。マニフェストは引用すべきオブジェクトです: 預託全体の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.py と mediation.py がバイト単位で同一であることを検証するため、2つのエンベロープバージョンが1つの環境に気付かれずに存在することはありません。
Claude Desktop の設定
%APPDATA%\Claude\claude_desktop_config.json の mcpServers の下に、インストールした環境のコンソールスクリプトを指すエントリを追加します。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
Maintenance
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
- AlicenseAqualityAmaintenanceEnables querying Japan's national academic database, CiNii Research, for articles, books, dissertations, KAKEN projects, and researcher profiles via seven MCP tools.72MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query Japanese public data (laws, corporations, statistics) from official government APIs, returning normalized English metadata with source attribution.1MIT
- AlicenseAqualityCmaintenanceEnables searching CiNii Research for academic articles, books, grants, and research data, and retrieving metadata for individual items.2MIT
- AlicenseAqualityAmaintenanceEnables scholarly metadata lookups from the Crossref REST API, including works, members, journals, funders, types, licenses, and prefixes, as tools for LLM clients.18MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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