UNPKG

mcp-ai-agent

Version:

An AI agentic tool on typescript that can use MCP servers

1 lines 46.6 kB
{"version":3,"sources":["../src/utils.ts","../src/const.ts","../src/utils/textUtils.ts","../src/AIAgent.ts","../src/utils/CrewStyleHelpers.ts","../src/servers/index.ts","../src/servers/sequentialThinking.ts","../src/servers/firecrawlMcp.ts","../src/servers/memory.ts","../src/servers/fetch.ts","../src/servers/braveSearch.ts","../src/servers/awsKbRetrieval.ts","../src/servers/everart.ts","../src/servers/fileSystem.ts","../src/servers/sqlite.ts"],"names":["tool","openai","StdioMCPTransport","createMCPClient","z","generateText","zodToJsonSchema","generateObject"],"mappings":"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","file":"index.cjs","sourcesContent":["import { TOOLS } from \"./types.js\";\n\nexport function filterTools(\n tools: TOOLS,\n filter: (tool: TOOLS) => boolean = () => true\n) {\n return Object.fromEntries(\n Object.entries(tools).filter(([_, tool]) => filter(tool))\n );\n}\n","import { openai } from \"@ai-sdk/openai\";\n\nexport const DEFAULT_MODEL = openai(\"gpt-4o\");\nexport const DEFAULT_MAX_STEPS = 20;\n","export function toSnakeCase(str?: string) {\n if (!str) return Math.random().toString(36).substring(2, 15);\n return str.toLowerCase().replace(\" \", \"_\");\n}\n","import {\n experimental_createMCPClient as createMCPClient,\n generateObject,\n GenerateObjectResult,\n generateText,\n GenerateTextResult,\n LanguageModel,\n Schema,\n tool,\n} from \"ai\";\n\nimport { Experimental_StdioMCPTransport as StdioMCPTransport } from \"ai/mcp-stdio\";\n\nimport {\n MCPConfig,\n TOOLS,\n GenerateTextArgs,\n StdioConfig,\n SSEConfig,\n MCPAutoConfig,\n AgentConfig,\n WorkflowConfig,\n AIAgentInterface,\n GenerateObjectArgs,\n} from \"./types.js\";\n\nimport { z, ZodType } from \"zod\";\nimport { filterTools } from \"./utils.js\";\nimport { DEFAULT_MAX_STEPS, DEFAULT_MODEL } from \"./const.js\";\nimport { zodToJsonSchema } from \"zod-to-json-schema\";\nimport { toSnakeCase } from \"./utils/textUtils.js\";\nimport { openai } from \"@ai-sdk/openai\";\n\nexport class AIAgent implements AIAgentInterface {\n private clients: Record<string, any> = {};\n private tools: Record<string, any> = {};\n private config: WorkflowConfig[];\n private agents: Record<\n string,\n { agent: AIAgentInterface; config: AgentConfig }\n > = {};\n private initialized: boolean = false;\n private name: string;\n private description: string;\n private system?: string;\n private model: LanguageModel;\n private verbose: boolean = false;\n\n constructor({\n name,\n description,\n toolsConfigs,\n systemPrompt,\n model,\n verbose,\n }: {\n name: string;\n description: string;\n systemPrompt?: string;\n model?: LanguageModel;\n verbose?: boolean;\n toolsConfigs?: WorkflowConfig[];\n }) {\n this.config = toolsConfigs || [];\n this.name = name;\n this.description = description;\n this.system = systemPrompt;\n this.model = model || DEFAULT_MODEL;\n this.verbose = !!verbose;\n }\n\n private log(\n level: \"debug\" | \"info\" | \"warn\" | \"error\",\n message: string,\n ...args: any[]\n ) {\n if (this.verbose || level === \"error\") {\n console[level](message, ...args);\n }\n }\n\n private async initializeSdtioServer(name: string, serverConfig: StdioConfig) {\n this.log(\"info\", \"Initializing stdio server\", name);\n\n const transport = new StdioMCPTransport(serverConfig);\n\n this.clients[name] = await createMCPClient({\n transport,\n });\n }\n\n private async initializeSSEServer(name: string, serverConfig: SSEConfig) {\n this.log(\"info\", \"Initializing sse server\", name);\n\n this.clients[name] = await createMCPClient({\n transport: serverConfig,\n });\n }\n\n private async initializeAutoServer(name: string, autoConfig: MCPAutoConfig) {\n this.log(\"info\", \"Initializing auto server\", name);\n\n // Check if all environment variables are set\n const missingEnvVars = Object.entries(autoConfig.parameters).filter(\n ([key, value]) => value.required && !process.env[key]\n );\n if (missingEnvVars.length > 0) {\n throw new Error(\n `Missing environment variables: ${missingEnvVars\n .map(([key]) => key)\n .join(\", \")}`\n );\n }\n\n const envVars = Object.entries(autoConfig.parameters).reduce(\n (acc: Record<string, string | undefined>, [key, _]) => {\n if (process.env[key]) acc[key] = process.env[key];\n return acc;\n },\n {}\n );\n\n const serverConfig = Array.isArray(autoConfig.mcpConfig)\n ? autoConfig.mcpConfig[0]\n : autoConfig.mcpConfig;\n\n const type = \"type\" in serverConfig ? serverConfig.type : \"stdio\";\n switch (type) {\n case \"stdio\":\n await this.initializeSdtioServer(name, {\n ...serverConfig,\n env: envVars,\n } as StdioConfig);\n break;\n case \"sse\":\n await this.initializeSSEServer(name, serverConfig as SSEConfig);\n break;\n }\n }\n\n private async initializeAgentConfig(config: AgentConfig) {\n const name = config.name\n ? toSnakeCase(config.name)\n : toSnakeCase(config.agent.getInfo?.()?.name);\n\n this.log(\"info\", \"Initializing agent config\", name);\n\n this.agents[name] = {\n agent: config.agent,\n config,\n };\n\n // Also add a tool for this agent\n this.tools[`agent_${toSnakeCase(name)}`] = tool({\n description:\n config.description ||\n config.agent.getInfo?.()?.description ||\n `Call the ${config.name} agent for specialized tasks`,\n parameters: z.object({\n context: z\n .string()\n .describe(\n \"The context to send to the agent. Add any relevant information the agent needs to know for the task.\"\n ),\n prompt: z.string().describe(\"The prompt to send to the agent\"),\n }),\n execute: async ({\n context,\n prompt,\n }: {\n context: string;\n prompt: string;\n }) => {\n const response = await config.agent.generateResponse({\n model: config.model || config.agent.getInfo?.()?.model || this.model,\n prompt: `<Context>${context}</Context>\\n<Prompt>${prompt}</Prompt>`,\n system: config.system || config.agent.getInfo?.()?.system || \"\",\n tools: config.tools,\n toolChoice: config.toolChoice,\n maxSteps: config.maxSteps,\n messages: config.messages,\n providerOptions: config.providerOptions,\n onStepFinish: config.onStepFinish,\n filterMCPTools: config.filterMCPTools,\n });\n\n this.log(\"info\", \"Agent response\", response.text);\n\n return response.text;\n },\n });\n }\n\n private async initializeMcpConfig(config: MCPConfig) {\n try {\n await Promise.all(\n Object.entries(config.mcpServers).map(async ([name, serverConfig]) => {\n const type = \"type\" in serverConfig ? serverConfig.type : \"stdio\";\n switch (type) {\n case \"stdio\":\n await this.initializeSdtioServer(\n name,\n serverConfig as StdioConfig\n );\n break;\n case \"sse\":\n await this.initializeSSEServer(name, serverConfig as SSEConfig);\n break;\n case \"auto\":\n await this.initializeAutoServer(\n name,\n serverConfig as MCPAutoConfig\n );\n break;\n default:\n throw new Error(`Unsupported server type for server ${name}`);\n }\n })\n );\n } catch (error) {\n this.log(\"error\", \"Error initializing MCP clients:\", error);\n await this.close();\n throw error;\n }\n }\n\n private async initializeConfigRouter(config: WorkflowConfig) {\n if (\"type\" in config && config.type === \"auto\") {\n this.log(\"info\", \"Config Router: Initializing auto server\", config.name);\n await this.initializeAutoServer(config.name, config);\n } else if (\"type\" in config && config.type === \"agent\") {\n this.log(\n \"info\",\n \"Config Router: Initializing agent config\",\n config.agent.getInfo?.()?.name\n );\n await this.initializeAgentConfig(config);\n } else if (\"type\" in config && config.type === \"tool\") {\n this.log(\"info\", \"Config Router: Initializing tool\", config.name);\n this.tools[toSnakeCase(config.name)] = tool({\n description: config.description,\n parameters: config.parameters,\n execute: config.execute,\n });\n } else {\n this.log(\n \"info\",\n \"Config Router: Initializing MCP config\",\n Object.keys(config.mcpServers)\n );\n await this.initializeMcpConfig(config as MCPConfig);\n }\n }\n\n async initialize(): Promise<void> {\n await Promise.all(\n this.config.map((config) => this.initializeConfigRouter(config))\n );\n\n await Promise.all(\n Object.entries(this.clients).map(async ([_, client]) => {\n const serverTools = await client.tools();\n this.tools = { ...this.tools, ...serverTools };\n })\n );\n\n this.initialized = true;\n }\n\n async generateResponse(\n args: GenerateTextArgs\n ): Promise<GenerateTextResult<TOOLS, any>> {\n if (!this.initialized) {\n await this.initialize();\n }\n\n const filteredTools = filterTools(this.tools, args.filterMCPTools);\n const allTools = { ...filteredTools, ...args.tools };\n\n const model = args.model || this.model;\n\n this.log(\n \"info\",\n \"Generating response with \",\n JSON.stringify(\n {\n name: this.name,\n prompt: args.prompt,\n model: model.modelId,\n allTools: Object.keys(allTools),\n maxSteps: args.maxSteps,\n },\n null,\n 2\n )\n );\n\n try {\n const response = await generateText({\n ...args,\n system: args.system || this.system,\n model,\n tools: allTools,\n maxSteps: args.maxSteps || DEFAULT_MAX_STEPS,\n });\n\n const finalResponse = { ...response };\n\n if (!response.text && response.finishReason === \"tool-calls\") {\n finalResponse.text =\n \"The AI completed with tool calls, but no final text was generated. Check if the requested resources were found.\";\n }\n\n return finalResponse;\n } catch (error) {\n this.log(\n \"error\",\n \"Error generating response:\",\n JSON.stringify(error, null, 2)\n );\n throw error;\n }\n }\n\n async generateObject<OBJECT>(args: GenerateObjectArgs<OBJECT>): Promise<{\n object: OBJECT;\n textGenerationResult: GenerateTextResult<TOOLS, any>;\n objectGenerationResult: GenerateObjectResult<OBJECT>;\n usage: {\n promptTokens: number;\n completionTokens: number;\n totalTokens: number;\n };\n }> {\n const filteredTools = filterTools(this.tools, args.filterMCPTools);\n const allTools = { ...filteredTools, ...args.tools };\n\n const model = args.model || this.model;\n\n let schemaJson;\n if (typeof args.schema === \"object\" && \"jsonSchema\" in args.schema) {\n schemaJson = (args.schema as Schema<OBJECT>).jsonSchema;\n } else {\n schemaJson = zodToJsonSchema(args.schema as ZodType<OBJECT>);\n }\n\n const textResponse = await this.generateResponse({\n ...args,\n system:\n (args.system || this.system) +\n \"\\n\\n<Response Format>\\n\" +\n `<Schema Name>${args.schemaName}</Schema Name>\\n` +\n `<Schema Description>${args.schemaDescription}</Schema Description>\\n` +\n `<Schema>${JSON.stringify(schemaJson)}</Schema>\\n` +\n \"</Response Format>\\n\\n\",\n model,\n tools: allTools,\n maxSteps: args.maxSteps || DEFAULT_MAX_STEPS,\n });\n\n const response = await generateObject({\n ...args,\n prompt: `Create an object that matches the schema from the response: <Response>${textResponse.text}</Response>`,\n model,\n });\n\n response.usage.completionTokens += textResponse.usage.completionTokens;\n response.usage.promptTokens += textResponse.usage.promptTokens;\n response.usage.totalTokens += textResponse.usage.totalTokens;\n\n return {\n object: response.object,\n textGenerationResult: textResponse,\n objectGenerationResult: response,\n usage: {\n promptTokens:\n textResponse.usage.promptTokens + response.usage.promptTokens,\n completionTokens:\n textResponse.usage.completionTokens + response.usage.completionTokens,\n totalTokens:\n textResponse.usage.totalTokens + response.usage.totalTokens,\n },\n };\n }\n\n async close(): Promise<void> {\n const closePromises = [\n ...Object.values(this.clients).map((client) =>\n client ? client.close() : Promise.resolve()\n ),\n ...Object.values(this.agents).map(({ agent }) =>\n agent ? agent.close() : Promise.resolve()\n ),\n ];\n\n await Promise.all(closePromises);\n this.clients = {};\n this.agents = {};\n }\n\n getInfo(): {\n name: string;\n description: string;\n tools: string[];\n agents?: string[];\n model?: LanguageModel;\n system?: string;\n } {\n return {\n name: this.name,\n description: this.description,\n tools: Object.keys(this.tools),\n agents: Object.keys(this.agents),\n model: this.model,\n system: this.system,\n };\n }\n}\n","import { LanguageModel } from \"ai\";\nimport { z } from \"zod\";\nimport { AIAgentInterface } from \"../types.js\";\n\nexport type CrewStyleAgent = {\n name: string;\n goal: string;\n backstory: string;\n agent: AIAgentInterface;\n model: LanguageModel;\n};\n\nconst crewAIStylePrompt = (\n agent: CrewStyleAgent,\n previousTasks: { [key: string]: string } | undefined,\n task: {\n description: string;\n expected_output: string;\n }\n) => {\n return `\n <role>\n ${agent.name}.\n </role>\n\n <backstory>\n ${agent.backstory}\n </backstory>\n\n ${\n previousTasks\n ? `\n <previous_tasks>\n ${Object.entries(previousTasks)\n .map(([key, value]) => `<${key}>${value}</${key}>`)\n .join(\"\\n\")}\n </previous_tasks>\n `\n : \"\"\n }\n\n <goal>\n ${agent.goal}\n </goal>\n\n <current_task>\n ${task.description}\n </current_task>\n\n <expected_output>\n ${task.expected_output}\n </expected_output>\n `;\n};\n\nexport const executeTask = async ({\n agent,\n task,\n previousTasks,\n schema,\n}: {\n agent: CrewStyleAgent;\n task: {\n description: string;\n expected_output: string;\n };\n previousTasks?: { [key: string]: string };\n schema?: z.ZodSchema;\n}) => {\n const prompt = crewAIStylePrompt(agent, previousTasks, task);\n if (schema) {\n const response = await agent.agent.generateObject({\n prompt: prompt,\n model: agent.model,\n schema: schema,\n });\n return {\n object: response.object,\n textGenerationResult: response.textGenerationResult,\n objectGenerationResult: response.objectGenerationResult,\n usage: response.usage,\n };\n } else {\n const response = await agent.agent.generateResponse({\n prompt: prompt,\n model: agent.model,\n });\n\n return {\n text: response.text,\n textGenerationResult: response,\n usage: response.usage,\n };\n }\n};\n","export { sequentialThinking } from \"./sequentialThinking.js\";\nexport { firecrawlMcp } from \"./firecrawlMcp.js\";\nexport { memory } from \"./memory.js\";\nexport { fetch } from \"./fetch.js\";\nexport { braveSearch } from \"./braveSearch.js\";\nexport { awsKbRetrieval } from \"./awsKbRetrieval.js\";\nexport { everart } from \"./everart.js\";\nexport { fileSystem } from \"./fileSystem.js\";\nexport { sqlite } from \"./sqlite.js\";\n","import { MCPAutoConfig } from \"../types.js\";\n\nexport const sequentialThinking: MCPAutoConfig = {\n type: \"auto\",\n name: \"sequential-thinking\",\n description:\n \"An MCP server implementation that provides a tool for dynamic and reflective problem-solving through a structured thinking process. \" +\n \"Features include breaking down complex problems into manageable steps, revising thoughts as understanding deepens, \" +\n \"branching into alternative reasoning paths, and adjusting the total number of thoughts dynamically.\",\n toolsDescription: {\n sequential_thinking:\n \"Facilitates a detailed, step-by-step thinking process for problem-solving and analysis. \" +\n \"Inputs include the current thought, thought number, total thoughts needed, and options for revisions and branching. \" +\n \"Designed for breaking down complex problems, planning with room for revision, and maintaining context over multiple steps.\",\n },\n gitHubRepo: \"https://github.com/modelcontextprotocol/servers\",\n license: \"MIT\",\n parameters: {},\n mcpConfig: {\n command: \"npx\",\n args: [\"-y\", \"@modelcontextprotocol/server-sequential-thinking\"],\n },\n};\n","import { MCPAutoConfig } from \"../types.js\";\n\nexport const firecrawlMcp: MCPAutoConfig = {\n type: \"auto\",\n name: \"firecrawl-mcp\",\n description:\n \"A MCP server implementation that integrates with Firecrawl for web scraping capabilities\",\n toolsDescription: {\n firecrawl_scrape:\n \"Scrape content from a single URL with advanced options like content filtering, mobile/desktop viewport, and custom wait times.\",\n firecrawl_batch_scrape:\n \"Scrape multiple URLs efficiently with built-in rate limiting and parallel processing.\",\n firecrawl_check_batch_status:\n \"Check the status of a batch scraping operation.\",\n firecrawl_search:\n \"Search the web and optionally extract content from search results.\",\n firecrawl_crawl:\n \"Start an asynchronous crawl with advanced options like depth control and link filtering.\",\n firecrawl_extract:\n \"Extract structured information from web pages using LLM capabilities.\",\n firecrawl_deep_research:\n \"Conduct deep web research on a query using intelligent crawling, search, and LLM analysis.\",\n firecrawl_generate_llmstxt:\n \"Generate a standardized llms.txt file for a given domain defining how LLMs should interact with the site.\",\n },\n gitHubRepo: \"https://github.com/mendableai/firecrawl-mcp-server\",\n license: \"MIT\",\n parameters: {\n FIRECRAWL_API_KEY: {\n description: \"Your FireCrawl API key (required for cloud API)\",\n required: true,\n },\n FIRECRAWL_API_URL: {\n description: \"Custom API endpoint for self-hosted instances\",\n required: false,\n },\n FIRECRAWL_RETRY_MAX_ATTEMPTS: {\n description: \"Maximum number of retry attempts\",\n required: false,\n },\n FIRECRAWL_RETRY_INITIAL_DELAY: {\n description: \"Initial delay in milliseconds before first retry\",\n required: false,\n },\n FIRECRAWL_RETRY_MAX_DELAY: {\n description: \"Maximum delay in milliseconds between retries\",\n required: false,\n },\n FIRECRAWL_RETRY_BACKOFF_FACTOR: {\n description: \"Exponential backoff multiplier\",\n required: false,\n },\n FIRECRAWL_CREDIT_WARNING_THRESHOLD: {\n description: \"Credit usage warning threshold\",\n required: false,\n },\n FIRECRAWL_CREDIT_CRITICAL_THRESHOLD: {\n description: \"Credit usage critical threshold\",\n required: false,\n },\n },\n mcpConfig: {\n command: \"npx\",\n args: [\"-y\", \"firecrawl-mcp\"],\n },\n};\n","import { MCPAutoConfig } from \"../types.js\";\n\nexport const memory: MCPAutoConfig = {\n type: \"auto\",\n name: \"memory\",\n description:\n \"A basic implementation of persistent memory using a local knowledge graph\",\n toolsDescription: {\n create_entities:\n \"Create multiple new entities in the knowledge graph with names, types, and observations. Ignores entities with existing names.\",\n create_relations:\n \"Create multiple new relations between entities with source, target, and relationship type. Skips duplicate relations.\",\n add_observations:\n \"Add new observations to existing entities. Returns added observations per entity. Fails if entity doesn't exist.\",\n delete_entities:\n \"Remove entities and their relations with cascading deletion. Silent operation if entity doesn't exist.\",\n delete_observations:\n \"Remove specific observations from entities. Silent operation if observation doesn't exist.\",\n delete_relations:\n \"Remove specific relations from the graph. Silent operation if relation doesn't exist.\",\n read_graph:\n \"Read the entire knowledge graph structure with all entities and relations.\",\n search_nodes:\n \"Search for nodes based on query across entity names, types, and observation content. Returns matching entities and their relations.\",\n open_nodes:\n \"Retrieve specific nodes by name, returning requested entities and relations between them. Silently skips non-existent nodes.\",\n },\n gitHubRepo: \"https://github.com/modelcontextprotocol/servers\",\n license: \"MIT\",\n parameters: {},\n mcpConfig: {\n command: \"npx\",\n args: [\"-y\", \"@modelcontextprotocol/server-memory\"],\n },\n};\n","import { MCPAutoConfig } from \"../types.js\";\n\nexport const fetch: MCPAutoConfig = {\n type: \"auto\",\n name: \"fetch\",\n description:\n \"A Model Context Protocol server that provides web content fetching capabilities. \" +\n \"Enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption. \" +\n \"Supports content truncation and pagination through start_index parameter.\",\n toolsDescription: {\n fetch:\n \"Fetches a URL from the internet and extracts its contents as markdown. \" +\n \"Parameters include url (required), max_length (optional, default: 5000), \" +\n \"start_index (optional, default: 0), and raw (optional, default: false).\",\n },\n gitHubRepo: \"https://github.com/modelcontextprotocol/servers\",\n license: \"MIT\",\n parameters: {},\n mcpConfig: {\n command: \"uvx\",\n args: [\"mcp-server-fetch\"],\n },\n};\n","import { MCPAutoConfig } from \"../types.js\";\n\nexport const braveSearch: MCPAutoConfig = {\n type: \"auto\",\n name: \"brave-search\",\n description:\n \"An MCP server implementation that integrates the Brave Search API, providing both web and local search capabilities. \" +\n \"Features include web search with pagination and filtering, local search for businesses and services, \" +\n \"flexible content filtering, and smart fallbacks from local to web search when needed.\",\n toolsDescription: {\n brave_web_search:\n \"Execute web searches with pagination and filtering. Inputs include query (string), \" +\n \"count (optional number, max 20), and offset (optional number, max 9).\",\n brave_local_search:\n \"Search for local businesses and services. Inputs include query (string) and count (optional number, max 20). \" +\n \"Automatically falls back to web search if no local results found.\",\n },\n gitHubRepo: \"https://github.com/modelcontextprotocol/servers\",\n license: \"MIT\",\n parameters: {\n BRAVE_API_KEY: {\n description: \"API key for Brave Search API\",\n required: true,\n },\n },\n mcpConfig: {\n command: \"npx\",\n args: [\"-y\", \"@modelcontextprotocol/server-brave-search\"],\n },\n};\n","import { MCPAutoConfig } from \"../types.js\";\n\nexport const awsKbRetrieval: MCPAutoConfig = {\n type: \"auto\",\n name: \"aws-kb-retrieval\",\n description:\n \"An MCP server implementation for retrieving information from the AWS Knowledge Base using the Bedrock Agent Runtime. \" +\n \"Provides RAG (Retrieval-Augmented Generation) capabilities to retrieve context from AWS Knowledge Bases based on queries.\",\n toolsDescription: {\n retrieve_from_aws_kb:\n \"Perform retrieval operations using the AWS Knowledge Base. Inputs include query (string), \" +\n \"knowledgeBaseId (string), and n (optional number, default: 3) for number of results to retrieve.\",\n },\n gitHubRepo: \"https://github.com/modelcontextprotocol/servers\",\n license: \"MIT\",\n parameters: {\n AWS_ACCESS_KEY_ID: {\n description: \"AWS access key ID for authentication\",\n required: true,\n },\n AWS_SECRET_ACCESS_KEY: {\n description: \"AWS secret access key for authentication\",\n required: true,\n },\n AWS_REGION: {\n description: \"AWS region where the Knowledge Base is located\",\n required: true,\n },\n },\n mcpConfig: {\n command: \"npx\",\n args: [\"-y\", \"@modelcontextprotocol/server-aws-kb-retrieval\"],\n },\n};\n","import { MCPAutoConfig } from \"../types.js\";\n\nexport const everart: MCPAutoConfig = {\n type: \"auto\",\n name: \"everart\",\n description:\n \"An MCP server implementation that integrates with EverArt's API for image generation. \" +\n \"Supports multiple AI models for image creation with customizable parameters. \" +\n \"Generated images are opened in the browser and URLs are returned for reference.\",\n toolsDescription: {\n generate_image:\n \"Generates images based on text prompts with multiple model options. \" +\n \"Parameters include prompt (required), model ID (optional), and image count (optional). \" +\n \"Opens the generated image in the browser and returns the URL. \" +\n \"All images are generated at 1024x1024 resolution.\",\n },\n gitHubRepo: \"https://github.com/modelcontextprotocol/servers\",\n license: \"MIT\",\n parameters: {\n EVERART_API_KEY: {\n description: \"API key for EverArt image generation API\",\n required: true,\n },\n },\n mcpConfig: {\n command: \"npx\",\n args: [\"-y\", \"@modelcontextprotocol/server-everart\"],\n },\n};\n","import { MCPAutoConfig } from \"../types.js\";\n\nexport const fileSystem: MCPAutoConfig = {\n type: \"auto\",\n name: \"filesystem\",\n description:\n \"An MCP server implementation for filesystem operations, providing capabilities to read/write files, \" +\n \"create/list/delete directories, move files/directories, search files, and get file metadata. \" +\n \"The server only allows operations within directories specified via arguments.\",\n toolsDescription: {\n read_file:\n \"Read complete contents of a file with UTF-8 encoding. Input: path (string).\",\n read_multiple_files:\n \"Read multiple files simultaneously. Input: paths (string[]). Failed reads won't stop the entire operation.\",\n write_file:\n \"Create new file or overwrite existing. Inputs: path (string) for file location, content (string) for file content.\",\n edit_file:\n \"Make selective edits using advanced pattern matching and formatting. Supports line-based and multi-line content matching, \" +\n \"whitespace normalization with indentation preservation, and more.\",\n create_directory:\n \"Create new directory or ensure it exists. Input: path (string). Creates parent directories if needed.\",\n list_directory:\n \"List directory contents with [FILE] or [DIR] prefixes. Input: path (string).\",\n move_file:\n \"Move or rename files and directories. Inputs: source (string), destination (string).\",\n search_files:\n \"Recursively search for files/directories. Inputs: path (string) for starting directory, pattern (string) for search pattern, \" +\n \"excludePatterns (string[]) for excluding patterns.\",\n get_file_info:\n \"Get detailed file/directory metadata including size, timestamps, type, and permissions. Input: path (string).\",\n list_allowed_directories:\n \"List all directories the server is allowed to access. No input required.\",\n },\n gitHubRepo: \"https://github.com/modelcontextprotocol/servers\",\n license: \"MIT\",\n parameters: {},\n mcpConfig: {\n command: \"npx\",\n args: [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"~/Documents\"],\n },\n};\n","import { MCPAutoConfig } from \"../types.js\";\n\nexport const sqlite: MCPAutoConfig = {\n type: \"auto\",\n name: \"sqlite\",\n description:\n \"A Model Context Protocol (MCP) server implementation that provides database interaction and business intelligence capabilities through SQLite. \" +\n \"This server enables running SQL queries, analyzing business data, and automatically generating business insight memos. \" +\n \"Features include executing read/write queries, managing database schema, and generating business insights.\",\n toolsDescription: {\n read_query: \"Execute SELECT queries to read data from the database.\",\n write_query: \"Execute INSERT, UPDATE, or DELETE queries to modify data.\",\n create_table: \"Create new tables in the database.\",\n list_tables: \"Get a list of all tables in the database.\",\n describe_table: \"View schema information for a specific table.\",\n append_insight: \"Add new business insights to the memo resource.\",\n },\n gitHubRepo: \"https://github.com/modelcontextprotocol/servers\",\n license: \"MIT\",\n parameters: {\n SQLITE_DB_PATH: {\n description: \"Path to the SQLite database file\",\n required: true,\n },\n },\n mcpConfig: {\n command: \"docker\",\n args: [\n \"run\",\n \"--rm\",\n \"-i\",\n \"-v\",\n \"mcp-test:/mcp\",\n \"mcp/sqlite\",\n \"--db-path\",\n \"${SQLITE_DB_PATH}\",\n ],\n },\n};\n"]}