SerpHubAPIをインストール
使い方に応じた4つの入り口:エージェントで、コードから、まず試す、一括で。4つとも同じAPIキー、同じウォレットを使います。
まず、APIキーを取得してください: /dashboard/keys (新規アカウントには1,000の無料クレジットが付与されます)。MCPサーバーはローカルパッケージ serphubapi-mcp(バージョン 0.1.0、stdio)です。ホスト型のエンドポイントではないため、APIキーはお使いのクライアント設定の中にだけ保存されます。
1. エージェントで使う
MCPサーバーまたは SKILL.md。Claude Code、Cursor、VS Code などに対応。
2. コードから使う
シンプルなREST:curl や任意のHTTPクライアントで。エージェントは不要です。
3. まず試す
ログイン後、コンソールのPlaygroundで。
4. 一括で使う
/v1/batch なら1回の呼び出しで最大5件の検索。
エージェントで:MCP
Claude Code なら1行、他のクライアントはすべて同じ stdio ブロックです。コマンドは uvx、引数は serphubapi-mcp、APIキーは環境変数に設定します。
Claude Code
claude mcp add serphubapi -e SERPHUBAPI_API_KEY=shapi_xxxxxxxx -- uvx serphubapi-mcp
インストールはこれだけです。エージェントは list_services、search、batch、fetch を使えるようになります。サーバーには uv(uvx を提供)のインストールが必要で、https://api.serphubapi.com と通信します。
Cursor
ファイル:~/.cursor/mcp.json(プロジェクト内では .cursor/mcp.json)。
{
"mcpServers": {
"serphubapi": {
"command": "uvx",
"args": ["serphubapi-mcp"],
"env": { "SERPHUBAPI_API_KEY": "shapi_xxxxxxxx" }
}
}
}VS Code
ファイル:.vscode/mcp.json。VS Code ではトップレベルのキーが mcpServers ではなく servers です。
{
"servers": {
"serphubapi": {
"command": "uvx",
"args": ["serphubapi-mcp"],
"env": { "SERPHUBAPI_API_KEY": "shapi_xxxxxxxx" }
}
}
}Windsurf
ファイル:~/.codeium/windsurf/mcp_config.json。
{
"mcpServers": {
"serphubapi": {
"command": "uvx",
"args": ["serphubapi-mcp"],
"env": { "SERPHUBAPI_API_KEY": "shapi_xxxxxxxx" }
}
}
}Cline
Cline では MCP Servers の設定を開き、同じブロックを追加します。
{
"mcpServers": {
"serphubapi": {
"command": "uvx",
"args": ["serphubapi-mcp"],
"env": { "SERPHUBAPI_API_KEY": "shapi_xxxxxxxx" }
}
}
}OpenCode
ファイル:opencode.json。OpenCode ではローカルサーバーを type local とコマンドリストで記述します。
{
"mcp": {
"serphubapi": {
"type": "local",
"command": ["uvx", "serphubapi-mcp"],
"environment": { "SERPHUBAPI_API_KEY": "shapi_xxxxxxxx" }
}
}
}ツールと料金:list_services は無料。search はサービスの料金(例:google/web は10クレジット、cache_first は半額、キャッシュヒットは0)に加え、本文1ページごとに3クレジット。fetch は1ページ5クレジット、失敗時は0。batch は各項目を検索と同様に課金します。詳細なリファレンス: MCPドキュメント →
Skill:APIを直接呼び出すエージェント向け
エージェントがMCPを使わずHTTPを直接呼び出す場合は、リポジトリのルートにある SKILL.md を渡してください。いつ検索するか、いつ引用付きの回答を求めるか、いつページを取得するか、検索をどうバッチ処理するかが書かれています。
# In your agent's skills folder, or pasted into its instructions: # https://github.com/sou2026x/serp/blob/main/SKILL.md
MCPを使わない場合も同じエンドポイント:POST /v1/search、POST /v1/ai-search、POST /v1/fetch、POST /v1/batch。いずれも X-API-Key ヘッダーを使います。
ツールが表示されない場合
- ターミナルで uvx serphubapi-mcp を実行してください。起動すればパッケージは正常で、問題はクライアントの設定にあります。
- APIキーを確認してください。shapi_ で始まります(旧キーは fapi_ で始まり、引き続き利用できます)。
- 設定を編集したらクライアントを再起動し、/dashboard/logs で利用状況を確認してください。
コードから:シンプルなREST
エージェントは不要です。各呼び出しは X-API-Key ヘッダーにAPIキーを入れた1回のPOSTです。失敗、空の結果、キャッシュヒットは無料です。詳細なリファレンス: APIドキュメント →
curl -s https://api.serphubapi.com/v1/search \
-H "X-API-Key: shapi_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"q": "best espresso machine 2026", "engine": "google", "num": 5}'import json, urllib.request
req = urllib.request.Request(
"https://api.serphubapi.com/v1/search",
data=json.dumps({"q": "best espresso machine 2026", "engine": "google", "num": 5}).encode(),
headers={"X-API-Key": "shapi_xxxxxxxx", "Content-Type": "application/json"},
)
with urllib.request.urlopen(req) as r:
print(json.load(r)["results"])同じAPIキーで使えるその他のエンドポイント:引用付きの回答は POST /v1/ai-search、ページのMarkdown化は POST /v1/fetch、1回で最大5件の検索は POST /v1/batch。
まず試す:Playground
登録したらセットアップなしで試せます。ログインしてコンソールのPlaygroundで検索を実行でき、標準料金で課金されます。新規アカウントには1,000の無料クレジットが付与されます。
一括で:バッチ検索
データパイプラインや比較に:1回の呼び出しで最大5件の独立した検索を実行できます。各項目は単一の検索と同様に課金され、1件が失敗しても他の項目はブロックされません。
curl -s https://api.serphubapi.com/v1/batch \
-H "X-API-Key: shapi_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"queries": [{"q": "espresso", "engine": "google"}, {"q": "espresso", "engine": "xiaohongshu", "type": "notes"}]}'レスポンスは常にJSONで、項目ごとの結果と、呼び出し全体の meta.total_credits_charged を含みます。