mcp-scholarly MCP server について
mcp-scholarly は、学術論文を検索するための MCP サーバーです。現在は arXiv、Google Scholar、任意で Google ウェブ検索に対応し、今後さらに学術ソースを追加する予定です。関連文献を探すユーザーやエージェントを対象としています。
主な機能
- 01API キー不要の arXiv 検索
- 02scholarly ライブラリによる Google Scholar 検索
- 03API キーが必要な任意の Google ウェブ検索
- 04空のキーワードに対する MCP ツールエラーの返却
活用シーン
- 01特定のキーワードに関する学術論文の検索
- 02エージェントへの文献検索機能の提供
MCP 対応
MCP サーバーとして、search-arxiv などの検索ツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-scholarly MCP サーバー
正確な学術論文を検索するための MCP サーバーです。今後、さらに多くの学術情報プロバイダーを追加する予定です。
検索ツール
search-arxiv— arXiv 検索(キーは不要です)search-google-scholar—scholarlyライブラリを使用した Google Scholar 検索(無料のプロキシプール)search-google-web— SerpBase API を使用した Google ウェブ検索。オプションです。SERPBASE_API_KEYが設定されている場合のみ登録されます。キーは https://serpbase.dev/dashboard/api-keys で取得できます(無料プランを利用できます)。

コンポーネント
ツール
サーバーは次のツールを実装しています:
- search-arxiv:指定されたキーワードに関連する論文を arxiv で検索します。
- 必須の文字列引数として「keyword」を受け取ります
クイックスタート
インストール
Claude Desktop
MacOS の場合:~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
開発版/未公開サーバーの設定
``` "mcpServers": { "mcp-scholarly": { "command": "uv", "args": [ "--directory", "/Users/adityakarnam/PycharmProjects/mcp-scholarly/mcp-scholarly", "run", "mcp-scholarly" ] } } ```公開済みサーバーの設定
``` "mcpServers": { "mcp-scholarly": { "command": "uvx", "args": [ "mcp-scholarly" ] } } ```または、Docker を使用している場合
公開済み Docker サーバーの設定
``` "mcpServers": { "mcp-scholarly": { "command": "docker", "args": [ "run", "--rm", "-i", "mcp/scholarly" ] } } ```Smithery 経由でインストールする
Smithery 経由で Claude Desktop に mcp-scholarly を自動インストールするには:
npx -y @smithery/cli install mcp-scholarly --client claude
開発
ビルドと公開
パッケージを配布できる状態にするには:
- 依存関係を同期し、ロックファイルを更新します:
uv sync
- パッケージの配布物をビルドします:
uv build
これにより、dist/ ディレクトリにソース配布物と wheel 配布物が作成されます。
- PyPI に公開します:
uv publish
注:環境変数またはコマンドフラグで PyPI の認証情報を設定する必要があります:
- トークン:
--tokenまたはUV_PUBLISH_TOKEN - またはユーザー名/パスワード:
--username/UV_PUBLISH_USERNAMEと--password/UV_PUBLISH_PASSWORD
デバッグ
MCP サーバーは stdio 経由で実行されるため、デバッグは難しい場合があります。最適なデバッグ体験を得るために、MCP Inspector の使用を強くおすすめします。
次のコマンドを使って、npm 経由で MCP Inspector を起動できます:
npx @modelcontextprotocol/inspector uv --directory /Users/adityakarnam/PycharmProjects/mcp-scholarly/mcp-scholarly run mcp-scholarly
起動すると、Inspector にブラウザーからアクセスできる URL が表示され、デバッグを開始できます。
zorp での使用
zorp で validate を実行するには、検索機能を備えた MCP ツールが必要です。このサーバーはそのチェックを満たします。zorp はツール名に検索を表す動詞が含まれているかを確認し、これらのツールの名前は search-arxiv と search-google-scholar だからです。
zorp-agent --yes \
--mcp "stdio:scholarly:uv:run:mcp-scholarly" \
validate "<your research question>"
または、一度設定して、実行のたびに読み込まれるようにします。
# .zorp/mcp.toml
[[server]]
name = "scholarly"
transport = "stdio"
command = "uv"
args = ["run", "mcp-scholarly"]
trust = "sandbox"
timeout_secs = 60
以下は、想定ではなく zorp のトランスポートを基準に測定した内容です。
search-arxivは約 1 秒で応答します。zorp のデフォルトの stdio 読み取り時間は 30 秒なので、デフォルト設定で余裕があります。上記のtimeout_secs = 60は、scholarlyと無料のプロキシプールを経由し、動作の予測がはるかに難しいsearch-google-scholarのための余裕です。- ログは stderr に出力されます。stdout に届くのは JSON-RPC のみで、zorp が必要とする改行区切りのフレーミングに対応しています。
- 空のキーワードが渡された場合、空の検索結果ではなく MCP ツールエラーが返されます。zorp にとって、この違いは重要です。「先行研究なし」のように見える検索失敗は、エビデンスレコードに誤った新規性スコアを記録させてしまうためです。
- arxiv は、無意味なものを含むあらゆるクエリに対して、ベストエフォートの一致結果を返します。そのため、結果が空でないことだけでは、先行研究が存在する証拠にはなりません。モデルが読むテキストであるツールの説明にも、その旨を記載しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
