Files
2026-08-05 18:52:13 +09:00

48 lines
1.2 KiB
Python

import os
import random
import requests
from mcp.server.mcpserver import MCPServer
STREAMABLE_HTTP_HOST = os.getenv("STREAMABLE_HTTP_HOST", "127.0.0.1")
STREAMABLE_HTTP_PORT = int(os.getenv("STREAMABLE_HTTP_PORT", "18080"))
# Create server
mcp = MCPServer("Echo Server")
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
print(f"[debug-server] add({a}, {b})")
return a + b
@mcp.tool()
def get_secret_word() -> str:
print("[debug-server] get_secret_word()")
return random.choice(["apple", "banana", "cherry"])
@mcp.tool()
def get_current_weather(city: str) -> str:
print(f"[debug-server] get_current_weather({city})")
# Avoid slow or flaky network calls during automated runs.
try:
endpoint = "https://wttr.in"
response = requests.get(f"{endpoint}/{city}", timeout=2)
if response.ok:
return response.text
except Exception:
pass
# Fallback keeps the tool responsive even when offline.
return f"Weather data unavailable right now; assume clear skies in {city}."
if __name__ == "__main__":
mcp.run(
transport="streamable-http",
host=STREAMABLE_HTTP_HOST,
port=STREAMABLE_HTTP_PORT,
)