Skip to content

Python: [Bug]: mcp server can not receive self-define header #7161

Description

@changyao-han

Description

I define mcp and function_middleware below, but when "tools/call", mcp server can not receive self-define header Authorization:

mcp_server = MCPStreamableHTTPTool(
    name="powergridcasemcp",
    load_prompts=False,
    url="http://127.0.0.1:8000/mcp",
    header_provider=header_provider=lambda kwargs: {"Authorization": f"Bearer {kwargs['mcp_api_key']}"},
)


@function_middleware
async def function_inject_kwargs(context, call_next) -> None:
    """Middleware that adds tool-only runtime values before execution."""
    context.kwargs.setdefault("mcp_api_key", "123")
    await call_next()

i debug find:
_mcp.py 3106 token = _mcp_call_headers.set(headers) exec set success
_mcp.py 3074 headers = _mcp_call_headers.get({}) exec get {}

_mcp.py 113 _mcp_call_headers: contextvars.ContextVar[dict[str, str]] = contextvars.ContextVar("_mcp_call_headers")

Code Sample

Error Messages / Stack Traces

Package Versions

agent-framework-core: 1.11.0

Python Version

No response

Additional Context

No response

Metadata

Metadata

Labels

pythonUsage: [Issues, PRs], Target: PythonreproducedUsage: [Issues], Target: all issues that can be reproduced by the triage workflow

Type

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions