mcpField
B
Baton

Baton

ローカル
baton.dudko.dev開発ツール06 日前に更新

Baton について

Batonは、リクエスト、コレクション、環境をYAMLファイルで管理するAPIワークスペース向けのローカルMCPサーバーです。ファイルモードとデスクトップアプリモードがあり、編集の確認や実行の承認を制御できます。

主な機能

  1. 01リクエスト・コレクション・環境の読み書き
  2. 02リクエストと共有スクリプトの編集
  3. 03リクエストまたはコレクション全体の実行
  4. 04保存済みレスポンスからのモック提供
  5. 05アプリモードでの下書きと確認

活用シーン

  1. 01GitワークスペースでのAPIリクエスト管理
  2. 02アプリで確認するリクエスト案の作成
  3. 03必要に応じたリクエストやコレクションの実行
  4. 04保存済みレスポンスを使ったモックテスト

MCP 対応

stdioでローカル実行するMCPサーバーで、Batonのワークスペース、リクエスト、環境、スクリプト、モック用ツールを公開します。ファイルモードではYAMLを書き込み、アプリモードでは編集を下書きにし、送信や削除に確認を求めます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dev-dudko-baton": {
"command": "npx",
"args": [
"-y",
"@dudko.dev/baton-mcp"
]
}
}
}
起動コマンドnpx -y @dudko.dev/baton-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@dudko.dev/baton-mcp0.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Baton — MCP のセットアップ

AI アシスタントが Baton ワークスペースで作業できるようにします。 Baton は Git ネイティブの API クライアント(Postman の代替製品)です。リクエスト、コレクション、 環境は、所有するリポジトリ内の通常の YAML ファイルです。MCP サーバーは ローカルで実行され、1 つの設定で、起動時に選択する 2 つのモードに対応します。

  • ファイルモード — ワークスペースで Baton アプリが開いていない場合、編集は YAML ファイルへの書き込みです。アプリが書き込むものと同じバイト列が書き込まれ、 他の変更と同様に Git のレビューを経ます。

  • アプリモード — ワークスペースでデスクトップアプリが開いている場合、編集は リクエストのタブに下書きとして反映され、承認するか破棄できます。送信は アプリを経由して実行され、アプリのシークレットが使われます。本番環境への送信や 削除には確認が必要です。また、アシスタントは、現在開いているリクエストと環境を 認識できます。

  • サーバー: baton

  • トランスポート: stdio(ローカルプロセス)

  • パッケージ: @dudko.dev/baton-mcp — Node.js 24+

  • 認証: なし — ユーザーの権限でローカル実行されます。シークレットがサーバーを経由することはありません。

できること

ファイルモードでは、アシスタントはワークスペースの読み取りと書き込みができますが、 --allow-run を追加しない限り、リクエストは送信できません。アプリモードでは、 すべての送信が画面上のアプリを経由します。

ツール内容
workspace_infoコレクション、環境、スケジュール、読み込み時の問題、アプリが接続されているかどうかを確認します。
list_requestsメソッド、URL、タグを含むリクエストを一覧表示します。コレクションを指定して絞り込むこともできます。
get_requestパース済みリクエスト、生の YAML、認証情報の取得元を表示します。シークレットは参照情報としてのみ表示されます。
upsert_requestリクエストを決定的な YAML として書き込む(ファイルモード)か、アプリ内で下書きとして提案します。
move_requestID とスクリプトを維持したまま、リクエストを移動または名前変更します。
delete_requestリクエストを削除します。アプリモードでは確認後に削除します。
upsert_collectionコレクションまたはフォルダーを作成または置換します。変数、認証、順序を設定できます。
list_environments変数とシークレットの名前を、それぞれのシークレットの参照元とともに一覧表示します。
upsert_environment環境を書き込みます(シークレット名のみ。シークレットの参照先には Vault を指定できます)。
get_script / upsert_scriptリクエスト前、テスト、共有ライブラリのスクリプトを読み書きします。
run_request / run_collectionリクエストを実行するか、コレクション内のすべてのリクエストを実行します。ファイルモードでは --allow-run が必要です。アプリモードではアプリを経由して送信します。
list_examples / save_exampleリクエストの保存済みレスポンスを一覧表示し、最後のレスポンスを保存します。
list_mocks / start_mock / stop_mockmocks/<name>.yaml から 127.0.0.1 上にモックを起動し、サンプルを使って応答します。
app_state / select_requestアプリモード専用:アプリ内で開いている内容を確認し、アプリ内でリクエストを開きます。

アプリモードでは、リソース baton://app/state と baton://app/selection を サブスクライブできます。アシスタントはクリック、承認された下書き、送信の完了を 発生と同時に認識できます。


Claude Code にインストールする(プラグイン)

/plugin marketplace add dudko-dev/baton-mcp-setup
/plugin install baton@baton
/reload-plugins

プラグインは現在のプロジェクトディレクトリでサーバーを起動するため、Baton ワークスペース(baton.yaml があるフォルダー)で Claude Code を開いてください。アプリモードを使うには、同じワークスペースで Baton アプリを開きます。サーバーの接続先を変更する場合や、 ファイルモードでアシスタントにリクエストを実行させる場合は、代わりに以下の手順で --workspace <dir> および/または --allow-run を指定して手動で追加してください。アプリでは、Settings → Agents から ワークスペースに .mcp.json を書き込めます。

マーケットプレイスを使わない場合は、サーバーを直接追加してください。

claude mcp add baton -- npx -y @dudko.dev/baton-mcp --workspace /path/to/workspace

他のクライアントから接続する

Claude Desktop

claude_desktop_config.json(Settings → Developer → Edit Config):

{
  "mcpServers": {
    "baton": {
      "command": "npx",
      "args": [
        "-y",
        "@dudko.dev/baton-mcp"
      ]
    }
  }
}
Cursor

~/.cursor/mcp.json または .cursor/mcp.json:

{
  "mcpServers": {
    "baton": {
      "command": "npx",
      "args": [
        "-y",
        "@dudko.dev/baton-mcp"
      ]
    }
  }
}
VS Code(GitHub Copilot / MCP)およびその他のクライアント
{
  "servers": {
    "baton": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@dudko.dev/baton-mcp"
      ]
    }
  }
}

安全性

  • ファイルモードでは、リクエストの実行はデフォルトで無効です。 アシスタントにリクエストを送信させる場合に限り、引数に --allow-run を追加してください。ファイルの編集によって、リクエストが気付かないうちに送信されることはありません。
  • アプリモードでは、常にユーザーが確認できます。 編集内容は下書きとして届き、承認または破棄できます。本番環境への送信と削除は、アプリでの確認後にのみ実行されます。
  • シークレットはワークスペースの外に保管されます。 サーバーが読み書きするのは、シークレットの名前と {{secret:name}} 参照のみです。値は OS のセキュアストアまたは Vault に保管され、参照が必要な箇所に平文の値がある場合は拒否されます。レスポンスは値に基づいてマスクされ、本文は切り詰められます。また、Authorization、Cookie、Set-Cookie、X-API-Key は名前に置き換えられます。
  • サーバーが git に触れることはありません。 コミットはユーザー自身が行います。
フラグ意味
--workspace <dir>ワークスペースのルート、つまり baton.yaml があるフォルダーです(デフォルト:現在のディレクトリ)。
--allow-runファイルモードでエージェントにリクエストを実行させます。デフォルトでは無効です。アプリモードでの送信はアプリを経由します。
--agent <name>アプリのバナーや確認画面で使用する、このエージェントの名前です。

トラブルシューティング

  • 「not a Baton workspace」/クライアントに「Connection closed」と表示される — フォルダーに baton.yaml がない場合、サーバーは起動時に終了します。ワークスペースで Claude Code を開くか、--workspace /path/to/workspace を指定してサーバーを手動で追加してください。
  • run_request が拒否される — サーバーはファイルモードです。--allow-run を追加するか、ワークスペースで Baton アプリを開き、サーバーを再起動してアプリモードにしてください。
  • アプリを開いているのに、編集内容がファイルに直接書き込まれる — モードはサーバーの起動時に決まります。そのワークスペースでアプリを開いた後、クライアントの MCP サーバーを再起動してください。
  • npm warn EBADENGINE … required: { node: '>=24' } の後、何も起きない — サーバーには Node.js 24 以降が必要です。クライアントが起動するシェルで node --version を実行してください。

サポート

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。