Upgrade to Pro — share decks privately, control downloads, hide ads and more …

WebAPIのMCPサーバー対応 におけるTool設計

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

WebAPIのMCPサーバー対応 におけるTool設計

Avatar for hirakawamizuki

hirakawamizuki

May 29, 2026

Other Decks in Technology

Transcript

  1. Copyright Val Laboratory Corporation All Rights Reserved. 2 自己紹介 •

    平川 瑞樹 • 株式会社ヴァル研究所 • 「駅すぱあと API」チームリーダー&プロダクトオーナー • 好きなもの:🍺クラフトビール、🤖AI • @mizuki901
  2. Copyright Val Laboratory Corporation All Rights Reserved. 3 登壇の経緯 Software

    Design 2026年4月号 第2特集 企業事例にみるMCPサーバー開発成功の秘訣 第1章: Webサービス企業のためのMCPサーバー設計ガイド (川崎 庸市) 第2章: 事例1 駅すぱあとAPIのMCPサーバー対応 (橋本 あゆみ、平川 瑞樹) 川崎様、Postman様、本日のイベントにお誘いいただきありがとうございます 🙇
  3. Copyright Val Laboratory Corporation All Rights Reserved. 4 (最初にお断り) すみません...私たちのサービスではPostmanを利用しておりません

    🙇 ですが、本日は皆様になにかしら持って帰っていただけるような 知見やノウハウをご提供できるように頑張ります!
  4. Copyright Val Laboratory Corporation All Rights Reserved. アジェンダ 5 1

    2 3 弊社紹介 「駅すぱあと API MCPサーバー」について Tool設計における勘所や実践ノウハウ
  5. Copyright Val Laboratory Corporation All Rights Reserved. 社名     株式会社ヴァル研究所 設立   

     1976年7月26日(50期) 所在地    東京都杉並区高円寺北 2-3-17 代表取締役  菊池 宗史 従業員数   164名(2026年5月29日現在) 世の中の当たり前を変えることで、人々の可能性をひろげ活力 に満ちあふれた社会を実現する Mission Vision 「思考の一歩先」を提供する熱狂的イノベーションカンパニー 株式会社ヴァル研究所(会社概要)
  6. Copyright Val Laboratory Corporation All Rights Reserved. 「駅すぱあと」は、1988年に日本で最初に発売された 経路検索サービスです。 以降35年以上にわたり経路検索のパイオニアとして、鉄道・バス

    ・航空・船など、日本全国の公共交通に関する多様な情報を保有 し、公共交通機関の最適経路及び運賃情報を提供しています。 飛行機の交通データ 日本国内のすべての航空路線に 対応しております。 (一部離島同士のヘリ便等除く) 水路の交通データ フェリーなどの水路データも フェリーターミナルを入れる ことで検索することができます。 バスの交通データ 路線バス、コミュニティバス、高 速バスも網羅。類似製品の中では 高いカバー率を誇っています。 北 海 道 か ら 沖 縄 ま で 日 本 全 国 の 路 線 を 網 羅 鉄道だけでなく、船の海路図やコミュニティバスの路線図もご用意 「駅すぱあと」とは
  7. Copyright Val Laboratory Corporation All Rights Reserved. 主な「駅すぱあと」製品 経路検索 /

    駅情報 / 鉄道路線図などの 機能を実装できる法人向けAPIです。 スマートフォンやパソコンで 経路検索/時刻表検索/運行情報などが いつでも無料で利用できるWebサイトです。 「駅すぱあと」アプリに蓄積した移動予測データ 内の駅・路線・交通種別等にてセグメントする 精度の高い広告メニューを提供しています。 通勤費手当に関する申請・管理業務を 一元化するクラウドサービスです。 1988年の発売以来、豊富な情報量と様々な機能 で利用者の移動を強力にバックアップします。 「駅すぱあと」独自の経路検索エンジンに備えられた全国の公共交通機関データを幅広い製品に活用。 プライベートでのお出かけや旅行などでの経路検索をはじめ、ビジネスシーンでの交通費精算や通勤定期代の支給計算などの法人 向けサービスとも連携し、12万社以上の取引実績があります。 累計1,400万ダウンロードを超える、 iOS・Android端末向け経路検索アプリです。 Ads for web
  8. Copyright Val Laboratory Corporation All Rights Reserved. 9 「駅すぱあと API」とは

    「駅すぱあと」の高度な探索エンジンと最新の公共交通データをお客様のシステムへ自在に組み込めるWeb APIです。 交通費精算の自動化から、不動産・求人サイトでの通勤時間検索まで、公共交通に関わるあらゆる課題を解決します。 定期・運賃情 報 経路・鉄道情報 バス情報 物件検索 経路検索 交通費計算
  9. Copyright Val Laboratory Corporation All Rights Reserved. 10 「駅すぱあと API」のリクエスト例

    https://api.ekispert.jp/v1/json/search/course/extreme? key=ACCESS_KEY&viaList=東京:新宿&date=20260529&time=1000 経路探索API 2026年5月現在、経路探索APIで指定可能なパラメータは34個 (つまり、上記よりももっと複雑/様々な条件での経路探索も可能) POINT 「駅すぱあと API」では、経路探索APIを含め全46個のAPIを公開している
  10. Copyright Val Laboratory Corporation All Rights Reserved. アジェンダ 11 1

    2 3 弊社紹介 「駅すぱあと API MCPサーバー」について Tool設計における勘所や実践ノウハウ
  11. Copyright Val Laboratory Corporation All Rights Reserved. 12 MCP (Model

    Context Protocol) とは LLMが外部のデータやツールなどに接続するためのオープンプロトコルのこと リアルタイムな接続による「最新の情報の参照」「外部ツールの操作」などが可能になる MCPクライアント MCPサーバー (A) 外部データ (A) LLM 外部ツール (B) MCPサーバー (B)
  12. Copyright Val Laboratory Corporation All Rights Reserved. 13 MCPサーバーの仕様(提供できる機能) Tools

    (ツール) LLMが呼び出し可能な関数 • 外部APIの実行 • データベース操作 • 計算処理など Resources (リソース) LLMにデータを渡す仕組み • ファイルの内容 • データベースの内容 • 設定情報など Prompts (プロンプト) プロンプトのテンプレート • プロンプト集 • 引数に応じた動的な プロンプトなど どのような機能を実装してMCPサーバーで提供するかは、開発者の腕の見せどころ
  13. Copyright Val Laboratory Corporation All Rights Reserved. 14 Toolの実装方法(typescript-sdkの場合) import

    { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { z } from "zod"; const server = new McpServer({ name: "weather", version: "1.0.0" }); server.registerTool( "get_forecast", // Tool名の定義 // 入力スキーマの定義 (LLM向けのToolの説明文、パラメータ、など) { description: "Get weather forecast for a location", latitude: z.number(), longitude: z.number() }, // 任意の処理を実装(例: 外部API呼び出し) async ({ latitude, longitude }) => { … // MCP仕様に沿った形式で値を返す return { content: [{ type: "text", text: `Temperature: ${temperature}${unit}, ...`  }] } } ); WebAPIの開発経験があれば、 似た要領でToolを実装できる (それほど難しくはない) Toolの実装の流れ: ① Tool名を定義 ② 入力スキーマを定義 ③ 処理ロジックの実装 ④ 返り値を実装
  14. Copyright Val Laboratory Corporation All Rights Reserved. 15 「駅すぱあと API

    MCPサーバー」リリース 駅すぱあと API MCPサーバー LLM (AIエージェント) 駅すぱあと API 接続 接続 2026年1月15日に「駅すぱあと API」公式のMCPサーバーをリリース。 LLMによる経路探索や経費精算などが可能に。 ご紹介ページ
  15. Copyright Val Laboratory Corporation All Rights Reserved. Tool名 Toolの概要 内部で呼び出される「駅すぱあと

    API」 ekispert_api_get_stations (駅情報取得Tool) 駅の情報(駅名称、駅コード、 座標、など)を取得する • GET: /station/light (デフォルト) or • GET: /station ekispert_api_generate_condition (探索条件生成Tool) 経路探索で使用する詳細な 探索条件を生成する • GET: /toolbox/course/condition ekispert_api_search_routes (経路探索Tool) 2地点間(経由駅を含む)に おける経路探索を行う • GET: /search/course/extreme 16 MCPサーバーで提供しているToolの一覧(2026年5月時点) ツールの命名規則: ekispert_api_get_stations プレフィックス 動詞 名詞
  16. Copyright Val Laboratory Corporation All Rights Reserved. アジェンダ 18 1

    2 3 弊社紹介 「駅すぱあと API MCPサーバー」について Tool設計における勘所や実践ノウハウ
  17. Copyright Val Laboratory Corporation All Rights Reserved. 19 WebAPIをTool化する際のよくある悩み vs

    Small Tool: A Small Tool: B Small Tool: C API: A API: B API: C Large Tool: X API: A API: B API: C 複数のAPIを呼び出す ひとまとまりのToolにすべきか 個々のAPI毎にTool化すべきか
  18. Copyright Val Laboratory Corporation All Rights Reserved. 20 「駅すぱあと API

    MCPサーバー」で採用した方針 駅情報取得Tool 探索条件生成Tool 経路探索Tool 駅情報取得API 探索条件生成API 経路探索API 総合経路探索Tool 駅情報取得API 探索条件生成API 経路探索API vs 複数のAPIを呼び出す ひとまとまりのToolにすべきか 個々のAPI毎にTool化すべきか
  19. Copyright Val Laboratory Corporation All Rights Reserved. 「梅田」の文字列から駅の正式名称や駅コードを取得 22 デモ①の解説

    プロンプト: 「梅田から新大阪までの10時発の経路を調べて」 経路探索Tool 駅情報取得Tool 経路探索Tool 思考 ユーザーへの回答 ユーザーの指示 Input: viaList: 梅田:新大阪、time: 1000 → 🔴Error: 駅が見つかりません(梅田) Input: name: 梅田 → 🟢Success: 「梅田(地下鉄) / 29089」「大阪梅田(阪急線) / 25848」... 思考 思考 思考 Input: viaList: 29089:新大阪、time: 1000 → 🟢Success: (経路探索結果を取得) 入力された駅名があいまいでも、LLMが駅情報取得Toolを使って駅の正式名称や駅コードを取得してくれる(柔軟に対応してくれる)
  20. Copyright Val Laboratory Corporation All Rights Reserved. 24 デモ②の解説 プロンプト:

    「新宿から甲府まで、バスや特急をそれぞれ使う/使わない場合の明日10時発の経路を調べて」 並列実行 ユーザーへの回答 ユーザーの指示 探索条件生成Tool 探索条件生成Tool 探索条件生成Tool 探索条件生成Tool 経路探索Tool 経路探索Tool 並列実行 バス・特急を使う/使わない計4通りの探索条件を生成 各探索条件を使って、それぞれ経路探索を実行 パラメータを変えて同じツールを同時並行に複数回実行するなど、LLMが賢くToolを呼び出してくれる 経路探索Tool 経路探索Tool
  21. Copyright Val Laboratory Corporation All Rights Reserved. 25 「駅すぱあと API

    MCPサーバー」で採用した方針 駅情報取得Tool 探索条件生成Tool 経路探索Tool 駅情報取得API 探索条件生成API 経路探索API 総合経路探索Tool 駅情報取得API 探索条件生成API 経路探索API vs 複数のAPIを呼び出す ひとまとまりのToolにすべきか 個々のAPI毎にTool化すべきか → LLMがユーザーの要望に応じて柔軟な経路探索を行える
  22. Copyright Val Laboratory Corporation All Rights Reserved. 26 個人の見解:絶対的な正解はない(サービス毎で異なる) vs

    Small Tool: A Small Tool: B Small Tool: C API: A API: B API: C Large Tool: X API: A API: B API: C 複数のAPIを呼び出す ひとまとまりのToolにする場合 個々のAPI毎にTool化する場合 • LLMがToolを柔軟に組み合わせ可能 • Toolの再利用性・汎用性が高い • LLMがTool選択で迷いづらい • トークン消費・応答速度を抑えやすい
  23. Copyright Val Laboratory Corporation All Rights Reserved. コスト • 適切なトークン消費量かどうか

    • 適切なAPIコール数かどうか※ 効率性 • LLMが短時間で目的に到達できるか 27 個人の見解:Tool設計における観点 正確性 • LLMが意図通りのToolを選択できるか • LLMがユーザーの目的に到達できるか ※:特に、APIコール数に応じた従量課金モデルのMCPサーバーの場合
  24. Copyright Val Laboratory Corporation All Rights Reserved. 28 正確性 •

    LLMが意図通りのToolを選択できるか • LLMがユーザーの目的に到達できるか Tool: A Tool: B Tool: C LLM 利用可能なTool Tool: X LLM 利用可能なTool Toolを組み合わせて様々なタスクに対処可能 提供するToolが多い場合 提供するToolが少ない場合 使用すべきToolの判断を誤る確率が高まる 特定のタスクを確実に遂行できる 複雑な指示には応えられない可能性がある
  25. Copyright Val Laboratory Corporation All Rights Reserved. 29 効率性 •

    LLMが短時間で目的に到達できるか Tool: A 実行 Tool: B 実行 Tool: C 実行 思考&Tool選択 思考&Tool選択 思考&Tool選択 思考 ユーザーへの回答 ユーザーの指示 全体の 処理時間 Tool: X 実行 思考 思考&Tool選択 ユーザーへの回答 ユーザーの指示 全体の 処理時間 提供するToolが多い場合 提供するToolが少ない場合 効率性に関しては、呼び出す必要のあるToolが少ないほうが有利
  26. Copyright Val Laboratory Corporation All Rights Reserved. 30 効率性(「駅すぱあと API

    MCPサーバー」における工夫) 経路探索Tool ユーザーへの回答 ユーザーの指示 全体の 処理時間 駅情報取得Tool ユーザーの指示 全体の 処理時間 通常の経路探索フロー あいまいな駅名や複雑な探索条件が渡された場合 探索条件生成Tool 経路探索Tool ユーザーへの回答 「経路探索Tool」単独でも経路探索を行えるような作りにしている
  27. Copyright Val Laboratory Corporation All Rights Reserved. 31 コスト •

    適切なトークン消費量かどうか • 適切なAPIコール数かどうか Tool: A Tool: B Tool: C 利用可能なTool Tool: X 利用可能なTool 提供するToolが多い場合 提供するToolが少ない場合 LLM 使用可能な コンテキスト 領域 Toolをロードした コンテキスト領域 LLM 使用可能な コンテキスト 領域 Toolをロードした コンテキスト領域 トークン消費量を節約できれば、LLMの利用料を抑えられることに繋がる コスト面だけでなく、使用済みのコンテキストサイズを抑えるほど、LLMの作業の精度は上がる
  28. Copyright Val Laboratory Corporation All Rights Reserved. 32 コスト •

    適切なトークン消費量かどうか • 適切なAPIコール数かどうか 何らかの理由で、LLMが同一Toolを再実行する判断をした状況を仮定: 個々のAPIをTool化していた場合 複数のAPIを呼び出すToolにしていた場合 Small Tool: A Small Tool: B Small Tool: C API: A API: B API: C Large Tool: X API: A API: B API: C 「Small Tool: C」が再度呼び出されるとした場合、 実際に呼び出されるAPIは「C」のみで済む 「Large Tool: X」が再度呼び出されるとした場合、 不要に「A〜C」の各APIが呼び出されてしまう (仮にAPI「C」のみを呼び出したかったとしても)
  29. Copyright Val Laboratory Corporation All Rights Reserved. • レスポンス: 駅名、駅コード、交通種別

    • 無償 33 コスト(「駅すぱあと API MCPサーバー」における工夫) 駅簡易情報API 駅情報API 駅情報取得Tool • レスポンス: 駅名、駅コード、交通種別、駅の座標 • 有償 駅すぱあと API 駅すぱあと API MCPサーバー or 複数の似たようなAPIを1つのToolに統合することで、Toolロードによるトークン消費を抑えている (=似た様なToolを不要に複数作成しないようにしている) 指定されたパラメータに応じて いずれのAPIを呼び出すかを 内部処理で分岐している (デフォルト:駅情報API)
  30. Copyright Val Laboratory Corporation All Rights Reserved. 34 コスト(「駅すぱあと API

    MCPサーバー」における工夫) Tool名 内部で呼び出される「駅すぱあと API」 ekispert_api_get_stations (駅情報取得Tool) • 無償 GET: /station/light (デフォルト) or • 有償 GET: /station ekispert_api_generate_condition (探索条件生成Tool) • 無償 GET: /toolbox/course/condition ekispert_api_search_routes (経路探索Tool) • 有償 GET: /search/course/extreme 仮に、LLMが暴走しても(不要に様々なToolを呼び出してしまっても)、 基本的に「経路探索Tool」が呼び出されない限りは課金が発生しない仕組みになっている
  31. Copyright Val Laboratory Corporation All Rights Reserved. コスト • 適切なトークン消費量かどうか

    • 適切なAPIコール数かどうか※ 効率性 • LLMが短時間で目的に到達できるか 35 個人の見解:Tool設計における観点(再掲) 正確性 • LLMが意図通りのToolを選択できるか • LLMがユーザーの目的に到達できるか ※:特に、APIコール数に応じた従量課金モデルのMCPサーバーの場合
  32. Copyright Val Laboratory Corporation All Rights Reserved. 37 詳細は書籍で! 「Software

    Design 2026年4月号」にて 「駅すぱあと API MCPサーバー」の 開発ノウハウを寄稿させていただきました。 本日お話ししたような内容以外にも、 既存WebAPIをAIを活用して効率よくTool実装を 進めるための開発ノウハウなども紹介しています。 ご興味のある方は是非お読みください!
  33. Copyright Val Laboratory Corporation All Rights Reserved. 38 We are

    hiring! ヴァル研究所では、一緒に働く仲間を募集中です!! • フロントエンドエンジニア • アプリエンジニア • バックエンドエンジニア • ITソリューション営業、など • カジュアル面談も行っています! 採用情報
  34. Copyright Val Laboratory Corporation All Rights Reserved. 39 ご清聴ありがとうございました! 「駅すぱあと

    API MCPサーバー」 ご紹介ページ 90日間無料の評価版の アクセスキーもお申込み可能です!