About Yahoo Developer MCP
Yahoo Developer MCP is an MCP server published by agts86 in the Developer Tools category: mCP server: Yahoo Developer MCP.
The repository has 1 stars and 0 forks, with the last commit 2 months ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/agts86/yahoo-developer-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (3)
Geocodegeocode
Parameters not published.
Local SearchlocalSearch
Parameters not published.
Reverse GeocodereverseGeocode
Parameters not published.
Ask AI
Ask AI about Yahoo Developer MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
Yahoo Developer MCP Server
Yahoo!ローカルサーチ / ジオコーダ / リバースジオコーダ API を Model Context Protocol (MCP) ツールとして公開する HTTP サーバー。
機能
- ローカルサーチ: キーワード or 座標ベース検索 + 10件ページング
- ジオコーダ: 住所テキストから座標取得
- リバースジオコーダ: 座標から住所取得
- ページング: 初回10件、同条件連続呼び出しで次10件。
resetでリセット。
システム要件
- Node.js >= 24
- pnpm (推奨) または npm
主要依存関係
@modelcontextprotocol/sdk: MCP フレームワーク@nestjs/core: NestJS フレームワーク@nestjs/platform-fastify: Fastify プラットフォームtypescript: TypeScript コンパイラjest: テストフレームワーク
起動
pnpm install
pnpm build
pnpm start
または開発モード:
pnpm dev
Docker で開発する
開発用コンテナを使えば Node のバージョンや依存を気にせず手元のエディタで編集できます(ファイル変更は自動リロード)。
# ビルド&起動
docker compose up --build
# 別ターミナルでテストなど実行
docker compose exec app pnpm test
./docker-compose.ymlはDockerfile.devを利用します。初回ビルド時にコンテナ内へpnpm install済み。- リポジトリ全体を
/appにバインドし、node --watchでソース変更時にサーバーを再起動します。
MCP クライアントでの使用
HTTP モード(推奨)
-
HTTPサーバーを起動:
pnpm start -
MCP クライアントで以下を設定:
GitHub Copilot (VS Code) の場合:
mcp.json(Windows:%APPDATA%\Code\User\mcp.json, macOS/Linux:~/.config/Code/User/mcp.json) に以下を追加:{ "servers": { "yahoo-developer-local": { "type": "http", "url": "http://localhost:3000/mcp/stream", "tools": ["*"], "enabled": true, "headers": { "Authorization": "Bearer {取得済みトークン}" } } } }codex (VS Code) の場合:
config.toml(macOS/Linux:~/.codex/config.toml) に以下を追加:[mcp_servers.yahoo-developer] url = "http://localhost:3000/mcp/stream" enabled = true http_headers = { "Authorization" = "Bearer {取得済みトークン}" } -
MCP クライアントを再起動して MCP ツールを使用開始
Vercel デプロイ先を使う場合
Vercel 上の URL を MCP クライアントへ設定する場合も、エンドポイントは /mcp/stream です。
[mcp_servers.yahoo-developer]
url = "https://your-deployment.vercel.app/mcp/stream"
enabled = true
http_headers = { "Authorization" = "Bearer {取得済みトークン}" }
Codex で Unexpected content type: text/html が出る場合、MCP サーバーではなく Vercel の保護ページや別アプリの HTML に到達している可能性があります。以下を確認してください。
- URL が
/mcp/streamで終わっていること curl -i https://your-deployment.vercel.app/mcpが JSON を返すこと- Preview Deployment などで Deployment Protection が有効な場合は、Vercel の Protection Bypass for Automation を発行し、
x-vercel-protection-bypassヘッダーを追加すること
[mcp_servers.yahoo-developer]
url = "https://your-deployment.vercel.app/mcp/stream"
enabled = true
http_headers = { "Authorization" = "Bearer {取得済みトークン}", "x-vercel-protection-bypass" = "{Vercel の bypass secret}" }
stdio モード
HTTPサーバーを立てずに、MCP クライアントからプロセスを直接起動する方式です。Yahoo App ID はリクエストヘッダーではなく環境変数 YAHOO_APP_ID から解決されます(プロセス全体で単一のキーを使用)。
-
プロジェクトをビルド:
pnpm build -
.envにYAHOO_APP_IDを設定(.env.exampleを参照):YAHOO_APP_ID=your_app_id_here -
MCP クライアントの設定に以下を追加(Claude Desktop の
claude_desktop_config.json等):{ "mcpServers": { "yahoo-developer": { "command": "node", "args": ["--env-file=.env", "dist/main.js"], "cwd": "/path/to/yahoo-developer-mcp", "env": { "MCP_MODE": "stdio" } } } }動作確認だけしたい場合は
pnpm start:stdio(開発時はpnpm dev:stdio)でも起動できます。
MCP ツール概要
| Tool | Name | Params | 説明 |
|---|---|---|---|
| Local Search | localSearch | query? lat? lng? sessionId? reset? offset? results? | キーワードまたは座標検索。ページングは内部管理。 |
| Geocode | geocode | query | 住所->座標 |
| Reverse Geocode | reverseGeocode | lat lng | 座標->住所 |
ページング仕様
- 内部
sessionId+ 検索条件ハッシュで前回offsetを保持 - 明示的に
offset指定可能 (上書き) reset=trueで最初のページに戻る
テスト
pnpm test
差し替え
HTTPクライアントは抽象化済み。fetch 実装から将来 axios へ容易に差し替え可能。
API詳細ドキュメント
Local Search Tool
パラメータ:
query(string, optional): キーワード検索文字列lat(number, optional): 座標検索の緯度lng(number, optional): 座標検索の経度sessionId(string, optional): ページング継続用セッションIDoffset(number, optional): 明示的オフセット指定 (0-based)reset(boolean, optional): ページングリセットresults(number, optional): カスタムページサイズ (デフォルト: 10)
レスポンス例:
{
"items": [
{
"name": "スターバックス 新宿店",
"address": "東京都新宿区新宿3-38-1",
"lat": 35.689521,
"lng": 139.691706,
"category": "カフェ",
"tel": "03-1234-5678"
}
],
"nextOffset": 10
}
Geocode Tool
パラメータ:
query(string, required): 住所文字列
レスポンス例:
{
"items": [
{
"address": "東京都新宿区新宿3-38-1",
"lat": 35.689521,
"lng": 139.691706,
"name": "新宿駅前"
}
]
}
Reverse Geocode Tool
パラメータ:
lat(number, required): 緯度lng(number, required): 経度
レスポンス例:
{
"items": [
{
"address": "東京都新宿区新宿3-38-1",
"name": "東京都新宿区新宿"
}
]
}
README fetched from the repository 7 days ago. The original is authoritative.