akseljoonas HF Staff commited on
Commit
30aa6c1
·
1 Parent(s): f1d8fd6

fix: inject OAuth token into MCP server headers at runtime

Browse files

ToolRouter now accepts hf_token and injects Authorization header
into MCP server configs per-session. Config no longer needs HF_TOKEN
at load time — auth is added when the session's ToolRouter is created.

agent/core/tools.py CHANGED
@@ -135,7 +135,7 @@ class ToolRouter:
135
  Based on codex-rs/core/src/tools/router.rs
136
  """
137
 
138
- def __init__(self, mcp_servers: dict[str, MCPServerConfig]):
139
  self.tools: dict[str, ToolSpec] = {}
140
  self.mcp_servers: dict[str, dict[str, Any]] = {}
141
 
@@ -146,7 +146,10 @@ class ToolRouter:
146
  if mcp_servers:
147
  mcp_servers_payload = {}
148
  for name, server in mcp_servers.items():
149
- mcp_servers_payload[name] = server.model_dump()
 
 
 
150
  self.mcp_client = Client({"mcpServers": mcp_servers_payload})
151
  self._mcp_initialized = False
152
 
 
135
  Based on codex-rs/core/src/tools/router.rs
136
  """
137
 
138
+ def __init__(self, mcp_servers: dict[str, MCPServerConfig], hf_token: str | None = None):
139
  self.tools: dict[str, ToolSpec] = {}
140
  self.mcp_servers: dict[str, dict[str, Any]] = {}
141
 
 
146
  if mcp_servers:
147
  mcp_servers_payload = {}
148
  for name, server in mcp_servers.items():
149
+ data = server.model_dump()
150
+ if hf_token:
151
+ data.setdefault("headers", {})["Authorization"] = f"Bearer {hf_token}"
152
+ mcp_servers_payload[name] = data
153
  self.mcp_client = Client({"mcpServers": mcp_servers_payload})
154
  self._mcp_initialized = False
155
 
backend/session_manager.py CHANGED
@@ -131,7 +131,7 @@ class SessionManager:
131
 
132
  def _create_session_sync():
133
  t0 = _time.monotonic()
134
- tool_router = ToolRouter(self.config.mcpServers)
135
  session = Session(
136
  event_queue, config=self.config, tool_router=tool_router,
137
  hf_token=hf_token,
 
131
 
132
  def _create_session_sync():
133
  t0 = _time.monotonic()
134
+ tool_router = ToolRouter(self.config.mcpServers, hf_token=hf_token)
135
  session = Session(
136
  event_queue, config=self.config, tool_router=tool_router,
137
  hf_token=hf_token,
configs/main_agent_config.json CHANGED
@@ -9,10 +9,7 @@
9
  "_mcpServers_disabled": {
10
  "hf-mcp-server": {
11
  "transport": "http",
12
- "url": "https://huggingface.co/mcp?login",
13
- "headers": {
14
- "Authorization": "Bearer ${HF_TOKEN:-}"
15
- }
16
  }
17
  }
18
  }
 
9
  "_mcpServers_disabled": {
10
  "hf-mcp-server": {
11
  "transport": "http",
12
+ "url": "https://huggingface.co/mcp?login"
 
 
 
13
  }
14
  }
15
  }