Spaces:
Runtime error
Runtime error
| """Gradio MCP server implementation for Hugging Face Spaces.""" | |
| import gradio as gr | |
| # MCP対応のツール関数を定義(型ヒントとdocstringが必須) | |
| def echo(text: str) -> str: | |
| """Return the provided text unchanged. | |
| Args: | |
| text: The text to echo back | |
| Returns: | |
| The same text that was provided | |
| """ | |
| return text | |
| def reverse_text(text: str) -> str: | |
| """Reverse the provided text. | |
| Args: | |
| text: The text to reverse | |
| Returns: | |
| The reversed text | |
| """ | |
| return text[::-1] | |
| def count_words(text: str) -> int: | |
| """Count the number of words in the text. | |
| Args: | |
| text: The text to count words in | |
| Returns: | |
| The number of words in the text | |
| """ | |
| return len(text.split()) | |
| # Gradioインターフェースを作成 | |
| with gr.Blocks(title="MCP Sample Server", theme=gr.themes.Soft()) as demo: | |
| gr.Markdown( | |
| """ | |
| # MCP Sample Server | |
| This Space provides MCP-compatible tools that can be used with Claude.ai and other MCP clients. | |
| ## Available Tools: | |
| - **echo**: Returns the provided text unchanged | |
| - **reverse_text**: Reverses the provided text | |
| - **count_words**: Counts the number of words in the text | |
| ## How to connect: | |
| 1. Go to https://huggingface.co/settings/mcp | |
| 2. Set up your MCP client (Claude.ai) | |
| 3. Click the MCP badge on this Space and select "Add to MCP tools" | |
| 4. The tools will be available in your MCP client | |
| """ | |
| ) | |
| with gr.Tab("Echo Tool"): | |
| with gr.Row(): | |
| echo_input = gr.Textbox(label="Input Text", placeholder="Enter text to echo") | |
| echo_output = gr.Textbox(label="Output", interactive=False) | |
| echo_btn = gr.Button("Echo") | |
| echo_btn.click(echo, inputs=echo_input, outputs=echo_output) | |
| with gr.Tab("Reverse Tool"): | |
| with gr.Row(): | |
| reverse_input = gr.Textbox(label="Input Text", placeholder="Enter text to reverse") | |
| reverse_output = gr.Textbox(label="Reversed Text", interactive=False) | |
| reverse_btn = gr.Button("Reverse") | |
| reverse_btn.click(reverse_text, inputs=reverse_input, outputs=reverse_output) | |
| with gr.Tab("Word Count Tool"): | |
| with gr.Row(): | |
| count_input = gr.Textbox(label="Input Text", placeholder="Enter text to count words") | |
| count_output = gr.Number(label="Word Count", interactive=False) | |
| count_btn = gr.Button("Count Words") | |
| count_btn.click(count_words, inputs=count_input, outputs=count_output) | |
| # 重要: mcp_server=True を指定してMCPサーバーとして公開 | |
| if __name__ == "__main__": | |
| demo.launch(mcp_server=True) |