Perplexity MCP Server について
Claude などの MCP クライアント向けに、Perplexity の検索、リサーチ、エージェント、埋め込み機能を提供する MCP サーバーです。ドメインと期間のフィルターを保持し、クエリに応じてモデルを選択します。
主な機能
- 01引用付きの AI 検索回答
- 02ランキング形式の検索結果
- 03非同期の深層リサーチ
- 04エージェントと埋め込みツール
- 05ドメイン・期間フィルターの保持
- 06モデルの自動選択
活用シーン
- 01出典付きウェブリサーチ
- 02ファクトチェック用 URL の収集
- 03同期タイムアウトを超える調査
- 04ドメインや日付による検索制限
MCP 対応
MCP クライアントに Perplexity の検索、リサーチ、エージェント、埋め込み機能をツールとして公開します。検索フィルターやモデル選択の管理にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Perplexity MCP Server
Claude に Perplexity AI のウェブ検索機能を提供する MCP サーバーです。モデルの自動選択、状態を保持するフィルター、目的別に設計された 10 個のツールを備えています。
前提条件
- Node.js v20 以降
- Perplexity API キー — https://www.perplexity.ai/settings/api で取得できます
- Claude Desktop(または MCP 互換クライアント)
インストール
-
このリポジトリをクローンします。
git clone https://github.com/RossH121/perplexity-mcp.git cd perplexity-mcp -
依存関係をインストールします。
npm install -
サーバーをビルドします。
npm run build
設定
Claude の設定ファイル ~/Library/Application Support/Claude/claude_desktop_config.json にサーバーを追加します。
{
"mcpServers": {
"perplexity-server": {
"command": "node",
"args": ["/absolute/path/to/perplexity-mcp/build/index.js"],
"env": {
"PERPLEXITY_API_KEY": "your-api-key-here",
"PERPLEXITY_MODEL": "sonar-pro"
}
}
}
}
/absolute/path/to を、リポジトリをクローンした実際のパスに置き換えてください。
利用可能なモデル
サーバーはクエリに基づいて最適なモデルを自動選択しますが、PERPLEXITY_MODEL でデフォルトを設定することもできます。
| モデル | 最適な用途 |
|---|---|
sonar-deep-research | 包括的なレポート、複数ソースを網羅した調査 |
sonar-reasoning-pro | 複雑な論理、数学、思考の連鎖による分析 |
sonar-pro | 一般的な検索、事実に関するクエリ(デフォルト) |
sonar | 迅速で簡単な調べもの |
料金と利用状況については、https://docs.perplexity.ai/guides/pricing をご覧ください。
ツール
search — AI を活用したウェブ検索
メインの検索ツールです。クエリに基づいて適切なモデルを自動選択します。引用元を示した統合回答を返します。
| パラメーター | 選択肢 | 説明 |
|---|---|---|
query | string | 検索クエリ |
search_context_size | low / medium / high | 取得するウェブ情報の量です。low は最も高速かつ低コスト(デフォルト)、high は最も詳細です |
search_type | fast / pro / auto | 検索エンジンのティア(web_search_options 内にネスト) |
reasoning_effort | minimal / low / medium / high | sonar-deep-research の推論の深さ |
strip_thinking | boolean | 推論モデルの応答から `` ブロックを削除します |
search_mode | web / academic / sec | academic は査読済み論文を優先し、sec は SEC の提出書類を検索します |
search_after_date / search_before_date | MM/DD/YYYY | 公開日で情報源を絞り込みます |
last_updated_after / last_updated_before | MM/DD/YYYY | 最終更新日で情報源を絞り込みます |
search_language_filter | ["en","de"] | 情報源の言語を指定します(ISO 639-1) |
language_preference | ISO 639-1 | 優先する応答言語 |
disable_search | boolean | 学習データのみから回答します(ウェブ検索なし) |
enable_search_classifier | boolean | 検索するかどうかを分類器に判断させます |
return_images | boolean | 結果 URL を記載した画像セクションを追加します |
image_domain_filter / image_format_filter | string[] | ドメインまたは形式で画像を絞り込みます |
return_related_questions | boolean | 関連する質問の候補を追加します |
country / latitude / longitude | — | user_location を介して結果を地域に合わせます |
stream_mode | full / concise | Pro Search のストリーミングイベント形式 |
show_cost | boolean | 利用可能な場合、リクエスト費用のフッターを追加します |
stream | boolean | ストリーミング応答を有効にします |
例:
- 「核融合エネルギーの最新動向は?」 →
sonar-proを自動選択します - 「CRISPR 遺伝子編集の進歩について詳細に調査・分析して」 →
sonar-deep-researchを自動選択します - 「この論理パズルを順を追って解いて」 →
sonar-reasoning-proを自動選択します
raw_search — LLM を使用しない生のランキング結果
AI による統合を行わず、ランキングされたウェブ検索結果を直接返します。より高速で低コストです。URL の発見、ソースリストの作成、ファクトチェックのワークフローに役立ちます。
| パラメーター | オプション | 説明 |
|---|---|---|
query | string or string[] | 検索クエリ、または 1 回のリクエストで実行するクエリの配列 |
max_results | 1–20 | 結果の件数(デフォルト:10) |
max_tokens / max_tokens_per_page | number | 全体/結果ごとのトークン予算 |
search_mode | web / academic / sec | ソースカテゴリ |
search_type | web / people | people は People Search にルーティングします |
recency | hour / day / week / month / year | 期間フィルター |
search_after_date / search_before_date | MM/DD/YYYY | 公開日によるフィルター |
last_updated_after / last_updated_before | MM/DD/YYYY | 最終更新日によるフィルター |
search_language_filter | ["en","de"] | 対象言語を限定します(ISO 639-1) |
country | ISO 3166 code | 検索結果を地域に合わせます(例:US、GB) |
注:以前のバージョンでは、これらのパラメーターを camelCase で送信していたため、Search API によって無視されていました。そのため、
max_results、recency、search_mode、日付フィルターは効果がありませんでした。この問題は修正され、現在は反映されます。
async_research — 時間のかかる詳細な調査
同期呼び出しの完了を待つ代わりに、sonar-deep-research ジョブを送信して状態を確認します。調査が同期呼び出しのタイムアウトである 5 分を超える可能性がある場合に便利です。ジョブは作成から 7 日後に期限切れになります。
| パラメーター | オプション | 説明 |
|---|---|---|
action | submit / status / list | 実行する操作 |
query | string | 調査の質問(submit では必須) |
request_id | string | 以前の submit で取得したジョブ ID(status では必須) |
model | Sonar model | ジョブのモデル(デフォルト:sonar-deep-research) |
reasoning_effort | minimal / low / medium / high | 推論の深さ |
search_mode | web / academic / sec | ソースカテゴリ |
strip_thinking | boolean | 完了した結果から <think> ブロックを削除します |
"Submit async research: comprehensive comparison of solid-state battery startups"
→ returns a request_id
"Check async research status for <request_id>"
agent — 組み込みツールを備えたエージェントループ
Perplexity Agent API です。組み込みツールを呼び出し、必要に応じてサードパーティ製モデルも利用できる、複数ステップのエージェントを実行します。
| パラメーター | オプション | 説明 |
|---|---|---|
input | string | タスクまたは質問 |
model | 例:openai/gpt-4.1 | プロバイダーを指定したモデル |
models | string[] | フォールバックの順序(model より優先されます) |
preset | fast-search / pro-search / deep-research | モデルの代わりに名前付きプリセットを指定します |
instructions | string | システムプロンプト |
max_steps | 1–10 | エージェント/ツールの最大ステップ数 |
max_output_tokens | number | 出力トークンの最大数 |
tools | web_search / fetch_url | エージェントが使用できる組み込みツール |
embeddings — テキスト埋め込み
Perplexity Embeddings API を使用して埋め込みを生成します。デフォルトでは、簡潔な概要(モデル、ベクトル数、トークン使用量)を返します。
| パラメーター | オプション | 説明 |
|---|---|---|
input | string or string[] | 埋め込み対象のテキスト(最大 512 件) |
model | pplx-embed-v1-0.6b / pplx-embed-v1-4b | 埋め込みモデル(デフォルト:0.6b) |
dimensions | number | 出力の次元数(Matryoshka) |
full | boolean | base64 エンコードされた生ベクトルを含めます |
domain_filter — ドメインの許可リスト/ブロックリスト
検索結果に含める、または除外するドメインを指定します。フィルターは解除されるまで、その後のすべての検索に適用されます。
action: "allow"— 結果をこのドメインに限定します(許可リストモード)action: "block"— 結果からこのドメインを除外します(拒否リストモード)- ドメインは最大 20 件です。同じフィルターセット内で許可とブロックを混在させることはできません
"Allow results only from arxiv.org and nature.com"
"Block pinterest.com and reddit.com from search results"
recency_filter — 期間フィルター
検索結果を特定の期間に限定します。変更されるまで適用されます。
オプション:hour、day、week、month、year、none
"Set recency filter to week"
"Remove the recency filter"
clear_filters — すべてのフィルターをリセット
1 回の呼び出しですべてのドメインフィルターと期間フィルターを解除します。
list_filters — 有効なフィルターを表示
現在有効なドメインの許可リスト/ブロックリストと、鮮度設定を表示します。
model_info — モデルの選択を表示または上書き
利用可能なモデルと現在の選択を表示するか、特定のモデルを手動で指定します。
"Show model info"
"Set model to sonar-deep-research"
インテリジェントなモデル選択
サーバーは、クエリとキーワードリストを照合してスコアを算出し、適切なモデルを自動的に選択します。
- 調査キーワード(
deep research、comprehensive、in-depth)→sonar-deep-research - 推論キーワード(
solve、logic、mathematical、figure out)→sonar-reasoning-pro - 簡単なクエリのキーワード(
quick、brief、basic)→sonar - その他すべて →
sonar-pro
各応答には、使用されたモデルとその理由が表示されます。クエリが特定のモデルに強く一致する場合(スコア ≥ 2)、手動で設定したモデルよりもそちらが優先されます。
ワークフローの例
ドメインフィルタリングを使った時事調査:
recency_filter→weekdomain_filter→nature.comを許可、arxiv.orgを許可search→ 「量子誤り訂正における最近のブレークスルー」
金融文書の調査:
raw_searchでsearch_mode: "sec"を指定 → 関連する提出書類を検索searchでsearch_mode: "sec"を指定 → 統合した分析を取得
学術文献レビュー:
searchでsearch_mode: "academic"、search_context_size: "high"を指定 → 査読済みの情報源から包括的な結果を取得
推論を制御した詳細な調査:
searchでreasoning_effort: "high"、strip_thinking: trueを指定 → 出力に<think>ブロックを含めず、詳細な分析を実行
開発
npm run build # Compile TypeScript to build/
npm start # Run the built server
ソースはsrc/にあります。編集後、再ビルドしてClaudeを再起動すると、変更が読み込まれます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。