UNPKG

@monitoro/herd

Version:

Automate your browser, build AI web tools and MCP servers with Monitoro Herd

57 lines (56 loc) 1.68 kB
import { ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js"; import { ServerOptions } from "@modelcontextprotocol/sdk/server/index.js"; import { Implementation, Resource } from "@modelcontextprotocol/sdk/types.js"; import { ZodRawShape, ZodType, ZodTypeDef, ZodOptional } from "zod"; interface HerdOptions { token?: string; baseUrl?: string; } export interface HerdMcpServerOptions { info: Implementation; mcp?: ServerOptions; herd?: HerdOptions; transport?: { type: "sse" | "stdio"; port?: number; path?: string; }; } type PromptArgsRawShape = { [k: string]: ZodType<string, ZodTypeDef, string> | ZodOptional<ZodType<string, ZodTypeDef, string>>; }; interface ResourceOptions { name: string; uriOrTemplate: string | ResourceTemplate; metadata?: Omit<Resource, "uri" | "name">; callback: Function; } interface ToolOptions { name: string; description?: string; schema?: ZodRawShape; } interface PromptOptions { name: string; description?: string; schema?: PromptArgsRawShape; callback: Function; } export declare class HerdMcpServer { private herd; private server; private transport?; private devices; private expressApp?; private httpServer?; private sseTransport?; private transportConfig; constructor(options: HerdMcpServerOptions); initializeDevices(): Promise<void>; resource(options: ResourceOptions, callback: Function): void; tool(options: ToolOptions, callback: Function): void; prompt(options: PromptOptions, callback: Function): void; start(): Promise<void>; stop(): Promise<void>; } export {};