File size: 4,830 Bytes
1fe9b6d ae12b30 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
---
title: Gradio MCP Minimal
emoji: 🌍
colorFrom: blue
colorTo: blue
sdk: gradio
sdk_version: 5.26.0
app_file: app.py
pinned: false
---
<div align="center">

# 🚀 **Gradio MCP Minimal**
<p align="center">
<a href="https://www.python.org">
<img alt="Python" src="https://img.shields.io/badge/Python-3.12-blue?logo=python&logoColor=white">
</a>
<a href="https://www.gradio.app">
<img alt="Gradio" src="https://img.shields.io/badge/Gradio-5.26.0-orange?logo=gradio">
</a>
<a href="https://github.com/makiai/gradio-mcp-minimal/blob/main/LICENSE">
<img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-green">
</a>
<a href="https://github.com/makiai/gradio-mcp-minimal/stargazers">
<img alt="GitHub Stars" src="https://img.shields.io/github/stars/makiai/gradio-mcp-minimal?style=social">
</a>
<a href="https://huggingface.co/spaces/MakiAi/gradio-mcp-minimal">
<img alt="HF Spaces" src="https://img.shields.io/badge/Spaces-Live%20Demo-blueviolet?logo=huggingface&logoColor=white">
</a>
</p>
</div>
## ✨ 概要
このリポジトリは **最小構成** で Gradio アプリを立ち上げ、同時に **MCP (Model Context Protocol) サーバー** として機能させるサンプルです。
たった 1 つのファイルを実行するだけで、Web UI と MCP SSE エンドポイントの両方が手に入ります。
## 📄 ファイル構成
| ファイル / ディレクトリ | 役割 |
|------------------------|------|
| `app.py` | Gradio UI + MCP サーバー(`letter_counter` ツール) |
| `requirements.txt` | 依存パッケージ(`gradio[mcp]` のみ) |
| `assets/header.svg` | README 用ヘッダー画像(任意) |
## 📦 セットアップ
### 🚀 uv を使ったクイックスタート(推奨)
```bash
# 仮想環境の作成
uv venv
# 仮想環境の有効化
source .venv/bin/activate
# 依存インストール
uv pip install -r requirements.txt
```
### 🐍 標準 pip のみで実行したい場合
```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
## 🚀 実行
以下のコマンドを実行でローカルサーバーが起動します。
```bash
python app.py
```
- Web UI: <http://127.0.0.1:7860>
- MCP SSE エンドポイント: <http://127.0.0.1:7860/gradio_api/mcp/sse>
- UI フッター → **View API** → **MCP** をクリックすると、コピペ可能な設定 JSON が表示されます。
## ⚙️ MCP クライアント設定例
Claude Desktop / Cline などで `claude_desktop_config.json` 等に追記:
```jsonc
{
"mcpServers": {
"gradio-local": {
"url": "http://127.0.0.1:7860/gradio_api/mcp/sse"
}
}
}
```
クライアントを再起動すると `letter_counter` ツールが利用できるようになります 🎉
## 🔧 仕組み
```python
demo.launch(mcp_server=True)
```
この 1 行で Gradio アプリが SSE ベースの MCP サーバーとして動作します。
ドキュストリングと型ヒントから自動でスキーマが生成されます。
## 🌠 拡張方法
1. `app.py` に関数を追加し、適切なドキュストリングを記述
2. `Interface(...)` へ登録(または Blocks を使用)
3. 再起動すれば新しい MCP ツールとして自動公開
## 🛫 🤗 Spaces へ無料デプロイ
ファイル一式を Hugging Face Spaces (Gradio テンプレート) へプッシュすると、無料の公開 MCP サーバーになります:
```
https://<your-space>.hf.space/gradio_api/mcp/sse
```
例)`https://makiai-gradio-mcp-minimal.hf.space/gradio_api/mcp/sse`
## 🔗 MCP クライアント設定例 (Spaces)
Spaces で公開したサーバーを **MCP クライアント(Claude Desktop / Cline など)** から呼び出す手順です。
1. **エンドポイント URL**
```
https://<your-space>.hf.space/gradio_api/mcp/sse
```
例)`https://makiai-gradio-mcp-minimal.hf.space/gradio_api/mcp/sse`
2. **config 追記例** (`claude_desktop_config.json` 等)
```jsonc
{
"mcpServers": {
"gradio-space": { // 任意の名前
"url": "https://makiai-gradio-mcp-minimal.hf.space/gradio_api/mcp/sse"
}
}
}
```
3. **動作確認**
クライアントを再起動 → Tool Palette で `server = gradio-space` を選択 →
`letter_counter` ツールに `text: "hello"` を送信し、`length: 5` が返れば接続完了です 🎉
## 📝 ライセンス
MIT
## Memo
```bash
codex -a --full-auto -m o3 "まずは codex-rules.md を確認して、その後、gMaL.md を参考にして、app.py で色々なパターンのおみくじアプリ Gradio MCPを作成して"
``` |