import os
from mcp.server import Server
from mcp.server.sse import SseServerTransport
from mcp.types import Tool, TextContent, CallToolResult
app = Server("my-mcp-server")
@app.list_tools()
async def list_tools() -> list[Tool]:
return [
Tool(
name="echo",
description="Echoes back whatever message you provide.",
inputSchema={
"type": "object",
"properties": {
"message": {"type": "string", "description": "The message to echo."},
},
"required": ["message"],
},
),
]
@app.call_tool()
async def call_tool(name: str, arguments: dict) -> CallToolResult:
if name == "echo":
message = arguments["message"]
return CallToolResult(content=[TextContent(type="text", text=message)])
raise ValueError(f"Unknown tool: {name}")