<?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.us-east-2.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:&amp;nbsp;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&amp;nbsp;Area51&amp;nbsp;- 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&amp;nbsp;distinct agent interfaces&amp;nbsp;for different workflows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LangGraph Agent&amp;nbsp;- Conversational, multi-turn reasoning for complex interactions&lt;/li&gt;
&lt;li&gt;MindsDB SQL Agent&amp;nbsp;- High-performance direct queries to run agents directly from the MindsDB UI&lt;/li&gt;
&lt;li&gt;MCP Server&amp;nbsp;- 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;&amp;nbsp;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&amp;nbsp;&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;&amp;nbsp;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;&amp;nbsp;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;&amp;nbsp;&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;&amp;nbsp;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&amp;nbsp;&lt;code&gt;http://127.0.0.1:2024&lt;/code&gt;&amp;nbsp;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;&amp;nbsp;- Analyzes queries and determines which systems to search&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search Nodes&lt;/strong&gt;&amp;nbsp;- Three parallel operations:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;search_jira&lt;/code&gt;&amp;nbsp;- Search Jira issues&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;search_zendesk&lt;/code&gt;&amp;nbsp;- Search Zendesk tickets&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;search_confluence&lt;/code&gt;&amp;nbsp;- Search Confluence documentation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aggregate Results&lt;/strong&gt;&amp;nbsp;- Synthesizes findings into unified responses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error Handling&lt;/strong&gt;&amp;nbsp;- 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;&amp;nbsp;”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&amp;nbsp;&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&amp;nbsp;&lt;code&gt;http://127.0.0.1:5000/sse&lt;/code&gt;&amp;nbsp;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&amp;nbsp;&lt;code&gt;MATCHES&lt;/code&gt;&amp;nbsp;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:&amp;nbsp;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:&amp;nbsp;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:&amp;nbsp;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;&amp;nbsp;(&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&amp;nbsp;&lt;code&gt;docker compose up&lt;/code&gt;&amp;nbsp;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>
