diff --git a/components/mcp-server-manager.tsx b/components/mcp-server-manager.tsx index 8f31d18f..2d317b8c 100644 --- a/components/mcp-server-manager.tsx +++ b/components/mcp-server-manager.tsx @@ -167,7 +167,8 @@ export const MCPServerManager = ({ const [editingHeaderIndex, setEditingHeaderIndex] = useState(null); const [editedEnvValue, setEditedEnvValue] = useState(''); const [editedHeaderValue, setEditedHeaderValue] = useState(''); - + const [bearerToken, setBearerToken] = useState(""); + // Add access to the MCP context for server control const { startServer, stopServer, updateServerStatus } = useMCP(); @@ -212,6 +213,24 @@ export const MCPServerManager = ({ setShowSensitiveHeaderValues({}); }; + // Handler for bearer token input + const handleBearerTokenChange = (token: string) => { + setNewServer((prev) => { + // Remove any existing Authorization header + const headers = (prev.headers ?? []).filter( + (h) => h.key.toLowerCase() !== 'authorization' + ); + + return { + ...prev, + headers: [ + ...headers, + { key: 'Authorization', value: `Bearer ${token}` } + ] + }; + }); + }; + const removeServer = (id: string, e: React.MouseEvent) => { e.stopPropagation(); const updatedServers = servers.filter(server => server.id !== id); @@ -644,21 +663,40 @@ export const MCPServerManager = ({ {newServer.type === 'sse' ? ( -
- - setNewServer({ ...newServer, url: e.target.value })} - placeholder="https://mcp.example.com/token/sse" - className="relative z-0" - /> -

- Full URL to the SSE endpoint of the MCP server -

-
+ <> +
+ + setNewServer({ ...newServer, url: e.target.value })} + placeholder="https://mcp.example.com/token/sse" + className="relative z-0" + /> +

+ Full URL to the SSE endpoint of the MCP server +

+
+
+ + h.key.toLowerCase() === 'authorization')?.value.replace(/^Bearer\s+/i, '') || '' + } + onChange={(e) => handleBearerTokenChange(e.target.value)} + placeholder="" + className="relative z-0" + /> +

+ Add your Bearer token here +

+
+ ) : ( <>