/**
* 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
*/
import { pathToFileURL } from "node:url" ;
import { Server } from "@modelcontextprotocol/sdk/server/index.js" ;
import type { AnyAgentTool } from "../agents/tools/common.js" ;
import { createCronTool } from "../agents/tools/cron-tool.js" ;
import { formatErrorMessage } from "../infra/errors.js" ;
import { connectToolsMcpServerToStdio, createToolsMcpServer } from "./tools-stdio-server.js" ;
export function resolveOpenClawToolsForMcp(): AnyAgentTool[] {
return [createCronTool()];
}
export function createOpenClawToolsMcpServer(
params: {
tools?: AnyAgentTool[];
} = {},
): Server {
const tools = params.tools ?? resolveOpenClawToolsForMcp();
return createToolsMcpServer({ name: "openclaw-tools" , tools });
}
export async function serveOpenClawToolsMcp(): Promise<void > {
const server = createOpenClawToolsMcpServer();
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 );
});
}
Messung V0.5 in Prozent C=98 H=100 G=98
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland