File size: 1,047 Bytes
1d54ed8 e7206f6 80dc3a4 1d54ed8 80dc3a4 1d54ed8 e7206f6 1d54ed8 80dc3a4 1d54ed8 80dc3a4 1d54ed8 80dc3a4 1d54ed8 692e2cd d3ac497 1d54ed8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
from fastmcp import FastMCP
from fastmcp.server.dependencies import get_http_headers
mcp = FastMCP("My MCP Server")
@mcp.tool
def greet() -> str:
headers = get_http_headers()
print(f"Received headers: {headers}")
name = headers.get("x-given-name", "unknown")
return f"Hello, {name}!"
@mcp.tool
async def safe_header_info() -> dict:
"""Safely get header information without raising errors."""
# Get headers (returns empty dict if no request context)
headers = get_http_headers()
# Get authorization header
auth_header = headers.get("authorization", "")
is_bearer = auth_header.startswith("Bearer ")
return {
"user_agent": headers.get("user-agent", "Unknown"),
"content_type": headers.get("content-type", "Unknown"),
"has_auth": bool(auth_header),
"auth_type": "Bearer" if is_bearer else "Other" if auth_header else "None",
"headers_count": len(headers),
}
if __name__ == "__main__":
mcp.run(transport="streamable-http", port=8000, host="0.0.0.0") |