kimi-code / packages /agent-core-v2 /src /mcpCore /client-remote.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
4e23b01 verified
Raw History Blame Contribute Delete
1.13 kB
import type { McpRemoteServerConfig, McpServerConfig } from './config-schema';
import { ErrorCodes, Error2 } from '#/errors';
export function buildMcpRemoteHeaders(
config: McpRemoteServerConfig,
envLookup: (name: string) => string | undefined,
): Record<string, string> | undefined {
const headers: Record<string, string> = { ...config.headers };
if (config.bearerTokenEnvVar !== undefined) {
const token = envLookup(config.bearerTokenEnvVar);
if (token === undefined || token.length === 0) {
throw new Error2(
ErrorCodes.CONFIG_INVALID,
`MCP ${config.transport.toUpperCase()} bearer token env var "${config.bearerTokenEnvVar}" is not set or is empty`,
);
}
for (const key of Object.keys(headers)) {
if (key.toLowerCase() === 'authorization') {
delete headers[key];
}
}
headers['Authorization'] = `Bearer ${token}`;
}
return Object.keys(headers).length > 0 ? headers : undefined;
}
export function isRemoteMcpConfig(config: McpServerConfig): config is McpRemoteServerConfig {
return config.transport === 'http' || config.transport === 'sse';
}