Skip to content

MCPToolset ignores auth_scheme/auth_credential during initialization and tool listing #2168

@chyok

Description

@chyok

Describe the bug

When passing auth_scheme and auth_credential to MCPToolset, the authentication is not performed during the MCP initialization and tool listing phases. This results in a failure when using authenticated MCP services.

To Reproduce

Steps to reproduce the behavior:

1.Install the MCP server:

pip install fastmcp  

2.Run the following MCP server code:

from fastmcp import FastMCP
from fastmcp.server.auth import BearerAuthProvider
from fastmcp.server.auth.providers.bearer import RSAKeyPair

key_pair = RSAKeyPair.generate()

auth = BearerAuthProvider(
    public_key=key_pair.public_key,
    issuer="https://dev.example.com",
    audience="my-dev-server"
)

token = key_pair.create_token(
    subject="test_user",
    issuer="https://dev.example.com"
)

print("token:", token) # paste the token to next

mcp = FastMCP(name="My MCP Server", auth=auth)

@mcp.tool
def real_time() -> str:
    return "2025-07-24 12:30"

if __name__ == "__main__":
    mcp.run(port=8080)
  1. Use the following ADK client code to access the server:
from google.adk.agents.llm_agent import LlmAgent
from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPServerParams
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset
from google.adk.tools.openapi_tool.auth.auth_helpers import token_to_scheme_credential

token = "your paste token"
auth_scheme, auth_credential = token_to_scheme_credential(
    "oauth2Token", "header", "Authorization", token
)

root_agent = LlmAgent(
    model="gemini-2.0-flash",
    name='Assistant',
    instruction="""You are a professional assistant with access to real-time tool.""",
    tools=[
        MCPToolset(
            connection_params=StreamableHTTPServerParams(
                url='https://127.0.0.1:8080/mcp/',
            ),
            auth_scheme=auth_scheme,
            auth_credential=auth_credential
        )
    ],
)
  1. Run agent and ask any question.

  2. See the error due to missing authentication.

Expected behavior

The MCPToolset should correctly apply the auth_scheme and auth_credential during the initialization and tool listing phases, ensuring authentication occurs as expected and the tool can be invoked successfully.

Screenshots

Image

Desktop:

  • OS: Mac OS
  • Python version: python 3.11.9
  • ADK version: v1.8.0

Model Information:

Model: gemini-2.0-flash

Additional context

Metadata

Metadata

Assignees

Labels

bot triaged[Bot] This issue is triaged by ADK bottools[Component] This issue is related to tools

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions