見出し画像

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番目の設定以外特に変わったことはしていませんね。

  1. 単語内の特定の文字の出現回数をカウントする関数を定義

  2. Gradioインターフェースを作成し、その関数をウェブUIとして公開

  3. 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行のコードとして示しておきます。
これがサンプルコードの本質です。

  1. Gradioをインポート

  2. ツールとなる関数を定義(letter_counter)

  3. 関数の処理内容を実装

  4. 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はこのツールを呼び出して正確に回答できるようになります。



いいなと思ったら応援しよう!