@monitoro/herd
Version:
Automate your browser, build AI web tools and MCP servers with Monitoro Herd
57 lines (56 loc) • 1.68 kB
TypeScript
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 {};