mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 07:09:11 +02:00
41 lines
951 B
Python
41 lines
951 B
Python
"""
|
|
FastMCP Echo Server with Metadata
|
|
|
|
Demonstrates how to return metadata alongside content and structured data.
|
|
The meta field can include execution details, versioning, or other information
|
|
that clients may find useful.
|
|
"""
|
|
|
|
import time
|
|
from dataclasses import dataclass
|
|
|
|
from fastmcp import FastMCP
|
|
from fastmcp.tools import ToolResult
|
|
|
|
mcp = FastMCP("Echo Server")
|
|
|
|
|
|
@dataclass
|
|
class EchoData:
|
|
data: str
|
|
length: int
|
|
|
|
|
|
@mcp.tool
|
|
def echo(text: str) -> ToolResult:
|
|
"""Echo text back with metadata about the operation."""
|
|
start = time.perf_counter()
|
|
|
|
result = EchoData(data=text, length=len(text))
|
|
|
|
execution_time = (time.perf_counter() - start) * 1000
|
|
|
|
return ToolResult(
|
|
content=f"Echoed: {text}",
|
|
structured_content=result,
|
|
meta={
|
|
"execution_time_ms": round(execution_time, 2),
|
|
"character_count": len(text),
|
|
"word_count": len(text.split()),
|
|
},
|
|
)
|