Spaces:
Running
Running
import os | |
import gradio as gr | |
def letter_counter(text: str, letter: str) -> int: | |
""" | |
Count the number of occurrences of a letter in a given text. | |
Args: | |
text (str): Text to search through. | |
letter (str): Letter to count. | |
Returns: | |
int: How many times `letter` appears in `text`. | |
""" | |
return text.lower().count(letter.lower()) | |
# --- Components ----------------------------------------------------------- | |
# 明示的に label を指定して API 名を関数引数と一致させることで、 | |
# MCP 経由の JSON キー不一致("text_1" 問題)を解消するよ ✨ | |
text_input = gr.Textbox( | |
label="text", | |
placeholder="Enter text here" | |
) | |
letter_input = gr.Textbox( | |
label="letter", | |
placeholder="Enter a single letter", | |
max_lines=1 | |
) | |
count_output = gr.Number(label="count") | |
# --- Interface ------------------------------------------------------------ | |
demo = gr.Interface( | |
fn=letter_counter, | |
inputs=[text_input, letter_input], | |
outputs=count_output, | |
title="Letter Counter (MCP demo)", | |
description="Enter text & a letter – count occurrences. Launches with MCP automatically.", | |
api_name="letter_counter" | |
) | |
if __name__ == "__main__": | |
# mcp_server=True starts the SSE endpoint at /gradio_api/mcp/sse | |
# server_name="0.0.0.0" で全ネットワークインターフェースにバインドし、別PCからアクセス可能にするよ! | |
# PORT 環境変数があればそれを使い、無ければデフォルト 7860✨ | |
demo.launch( | |
mcp_server=True, | |
server_name="0.0.0.0", | |
server_port=int(os.getenv("PORT", 7860)), | |
) |