nikkie-ftnextの日記

イベントレポートや読書メモを発信

Hugging FaceのGradioがMCPサーバにもMCPクライアントにもなると聞いて🤗

はじめに

七尾百合子さん、お誕生日 45日目 おめでとうございます! nikkieです。

MCP界に新星登場です🌟

目次

Gradioへの注目

からあげさん経由で知りました。

Every Gradio app will be an MCP server soon.

GradioアプリはMCPクライアント、MCPサーバ両方として機能する
な、なんだってーー!!

なお私のGradioの理解は、Hugging Faceが作っているStreamlit1みたいなもの程度です。
今回初めて触りました。

Gradioでお天気MCPサーバ

GradioアプリがMCPサーバにもなる機能がリリースされました。
ツールにしたい関数を指定してmcp_server=Trueと立ち上げるだけです

MCPのドキュメントのQuickstartにある、天気のMCPサーバ2をGradioで実装します3

% uv run --python 3.12 gradio_mcp_server.py

🔨 MCP server (using SSE) running at: http://127.0.0.1:7860/gradio_api/mcp/sse

Inspector4で動作確認。
SSEで接続します5

雑感

いいなあと思ったのは、Hugging Face Spaces。
https://www.gradio.app/guides/building-mcp-server-with-gradio#key-features-of-the-gradio-mcp-integration
SSEのMCPサーバがSpacesで手軽に動かせます
Cloudflare WorkersでもMCPサーバを動かせると聞いていますが、私にはSpacesの方が身近です

実装のgr.Interfaceですが、fn引数にはCallable1つしか渡せないようです。
https://www.gradio.app/docs/gradio/interface
このことから、MCPサーバとして提供するツールは1つだけと思われます。
手軽にMCPサーバが立てられるのはよいですが、1つのツールだけで済むことは稀だと思うので、MCPPython SDKの方が本格的な開発には向くと考えます

GradioはMCPクライアントにもなるらしい

関連ドキュメントを示します。

MCP公式ドキュメントのクライアントの例をGradioで実装しているという印象です

終わりに

GradioがサポートしたMCPサーバ機能を触りました。

  • 手軽にSSEのMCPサーバが立てられる!
  • Hugging Face Spacesで動かせる!(検証したい)
  • ただし、1つのツールしか指定できない模様

fastapi-mcpも登場しましたし、著名なライブラリのMCPサポートの流れが続く気がします。
なんというかMCPCLIAPIと並ぶインターフェースのポジションを確立しそうですね


  1. 直近のStreamlit記事
  2. 過去にMCPPython SDKを使って実装しました
  3. 私気づいちゃいました。PEP 723 (inline script metadata) を使ってMCPサーバが書けますね!
  4. 過去にPython SDKでSSEを試しています