雅虎开发人员MCP服务器

Yahoo!本地搜索/地理编码器/反向地理编码器API 的Model Context Protocol (MCP) 作为工具公开HTTP 服务器。
机能
- 本地搜索:关键字or 基于坐标的搜索+10个分页
- 地理编码器:从地址文本获取坐标
- 反向地理编码器:从坐标获取地址
- 分页:第一次10件,同条件连续调用下一次10件。
reset重新启动交互渲染。
系统要求
- Node.js>=22
- pnpm (建议)或npm
主要依存关系
@modelcontextprotocol/sdk: MCP 框架结构@nestjs/core: NestJS 框架结构@nestjs/platform-fastify: Fastify 平台typescript: TypeScript 编译程序jest:测试框架
起动
pnpm install
pnpm build
pnpm start或开发模式:
pnpm devDocker 开发
如果你使用开发用集装箱Node 中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长。
# ビルド&起動
docker compose up --build
# 別ターミナルでテストなど実行
docker compose exec app pnpm test./docker-compose.yml啊Dockerfile.dev中所述修改相应参数的值。首次构建时进入容器内pnpm install済み。- 整个存储库
/app绑定到node --watch中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。
MCP 客户端使用
- 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 开始使用工具
MCP 工具概述
| Tool | Name | Params | 说明 |
|---|---|---|---|
| Local Search | localSearch | query? lat? lng? sessionId? reset? offset? results?查找关键字或坐标。分页是内部管理。 | |
| Geocode | geocode | query | 住所->坐标 |
| 反向地理码 | 反向地理码 | lat lng | 座標->住所 |
分页规格
- 内部
sessionId+上次搜索条件散列offset保留 - 明确地
offset可指定(覆盖) reset=true返回到第一页
测试
pnpm test替换
HTTP客户端已抽象。fetch 从实施到将来 axios 的规格化距离的幂函数。
API详细文档
本地搜索工具
参数:
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
}地理代码工具
参数:
query(string, required): 住所文字列
响应示例:
{
"items": [
{
"address": "東京都新宿区新宿3-38-1",
"lat": 35.689521,
"lng": 139.691706,
"name": "新宿駅前"
}
]
}反向地理编码工具
参数:
lat(number, required): 纬度lng(number, required): 経度
响应示例:
{
"items": [
{
"address": "東京都新宿区新宿3-38-1",
"name": "東京都新宿区新宿"
}
]
}