{"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"]}