akseljoonas HF Staff commited on
Commit
00102c4
·
1 Parent(s): 61760c3

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
@@ -129,7 +129,7 @@ class ToolRouter:
129
  Based on codex-rs/core/src/tools/router.rs
130
  """
131
 
132
- def __init__(self, mcp_servers: dict[str, MCPServerConfig]):
133
  self.tools: dict[str, ToolSpec] = {}
134
  self.mcp_servers: dict[str, dict[str, Any]] = {}
135
 
@@ -140,7 +140,10 @@ class ToolRouter:
140
  if mcp_servers:
141
  mcp_servers_payload = {}
142
  for name, server in mcp_servers.items():
143
- mcp_servers_payload[name] = server.model_dump()
 
 
 
144
  self.mcp_client = Client({"mcpServers": mcp_servers_payload})
145
  self._mcp_initialized = False
146
 
 
129
  Based on codex-rs/core/src/tools/router.rs
130
  """
131
 
132
+ def __init__(self, mcp_servers: dict[str, MCPServerConfig], hf_token: str | None = None):
133
  self.tools: dict[str, ToolSpec] = {}
134
  self.mcp_servers: dict[str, dict[str, Any]] = {}
135
 
 
140
  if mcp_servers:
141
  mcp_servers_payload = {}
142
  for name, server in mcp_servers.items():
143
+ data = server.model_dump()
144
+ if hf_token:
145
+ data.setdefault("headers", {})["Authorization"] = f"Bearer {hf_token}"
146
+ mcp_servers_payload[name] = data
147
  self.mcp_client = Client({"mcpServers": mcp_servers_payload})
148
  self._mcp_initialized = False
149
 
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
  }