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

Assignees

No one assigned

    Labels

    pythonUsage: [Issues, PRs], Target: PythonreproducedUsage: [Issues], Target: all issues that can be reproduced by the triage workflowtriageUsage: [Issues], Target: All issues that still need to be triaged

    Type

    Fields

    No fields configured for Bug.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions