UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

59 lines (58 loc) 3.04 kB
import { n as getRuntimeConfig } from "../io.runtime-B9iJRs3w.js"; import { t as formatErrorMessage } from "../errors-Db3Ymjlb.js"; import { t as AUTOMATIONS_TOOL_NAME } from "../automations-tool-name-DBMZPbPL.js"; import "../config-Cs0XXL3x.js"; import { t as createCronTool } from "../cron-tool-DbVyRyAj.js"; import { a as resolveToolsMcpAgentSessionKey, i as resolveToolsMcpAgentId, n as createToolsMcpServer, o as resolveToolsMcpSessionContext, r as OPENCLAW_TOOLS_MCP_AGENT_SESSION_KEY_ENV, t as connectToolsMcpServerToStdio } from "../tools-stdio-server-DFc7sxGX.js"; import { t as createSystemAgentTool } from "../system-agent-tool-C7zE6CF2.js"; import { c as resolveOpenClawToolsMcpToolSelection, i as OPENCLAW_TOOLS_MCP_TOOLS_ENV, o as resolveOpenClawToolsMcpSystemAgentApproval, r as OPENCLAW_TOOLS_MCP_SYSTEM_AGENT_SURFACE_ENV, s as resolveOpenClawToolsMcpSystemAgentSurface } from "../openclaw-tools-serve-config-BpDM9GLM.js"; import { pathToFileURL } from "node:url"; import "@modelcontextprotocol/sdk/server/index.js"; //#region src/mcp/openclaw-tools-serve.ts /** * Standalone MCP server for selected built-in OpenClaw tools. * * Run via: node --import tsx src/mcp/openclaw-tools-serve.ts * Or: bun src/mcp/openclaw-tools-serve.ts */ function resolveOpenClawToolsMcpAgentSessionKey(env = process.env) { return resolveToolsMcpAgentSessionKey(env); } function resolveOpenClawToolsForMcp(params = {}) { return (params.tools ?? resolveOpenClawToolsMcpToolSelection()).map((tool) => { if (tool === "openclaw") return createSystemAgentTool({ agentId: params.agentId, surface: params.systemAgentSurface ?? resolveOpenClawToolsMcpSystemAgentSurface(), ...resolveOpenClawToolsMcpSystemAgentApproval() }); const agentSessionKey = (params.agentSessionKey ?? resolveOpenClawToolsMcpAgentSessionKey())?.trim(); if (!agentSessionKey) throw new Error(`${OPENCLAW_TOOLS_MCP_AGENT_SESSION_KEY_ENV} is required`); const context = resolveToolsMcpSessionContext({ agentSessionKey, agentId: params.agentId }); return createCronTool({ agentSessionKey, agentId: context.agentId, config: params.config ?? getRuntimeConfig(), creatorToolAllowlist: [{ name: AUTOMATIONS_TOOL_NAME }] }); }); } function createOpenClawToolsMcpServer(params = {}) { const tools = params.tools ?? resolveOpenClawToolsForMcp(); return createToolsMcpServer({ name: "openclaw-tools", tools }); } async function serveOpenClawToolsMcp() { const server = createOpenClawToolsMcpServer({ tools: resolveOpenClawToolsForMcp({ agentId: resolveToolsMcpAgentId() }) }); await connectToolsMcpServerToStdio(server); } if (import.meta.url === pathToFileURL(process.argv[1] ?? "").href) serveOpenClawToolsMcp().catch((err) => { process.stderr.write(`openclaw-tools-serve: ${formatErrorMessage(err)}\n`); process.exit(1); }); //#endregion export { OPENCLAW_TOOLS_MCP_AGENT_SESSION_KEY_ENV, OPENCLAW_TOOLS_MCP_SYSTEM_AGENT_SURFACE_ENV, OPENCLAW_TOOLS_MCP_TOOLS_ENV, resolveOpenClawToolsForMcp, resolveOpenClawToolsMcpAgentSessionKey };