Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Commit ·
30aa6c1
1
Parent(s): f1d8fd6
fix: inject OAuth token into MCP server headers at runtime
Browse filesToolRouter 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 +5 -2
- backend/session_manager.py +1 -1
- configs/main_agent_config.json +1 -4
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 |
-
|
|
|
|
|
|
|
|
|
|
| 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 |
}
|