HTTP Request Access in Hyperia Servers
Added in v2.2.11 – seamlessly reach Starlette Request objects from inside tools, resources, prompts, or any helper buried five calls deep.
1 get_http_request() Helper
get_http_request() Helperfrom hyperia.server.dependencies import get_http_request # starlette.req proxy
from starlette.requests import Request
@mcp.tool()
async def whois():
req: Request = get_http_request() # 👍 safe anywhere in call‑stack
return {
"ua": req.headers.get("user-agent", "?"),
"ip": req.client.host if req.client else "?",
"path": req.url.path,
}Key Points
2 Typical Use‑Cases
2.1 Auth Header Introspection
2.2 Tenant Resolution via Custom Header
2.3 Query Param Parsing
3 Advanced Patterns
3.1 Store Request on Context for Down‑Stream Helpers
3.2 Custom Middleware Injection
3.3 Ensuring Availability for Mounted Servers
4 Security & Edge‑Cases
Scenario
Behaviour
5 Unit‑Testing Helpers
6 Migration Notes (≤ v2.2.10)
7 Recap Checklist
Last updated