Maki
Initial commit
ca2480e unverified
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)),
)