@longevity-genie/biostratum-mcp-plugin
Version:
ElizaOS MCP plugin for biostratum - a comprehensive MCP composer and adapter solution
151 lines (150 loc) • 4.02 kB
TypeScript
import type { Client } from "@modelcontextprotocol/sdk/client/index.js";
import type { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
import type { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
import type { EmbeddedResource, ImageContent, Resource, ResourceTemplate, TextContent, Tool } from "@modelcontextprotocol/sdk/types.js";
export declare const MCP_SERVICE_NAME = "mcp";
export declare const DEFAULT_MCP_TIMEOUT_SECONDS = 60000;
export declare const MIN_MCP_TIMEOUT_SECONDS = 1;
export declare const DEFAULT_MAX_RETRIES = 2;
export interface McpToolFiltering {
include: string[];
exclude: string[];
}
export interface BiostratumServerConfig {
enabled?: boolean;
include?: string[];
exclude?: string[];
env?: Record<string, string>;
timeout?: number;
[key: string]: unknown;
}
export type BiostratumSettings = Record<string, BiostratumServerConfig>;
export type StdioMcpServerConfig = {
type: "stdio";
command?: string;
args?: string[];
env?: Record<string, string>;
cwd?: string;
timeoutInMillis?: number;
toolFiltering?: McpToolFiltering;
};
export type SseMcpServerConfig = {
type: "sse";
url: string;
timeout?: number;
toolFiltering?: McpToolFiltering;
};
export type McpServerConfig = StdioMcpServerConfig | SseMcpServerConfig;
export type McpSettings = {
servers: Record<string, McpServerConfig>;
maxRetries?: number;
};
export type McpServerStatus = "connecting" | "connected" | "disconnected";
export interface McpServer {
name: string;
status: McpServerStatus;
config: string;
error?: string;
disabled?: boolean;
tools?: Tool[];
resources?: Resource[];
resourceTemplates?: ResourceTemplate[];
}
export interface McpConnection {
server: McpServer;
client: Client;
transport: StdioClientTransport | SSEClientTransport;
}
export interface McpToolResult {
content: Array<TextContent | ImageContent | EmbeddedResource>;
isError?: boolean;
}
export interface McpToolCallResponse {
content: Array<TextContent | ImageContent | EmbeddedResource>;
isError?: boolean;
}
export interface McpResourceResponse {
contents: Array<{
uri: string;
mimeType?: string;
text?: string;
blob?: string;
}>;
}
export interface McpToolInfo {
description: string;
inputSchema?: {
properties?: Record<string, unknown>;
required?: string[];
[key: string]: unknown;
};
}
export interface McpResourceInfo {
name: string;
description: string;
mimeType?: string;
}
export interface McpServerInfo {
status: string;
tools: Record<string, McpToolInfo>;
resources: Record<string, McpResourceInfo>;
}
export type McpProvider = {
values: {
mcp: McpProviderData;
};
data: {
mcp: McpProviderData;
};
text: string;
};
export interface McpProviderData {
[serverName: string]: McpServerInfo;
}
export declare const ToolSelectionSchema: {
type: string;
required: string[];
properties: {
serverName: {
type: string;
minLength: number;
errorMessage: string;
};
toolName: {
type: string;
minLength: number;
errorMessage: string;
};
arguments: {
type: string;
};
reasoning: {
type: string;
};
noToolAvailable: {
type: string;
};
};
};
export declare const ResourceSelectionSchema: {
type: string;
required: string[];
properties: {
serverName: {
type: string;
minLength: number;
errorMessage: string;
};
uri: {
type: string;
minLength: number;
errorMessage: string;
};
reasoning: {
type: string;
};
noResourceAvailable: {
type: string;
};
};
};