Gradioでmcpサーバーが簡単に作れるようになったようです。
こんにちは、makokonです。
Gradioでは、mcpサーバーを簡単に実装する機能が実装されたようです。
本質的には、通常のGradioアプリの最後に
mcp_server=True を設定する
だけでできるので、LLMチャットアプリに自作のツールを加えて、パワーアップできそうです。
この記事では、サーバーの登録を簡単に紹介します。
(後日、自作アプリ内でのmcpサーバー呼び出し報告をしてみたいと思います)
How to Build an MCP Server in 5 Lines of Python
何を実現したか
Gradioは「Model Context Protocol(MCP)サーバー機能」を実現しました。
これにより、Gradioで作成したアプリケーション(画像生成器や計算ツールなど)をLLM(大規模言語モデル)が「ツール」として呼び出せるようになりました。
つまり、LLMがPythonで作られた様々な機能(画像編集、音声合成、特殊計算など)を利用できるようになり、LLMの能力を大幅に拡張できるようになりました。
具体的なサンプルコード
まずは実際にどんなコードで実現するのかを見てみましょう。
「単語内の特定の文字の出現回数をカウントする」機能を実装
このシンプルな例は、LLMが苦手とする「文字数カウント」のような計算をLLMが外部ツールとして利用できるようにするデモンストレーションです。
3番目の設定以外特に変わったことはしていませんね。
単語内の特定の文字の出現回数をカウントする関数を定義
Gradioインターフェースを作成し、その関数をウェブUIとして公開
mcp_server=True を設定することで、同じ機能をLLMが使えるMCPサーバーとしても公開
import gradio as gr
def letter_counter(word, letter):
"""Count the occurrences of a specific letter in a word.
Args:
word: The word or phrase to analyze
letter: The letter to count occurrences of
Returns:
The number of times the letter appears in the word
"""
return word.lower().count(letter.lower())
demo = gr.Interface(
fn=letter_counter,
inputs=["text", "text"],
outputs="number",
title="Letter Counter",
description="Count how many times a letter appears in a word"
)
demo.launch(mcp_server=True)一応タイトルが5行のパイソンなので
上記コードをタイトルに合わせて5行のコードとして示しておきます。
これがサンプルコードの本質です。
Gradioをインポート
ツールとなる関数を定義(letter_counter)
関数の処理内容を実装
Gradioインターフェースを作成
import gradio as gr
def letter_counter(word, letter):
return word.lower().count(letter.lower())
demo = gr.Interface(fn=letter_counter, inputs=["text", "text"], outputs="number")
demo.launch(mcp_server=True)mcpサーバーの呼び出し設定サンプル
直接MCPサーバーを呼び出すクライアント側のコードは示されていませんが、MCPクライアント(Claude Desktop、Cursor、Clineなど)での設定方法が説明されています。
クライアント側での設定は以下のようなJSON形式のコンフィグを使用します:
{
"mcpServers": {
"gradio": {
"url": "http://your-server:port/gradio_api/mcp/sse"
}
}
}
これはMCPクライアントの設定ファイルに追加するもので、「your-server:port」の部分は実際のサーバーのURLとポート番号に置き換えます。
例えば、Hugging Face Spacesでホストされているサンプル用のコンフィグは:
{
"mcpServers": {
"gradio": {
"url": "https://abidlabs-mcp-tools.hf.space/gradio_api/mcp/sse"
}
}
}このコンフィグを追加すると、LLM(ClaudeやGPTなど)は会話の中でこのツールを使用できるようになります。例えば、「strawberryという単語の中に'r'は何回出てくる?」という質問に対して、LLMはこのツールを呼び出して正確に回答できるようになります。
