export type McpLoopbackRuntime = {
port: number;
ownerToken: string;
nonOwnerToken: string;
};
let activeRuntime: McpLoopbackRuntime | undefined;
export function getActiveMcpLoopbackRuntime(): McpLoopbackRuntime | undefined {
return activeRuntime ? { ...activeRuntime } : undefined;
}
export function setActiveMcpLoopbackRuntime(runtime: McpLoopbackRuntime): void {
activeRuntime = { ...runtime };
}
export function resolveMcpLoopbackBearerToken(
runtime: McpLoopbackRuntime,
senderIsOwner: boolean ,
): string {
return senderIsOwner ? runtime.ownerToken : runtime.nonOwnerToken;
}
export function clearActiveMcpLoopbackRuntimeByOwnerToken(ownerToken: string): void {
if (activeRuntime?.ownerToken === ownerToken) {
activeRuntime = undefined;
}
}
export function createMcpLoopbackServerConfig(port: number) {
return {
mcpServers: {
openclaw: {
type: "http" ,
url: `http://127.0.0.1:${port}/mcp`,
headers: {
Authorization: "Bearer ${OPENCLAW_MCP_TOKEN}" ,
"x-session-key" : "${OPENCLAW_MCP_SESSION_KEY}" ,
"x-openclaw-agent-id" : "${OPENCLAW_MCP_AGENT_ID}" ,
"x-openclaw-account-id" : "${OPENCLAW_MCP_ACCOUNT_ID}" ,
"x-openclaw-message-channel" : "${OPENCLAW_MCP_MESSAGE_CHANNEL}" ,
},
},
},
};
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland