コンテンツにスキップ

mcp-stdio

MCP(Model Context Protocol)サーバーのための、最小構成の stdio ⇄ HTTP ゲートウェイ。小さな Python パッケージひとつ、ランタイム依存は httpx だけ。役割はふたつ:

  • stdio しか話せない MCP クライアント(Claude Desktop、Claude Code など)を リモートの HTTP MCP サーバーに接続する——OAuth 2.1 ログイン、トークン 保存、リフレッシュ込みで。
  • ローカルの stdio MCP サーバーを、OAuth 2.1 認可サーバー内蔵の Streamable HTTP エンドポイントとして公開する——マルチユーザー、 セッション分離で。

どちらが必要か迷ったら、まず ふたつの使い方 へ。

インストール

# Homebrew
brew install shigechika/tap/mcp-stdio

# または PyPI
pip install mcp-stdio

# インストールせずに実行
uvx mcp-stdio --help

30 秒クイックスタート

OAuth ログインが必要なリモート MCP サーバーを Claude Desktop につなぐ—— claude_desktop_config.json に次を追加するだけです:

{
  "mcpServers": {
    "my-remote-server": {
      "command": "mcp-stdio",
      "args": ["--oauth", "https://mcp.example.com/mcp"]
    }
  }
}

初回利用時にブラウザが開いてログインを求められます。トークンは ~/.config/mcp-stdio/tokens.json にキャッシュされ、以後は自動で リフレッシュされます。

これが「クライアント」側です。逆方向——自作の stdio MCP サーバーを HTTPS で公開する——は stdio サーバーを公開する を参照してください。

なぜ存在するのか

MCP のクライアントとサーバーはトランスポートの解釈が常に一致するとは 限らず、OAuth の細部も実装ごとに異なり、その差は実際のデプロイで表面化 します。mcp-stdio はその中間に立って差異を吸収します:MCP 仕様と OAuth 関連 RFC に忠実に従い、 既知の相互運用ギャップ を回避し、監査できる小ささを保っています。

機能一覧と標準準拠の詳細は README へ。