<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Prasanna</title>
    <description>The latest articles on DEV Community by Prasanna (@prasanna_fdb846e8c3a99074).</description>
    <link>https://dev.to/prasanna_fdb846e8c3a99074</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3584815%2F650f973b-5a10-4caa-a292-6a56681c1238.jpg</url>
      <title>DEV Community: Prasanna</title>
      <link>https://dev.to/prasanna_fdb846e8c3a99074</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prasanna_fdb846e8c3a99074"/>
    <language>en</language>
    <item>
      <title>Unifying Enterprise Knowledge Search with MindsDB</title>
      <dc:creator>Prasanna</dc:creator>
      <pubDate>Mon, 27 Oct 2025 18:11:47 +0000</pubDate>
      <link>https://dev.to/prasanna_fdb846e8c3a99074/unifying-enterprise-knowledge-search-with-mindsdb-2cho</link>
      <guid>https://dev.to/prasanna_fdb846e8c3a99074/unifying-enterprise-knowledge-search-with-mindsdb-2cho</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TL;DR: We built a production-ready, multi-source RAG system in just a few days by leveraging MindsDB's Knowledge Bases. What would have required 5+ separate services now runs on declarative SQL queries. Meet Area51: unified search across Zendesk, Jira, and Confluence with three intelligent agent interfaces.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;The Problem: Three Islands of Information&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Modern enterprises battle knowledge fragmentation every day. Critical information is scattered across distinct platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zendesk: Customer support tickets, resolutions, and interaction history&lt;/li&gt;
&lt;li&gt;Jira: Engineering issues, bug reports, and project tracking&lt;/li&gt;
&lt;li&gt;Confluence: Technical documentation, SOPs, and internal guides&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This fragmentation creates real operational costs. Support agents waste time switching between systems, trying to piece together context that exists but isn't discoverable. An engineer investigating a bug can't easily see customer impact. Documentation teams operate blind to actual support needs.&lt;/p&gt;

&lt;p&gt;This results in slower resolutions, duplicated effort, and knowledge that never reaches the people who need it.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;The Solution: One Query, Complete Context&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;We built Area51 - a unified semantic search system that connects all three platforms through MindsDB Knowledge Bases. Instead of building separate ETL pipelines, custom vector databases, and orchestration layers, MindsDB handles everything declaratively.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8chex5p8mdyeaegx3ayx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8chex5p8mdyeaegx3ayx.png" alt=" " width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The system automatically syncs all three platforms, provides semantic search that understands relationships and context, and stays current without manual intervention. Most importantly, it offers distinct agent interfaces for different workflows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LangGraph Agent - Conversational, multi-turn reasoning for complex interactions&lt;/li&gt;
&lt;li&gt;MindsDB SQL Agent - High-performance direct queries to run agents directly from the MindsDB UI&lt;/li&gt;
&lt;li&gt;MCP Server - Integration with AI assistants like Cursor and Claude Desktop&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;What MindsDB Replaced&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What We Needed&lt;/th&gt;
&lt;th&gt;Traditional Approach&lt;/th&gt;
&lt;th&gt;With MindsDB&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Integration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Custom ETL scripts per source&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;CREATE DATASOURCE&lt;/code&gt; statements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Embeddings&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Separate service + API calls&lt;/td&gt;
&lt;td&gt;Automatic chunking + embedding&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vector Storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pinecone/Weaviate/Supabase&lt;/td&gt;
&lt;td&gt;Built-in pgvector integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Search Engine&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Custom semantic search code&lt;/td&gt;
&lt;td&gt;Hybrid SQL queries with &lt;code&gt;MATCHES&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ETL Orchestration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Airflow/Kubernetes CronJobs&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;CREATE JOB&lt;/code&gt; scheduled queries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Evaluation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Custom metrics framework&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;EVALUATE KB&lt;/code&gt; with built-in metrics&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Architecture Deep Dive&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Area51 integrates Zendesk, Jira, and Confluence through MindsDB Knowledge Bases using hybrid semantic search. Here's how it works:&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Data Integration Layer&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Three MindsDB datasources connect directly to external APIs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- One statement per integration, zero API codeCREATE DATASOURCE zendesk_datasource WITH ENGINE = 'zendesk';&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="n"&gt;DATASOURCE&lt;/span&gt; &lt;span class="n"&gt;jira_datasource&lt;/span&gt; &lt;span class="k"&gt;WITH&lt;/span&gt; &lt;span class="n"&gt;ENGINE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'jira'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="n"&gt;DATASOURCE&lt;/span&gt; &lt;span class="n"&gt;confluence_datasource&lt;/span&gt; &lt;span class="k"&gt;WITH&lt;/span&gt; &lt;span class="n"&gt;ENGINE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'confluence'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each datasource handles authentication, pagination, and rate limiting automatically. No custom ETL code required.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Knowledge Base Layer&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Three separate knowledge bases, each with Azure OpenAI embeddings.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Confluence - For companies official documentations&lt;/li&gt;
&lt;li&gt;Jira - For engineering/technical tickets&lt;/li&gt;
&lt;li&gt;Zendesk - For customer tickets&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;MindsDB automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chunks documents intelligently&lt;/li&gt;
&lt;li&gt;Generates embeddings via Azure OpenAI&lt;/li&gt;
&lt;li&gt;Stores vectors in pgvector&lt;/li&gt;
&lt;li&gt;Creates hybrid search indexes&lt;/li&gt;
&lt;li&gt;Handles versioning and metadata&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Automation Layer: Zero-Ops ETL&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Traditional approach: Airflow DAGs, Kubernetes CronJobs, custom monitoring dashboards.&lt;/p&gt;

&lt;p&gt;MindsDB approach:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="n"&gt;JOB&lt;/span&gt; &lt;span class="n"&gt;jira_refresh_job&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;insert&lt;/span&gt; &lt;span class="k"&gt;into&lt;/span&gt; &lt;span class="n"&gt;jira_kb&lt;/span&gt;
    &lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;jira_datasource&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;EVERY&lt;/span&gt; &lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Translation:&lt;/strong&gt; &lt;em&gt;"Keep the knowledge base updated hourly, with incremental refreshes, forever."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We created three jobs running on different schedules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zendesk KB: Every 30 minutes&lt;/li&gt;
&lt;li&gt;Jira KB: Every 30 minutes&lt;/li&gt;
&lt;li&gt;Confluence KB: Every day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Zero DevOps overhead.&lt;/strong&gt; MindsDB handles scheduled execution, incremental updates, failure retries, and status tracking.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;The Three Agent Interfaces&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. LangGraph Conversational Agent&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The LangGraph agent provides a visual development interface and conversational interaction through an intelligent routing system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsu6xyvhal8h2qcnw2snp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsu6xyvhal8h2qcnw2snp.png" alt=" " width="800" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Starting the Agent:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv run langgraph dev

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server starts on &lt;code&gt;http://127.0.0.1:2024&lt;/code&gt; and automatically opens LangChain Studio in your browser, showing the graph visualization of the workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Graph Architecture:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The support_agent graph uses intelligent routing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Router&lt;/strong&gt; - Analyzes queries and determines which systems to search&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search Nodes&lt;/strong&gt; - Three parallel operations:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;search_jira&lt;/code&gt; - Search Jira issues&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;search_zendesk&lt;/code&gt; - Search Zendesk tickets&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;search_confluence&lt;/code&gt; - Search Confluence documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aggregate Results&lt;/strong&gt; - Synthesizes findings into unified responses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Handling&lt;/strong&gt; - Manages failures gracefully&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example Interaction:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0zcawn5tg3867goz35a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo0zcawn5tg3867goz35a.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Query:&lt;/strong&gt; ”Is the team working on something related to 2FA? and are there any support tickets on the same?”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent Response:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyegnmkqj5op3r85qew18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyegnmkqj5op3r85qew18.png" alt=" " width="800" height="241"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. MindsDB SQL Agent&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The MindsDB SQL agent provides high-performance direct queries, automatically created during setup.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzv7bx0odbh5q0sjf6b4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzv7bx0odbh5q0sjf6b4.png" alt=" " width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accessing via MindsDB Studio:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open MindsDB Studio at &lt;code&gt;http://localhost:47334&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Navigate to the SQL Editor&lt;/li&gt;
&lt;li&gt;Query using natural language:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;answer&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;support_agent&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;question&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Anything that the engineering team is working on related to 2fa on jira?'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent understands questions semantically and returns relevant results from all knowledge bases, automatically routing to Jira, Zendesk, or Confluence as needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programmatic Access:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;mindsdb_sdk&lt;/span&gt;

&lt;span class="n"&gt;server&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mindsdb_sdk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;connect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;http://localhost:47334&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;kb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;knowledge_bases&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;zendesk_kb&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Execute semantic search
&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;kb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;payment errors&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;3. MCP Server for AI Assistants&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The MCP (Model Context Protocol) server enables AI assistants like Cursor and Claude Desktop to search across all knowledge bases through natural conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Starting the Server:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv run fastmcp run server.py &lt;span class="nt"&gt;--transport&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sse

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Server starts on &lt;code&gt;http://127.0.0.1:5000/sse&lt;/code&gt; with the name "Support Agent Assistant".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlm4g4dx9qswr0bk4u07.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlm4g4dx9qswr0bk4u07.png" alt=" " width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Configure Cursor:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add to Cursor settings:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"area51-support-agent"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"uv"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fastmcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"server.py"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"--transport=sse"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"env"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"MINDSDB_URL"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http://localhost:47334"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once configured, ask Cursor: "Search for authentication errors in Zendesk" and it will use the MCP server to query your knowledge bases.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Hybrid Search: The Best of Both Worlds&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;MindsDB's &lt;code&gt;MATCHES&lt;/code&gt; operator unlocks semantic search, while traditional SQL enables structured filtering.&lt;/p&gt;

&lt;h3&gt;
  
  
  Semantic Search
&lt;/h3&gt;

&lt;p&gt;Find relevant tickets using natural language understanding:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;confluence_kb&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'docker'&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;relevance&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;
&lt;span class="k"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The semantic search understands that "docker" relates to "open source hosting" without requiring exact keyword matches.&lt;/p&gt;

&lt;h3&gt;
  
  
  Structured Filtering
&lt;/h3&gt;

&lt;p&gt;Query specific metadata fields for precise results:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;jira_kb&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'In Progress'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Hybrid Search
&lt;/h3&gt;

&lt;p&gt;Combine semantic understanding with structured metadata filters:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;zendesk_kb&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'2fa'&lt;/span&gt;
&lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="n"&gt;hybrid_search&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;true&lt;/span&gt;
&lt;span class="k"&gt;and&lt;/span&gt; &lt;span class="n"&gt;hybrid_search_alpha&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;
&lt;span class="k"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This query semantically searches for 2fa-related content while simultaneously filtering by while using hybrid search functionality of mindsDb.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Real-World Impact&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Use Case 1: Distinguishing Feature Requests from Documentation Gaps&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A customer asks how to bulk export transaction data via the API. The agent queries: "bulk export transaction data API"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Confluence&lt;/strong&gt;: No documentation found&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jira&lt;/strong&gt;: Finds "FEAT-445: Implement bulk data export endpoint" in development&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zendesk&lt;/strong&gt;: Finds 3 similar tickets from past month&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Result: Support can confidently respond that this is a planned feature with expected delivery next release, rather than creating a feature request.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Use Case 2: Finding Relevant Documentation to Resolve Tickets&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Customer reports: "Getting 401 errors when calling the payments endpoint"&lt;/p&gt;

&lt;p&gt;The agent queries: "authentication failures payments API 401 errors"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Confluence&lt;/strong&gt;: Returns "API Authentication Troubleshooting Guide" with dedicated section on 401 errors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zendesk&lt;/strong&gt;: Finds 15 resolved tickets with similar issues&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pattern Analysis&lt;/strong&gt;: Most common resolution is using sandbox keys in production&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Result: Issue typically resolved in 5 minutes with existing documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Use Case 3: Leveraging Historical Context for Faster Resolution&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Customer: "Dashboard widgets loading very slowly since yesterday"&lt;/p&gt;

&lt;p&gt;The agent queries: "dashboard performance slow loading widgets"&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zendesk&lt;/strong&gt;: Shows 8 tickets in past 24 hours, plus historical spike 3 months ago&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jira&lt;/strong&gt;: Finds current investigation (DASH-892) and past issue (DASH-756) with similar root cause&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confluence&lt;/strong&gt;: Returns monitoring runbook and database maintenance procedures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Result: Engineering team checks database indexes first, finds the issue in 15 minutes instead of hours of investigation. Historical pattern recognition prevents reinventing the wheel.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Performance Metrics&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Area51 achieves strong performance across all three knowledge bases with sub-second query times and high relevance.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Knowledge Base&lt;/th&gt;
&lt;th&gt;Hit Rate&lt;/th&gt;
&lt;th&gt;Recall Score&lt;/th&gt;
&lt;th&gt;Avg Query Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Confluence KB&lt;/td&gt;
&lt;td&gt;94.0%&lt;/td&gt;
&lt;td&gt;0.940&lt;/td&gt;
&lt;td&gt;0.15s&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcf6qyzkt5nqvvy5vrjw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcf6qyzkt5nqvvy5vrjw.png" alt=" " width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8aehw9qtipweczcxpbzi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8aehw9qtipweczcxpbzi.png" alt=" " width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Metrics are generated using MindsDB's built-in evaluation framework, which calculates hit rates, cumulative recall, and mean reciprocal rank. The system auto-generates test questions from knowledge base content for continuous quality monitoring.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Evaluation Command&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="n"&gt;EVALUATE&lt;/span&gt; &lt;span class="n"&gt;KNOWLEDGE_BASE&lt;/span&gt; &lt;span class="n"&gt;confluence_kb&lt;/span&gt;
&lt;span class="k"&gt;USING&lt;/span&gt; 
    &lt;span class="n"&gt;test_table&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'pgvector_datasource.confluence_test_table'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;version&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'doc_id'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;generate_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;evaluate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns comprehensive metrics including Hit@1, Hit@5, Hit@10, MRR, and recall scores.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Deployment&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Our entire system runs in a single Docker Compose file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;mindsdb&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;47334:47334"&lt;/span&gt;
  &lt;span class="na"&gt;pgvector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;pgvector/pgvector:pg16&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;5432:5432"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Setup script&lt;/strong&gt; (&lt;code&gt;setup.py&lt;/code&gt;) handles:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Starting containers&lt;/li&gt;
&lt;li&gt;Creating datasources&lt;/li&gt;
&lt;li&gt;Creating knowledge bases&lt;/li&gt;
&lt;li&gt;Inserting initial data&lt;/li&gt;
&lt;li&gt;Creating agents&lt;/li&gt;
&lt;li&gt;Scheduling refresh jobs&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Technical Stack&lt;/strong&gt;
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Layer&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Technology&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Why&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LLM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Azure OpenAI (GPT-4o-mini)&lt;/td&gt;
&lt;td&gt;Cost-effective embeddings + reasoning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Orchestration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;LangGraph&lt;/td&gt;
&lt;td&gt;Multi-turn agent flows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vector Storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;pgvector (via MindsDB)&lt;/td&gt;
&lt;td&gt;Postgres-native, no extra infra&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Layer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MindsDB Knowledge Bases&lt;/td&gt;
&lt;td&gt;SQL-native, zero ETL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Connectors&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MindsDB integrations&lt;/td&gt;
&lt;td&gt;Jira, Zendesk, Confluence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Agent Framework&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MindsDB SQL Agent&lt;/td&gt;
&lt;td&gt;Direct hybrid query interface&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MCP Wrapper&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;FastMCP&lt;/td&gt;
&lt;td&gt;Claude Desktop integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hosting&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Docker Compose&lt;/td&gt;
&lt;td&gt;Single &lt;code&gt;docker compose up&lt;/code&gt; deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Getting Started&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker and Docker Compose&lt;/li&gt;
&lt;li&gt;Python 3.10+&lt;/li&gt;
&lt;li&gt;Azure OpenAI API key&lt;/li&gt;
&lt;li&gt;Zendesk/Jira/Confluence API credentials&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Installation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone the repository&lt;/span&gt;
git clone &amp;lt;repo-url&amp;gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;area51

&lt;span class="c"&gt;# Set up Python environment&lt;/span&gt;
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv .venv
&lt;span class="nb"&gt;source&lt;/span&gt; .venv/bin/activate
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# Configure environment variablescp .env.example .env&lt;/span&gt;
&lt;span class="c"&gt;# Edit .env with your API credentials# Run setup script&lt;/span&gt;
python setup.py &lt;span class="nt"&gt;--mode&lt;/span&gt; setup

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;Acknowledgments&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Special thanks to the &lt;a class="mentioned-user" href="https://dev.to/mindsdbteam"&gt;@mindsdbteam&lt;/a&gt; team for building a platform that makes AI-powered data applications accessible to every developer. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Built for Hacktoberfest 2024 by Prasanna Saravanan, Vignesh, and Varsha. Powered by MindsDB Knowledge Bases.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/prasnna-saravanan/area-51" rel="noopener noreferrer"&gt;https://github.com/prasnna-saravanan/area-51&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Made with ❤️ during Hacktoberfest 2025&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>mindsdb</category>
      <category>supportagent</category>
      <category>hacktoberfest</category>
      <category>rag</category>
    </item>
  </channel>
</rss>
