概要
-
目的
Claude の既存の知識(2024年などの学習データ)に加え、Perplexity の検索APIを使って 最新情報 を参照できるようにする「Deep Research」機能を構築します。 -
アプローチ
MCP(Model Context Protocol)サーバーを用いて、Claude に外部ツール(Perplexity)へのアクセス能力を付与します。Claude は必要に応じて Perplexity からリアルタイム検索結果を取得し、高精度な回答を返すことが可能になります。
全体の流れ
- WSL2 or Windows環境の準備
- Node.js のインストール
- Perplexity APIキーの取得
- MCP用コード(perplexity-ask)のダウンロード
- Claude Desktop の設定ファイル(claude_desktop_config.json)の作成
- エラー対処(nodeコマンドが見つからない、APIキーの受け渡しなど)
- Claude でツールを呼び出すテスト
1. WSL2 or Windows環境の準備
1-1. WSL2の有効化(Windowsユーザー向け)
Windows 10/11 でWSL2を使う場合は、以下の手順を参考にセットアップしてください。
- PowerShellを管理者権限で起動
-
WSL2を有効化
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart wsl --set-default-version 2
-
WSL2用のLinuxディストリビューションをインストール
Microsoft Store などから Ubuntu をインストールしておく。
1-2. Windowsのみで実行したい場合
- Node.js をWindowsネイティブでインストールして、Dockerを使わずにローカル実行することも可能です。
- ただし、本記事では WSL2上で Node.js を実行し、Windows側のClaude Desktop から呼び出す 例を中心に解説します。
2. Node.js のインストール
WSL2(Ubuntu)上で Node.js をインストールします。最新の LTS を入れればOKです。
# パッケージを更新
sudo apt update && sudo apt upgrade -y
# Node.js (npm含む) のインストール
sudo apt install -y nodejs npm
補足: より新しいバージョンが必要な場合は
nvm
を使う方法もあります。
例: nvm-sh/nvm
インストール後、以下でバージョンを確認してください。
node --version
npm --version
3. Perplexity APIキーの取得
-
Perplexity AI 公式サイト
Perplexity AI にアクセスし、アカウントを作成してログインします。 -
APIキーを生成
- プロフィールアイコン → Settings → API
- 必要に応じて課金プランを設定し、新規APIキーを発行
-
メモしておく
生成されたAPIキー(例:pplx-xxxxxx...
)は後ほど使うので控えておきます。
4. MCP用コード(perplexity-ask)のダウンロード
Perplexity MCPサーバーの実装は、ppl-ai/modelcontextprotocol リポジトリの perplexity-ask
に含まれています。
4-1. リポジトリをクローン
WSL2 ターミナルで任意のディレクトリへ移動し、GitHubからクローンします。
cd ~
git clone https://github.com/ppl-ai/modelcontextprotocol.git
cd modelcontextprotocol/perplexity-ask
4-2. npm install
npm install
これで依存パッケージがインストールされ、dist/index.js
などが生成されます。
5. Claude Desktop の設定ファイルを作成
5-1. 設定ファイルの場所
Claude Desktop は、通常 %APPDATA%\Claude\claude_desktop_config.json
を読み込みます。無い場合は作ってください。
例:
C:\Users\ユーザー名\AppData\Roaming\Claude\claude_desktop_config.json
5-2. ファイル内容の例
{
"mcpServers": {
"perplexity-ask": {
"command": "wsl",
"args": [
// Node.js のフルパス,
// perplexity-ask のエントリーポイント
"/usr/bin/node",
"/home/your_user/modelcontextprotocol/perplexity-ask/dist/index.js"
],
"env": {
"PERPLEXITY_API_KEY": "pplx-あなたのAPIキー"
}
}
}
}
注意:
"/home/your_user/.../index.js"
の部分は、実際にクローンした場所に合わせて修正してください。- WSL2 上に Node.js がインストールされている場合、
/usr/bin/node
などフルパスを指定すると確実です。env
でPERPLEXITY_API_KEY
を指定しても、WSL2 の非対話的シェル経由では引き継がれないことがあります(後述の対策を参照)。
5-3. 「env が渡らない」場合の対策
WSL2 上で env
が反映されない場合は、次のいずれかを行います:
-
bash -c で export
{ "mcpServers": { "perplexity-ask": { "command": "wsl", "args": [ "bash", "-c", "export PERPLEXITY_API_KEY='pplx-xxx'; /usr/bin/node /home/your_user/modelcontextprotocol/perplexity-ask/dist/index.js" ] } } }
-
WSL2 内にスクリプトを作り export → node 実行
# /home/your_user/mcp_run.sh #!/usr/bin/env bash export PERPLEXITY_API_KEY="pplx-xxx" exec /usr/bin/node /home/your_user/modelcontextprotocol/perplexity-ask/dist/index.js
{ "mcpServers": { "perplexity-ask": { "command": "wsl", "args": [ "/home/your_user/mcp_run.sh" ] } } }
このように設定ファイルを作成したら、Claude Desktop を 完全に再起動 してください。
6. エラー対処
6-1. 「node: コマンドが見つかりません」
- WSL2 非対話的シェルでは
PATH
が異なる場合があります。 - Node.js のフルパスを指定すれば解決することが多いです。
- 例:
"/usr/bin/node"
6-2. 「PERPLEXITY_API_KEY が必須です」と表示される
-
env
が渡っていない場合は、上記の bash -c や スクリプト方式でexport
してから実行してください。
6-3. 「ハンマーアイコンは出るが最新情報が取得されない」
- Claude は外部ツールが必要と判断しない限り、自分の知識ベースで回答を試みます。
- 「最新情報を取得するために perplexity_ask を使ってください」 と明示的に指示すると、外部検索を実行してくれます。
7. Claude でツールを呼び出すテスト
- Claude Desktop を起動
-
ハンマーアイコンの確認
右上などに「perplexity-ask」が表示されていれば、MCPサーバーが認識されている状態です。 -
質問で外部ツール使用を指示
例:または今日の最新ニュースを取得するために perplexity_ask を使ってください。
Use perplexity_ask to search for the latest news about [topic].
- 回答が最新情報を含むか確認
まとめ
- Claude Desktop + MCP サーバー(perplexity-ask) の連携により、Claude が最新情報を取得可能になります。
- ただし、WSL2 経由の実行では
env
が引き継がれないなどのハマりどころがあるため、フルパス指定 や bash -c 方式などで対処が必要です。 - Claude に「ツールを使って検索して」と指示すると、実際に Perplexity API からリアルタイムの情報を取得して回答する「Deep Research」が実現できます。
これで、0 から MCP サーバーを構築し、Claude に最新情報を参照させるまでの一連の流れは完了です。お疲れさまでした!