Python 玩转 MCP:在工具函数中获取请求 Headers 的正确姿势
一、问题出现:工具函数里怎么拿请求信息?
假设你用 FastMCP 写了一个最简单的工具函数:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("My Server")
@mcp.tool(name="打招呼",description="简单的打招呼")
async def hello() -> str:
return "hello world"
这个函数很简单,运行也没问题。
但是一旦你想要在函数里获取请求头、用户信息、IP、Token 等信息(一般用于一些权限校验,数据打点等操作),就会发现:
函数没有直接的 Request 对象!
这时就要用到关键角色 —— ctx: Context