37 lines
973 B
TypeScript
37 lines
973 B
TypeScript
import type { McpStdioServerConfig } from '@anthropic-ai/claude-agent-sdk';
|
|
import { EJCLAW_ENV } from 'ejclaw-runners-shared';
|
|
|
|
export interface EjclawMcpServerConfigInput {
|
|
chatJid: string;
|
|
groupFolder: string;
|
|
isMain: boolean;
|
|
agentType: string;
|
|
roomRole: string;
|
|
ipcDir?: string;
|
|
hostIpcDir?: string;
|
|
}
|
|
|
|
export function buildEjclawMcpServerConfig(
|
|
mcpServerPath: string,
|
|
input: EjclawMcpServerConfigInput,
|
|
): McpStdioServerConfig {
|
|
return {
|
|
command: 'node',
|
|
args: [mcpServerPath],
|
|
alwaysLoad: true,
|
|
env: {
|
|
[EJCLAW_ENV.chatJid]: input.chatJid,
|
|
[EJCLAW_ENV.groupFolder]: input.groupFolder,
|
|
[EJCLAW_ENV.isMain]: input.isMain ? '1' : '0',
|
|
[EJCLAW_ENV.agentType]: input.agentType,
|
|
[EJCLAW_ENV.roomRole]: input.roomRole,
|
|
...(input.ipcDir && {
|
|
[EJCLAW_ENV.ipcDir]: input.ipcDir,
|
|
}),
|
|
...(input.hostIpcDir && {
|
|
[EJCLAW_ENV.hostIpcDir]: input.hostIpcDir,
|
|
}),
|
|
},
|
|
};
|
|
}
|