UNPKG

youling-agent-mcp

Version:

MCP服务器实现POMDP研发任务拆解

63 lines (56 loc) 1.51 kB
/** * MCP stdio模式辅助工具 * 用于标准输入/输出流通信中的MCP协议支持 */ /** * 检测是否为MCP CLI模式 * @param {string[]} args 命令行参数 * @returns {boolean} 是否为CLI模式 */ export function isMcpCliMode(args) { // 通过检查环境变量和命令行参数判断是否为stdio模式 return args.includes('--stdio') || args.includes('--mcp') || process.env.transportType === 'stdio'; } /** * 发送MCP就绪状态消息 * @param {object} serverInfo 服务器信息 */ export function sendMcpReadyStatus(serverInfo) { const statusMessage = { jsonrpc: '2.0', method: 'server/status', params: { status: 'ready', mode: 'stdio', name: serverInfo.name, version: serverInfo.version, protocol: 'MCP (JSON-RPC 2.0)', streaming: true } }; // 直接写入stdout,避免console.log可能添加的额外字符或格式 process.stdout.write(JSON.stringify(statusMessage) + '\n'); } /** * 发送JSON-RPC错误响应 * @param {number} code 错误代码 * @param {string} message 错误消息 * @param {string|number|null} id 请求ID * @param {any} [data] 可选的错误数据 */ export function sendJsonRpcError(code, message, id, data) { const errorResponse = { jsonrpc: '2.0', error: { code, message }, id }; if (data !== undefined) { errorResponse.error.data = data; } process.stdout.write(JSON.stringify(errorResponse) + '\n'); }