
MCP Autonomous Analyst
A local, agentic AI pipeline that analyzes tabular data, detects anomalies, and generates interpretive summaries using local LLMs orchestrated via the Model Context Protocol.
README
<p align="center"> <img src="https://img.shields.io/badge/Python-3.12-blue?logo=python" alt="Python Badge"/> <img src="https://img.shields.io/badge/MCP-Model_Context_Protocol-purple" alt="MCP Badge"/> <img src="https://img.shields.io/badge/Ollama-LLM-green" alt="Ollama Badge"/> <img src="https://img.shields.io/badge/ChromaDB-VectorDB-orange" alt="ChromaDB Badge"/> <img src="https://img.shields.io/badge/FastAPI-Web_UI-teal" alt="FastAPI Badge"/> <img src="https://img.shields.io/badge/Uvicorn-ASGI_Server-black" alt="Uvicorn Badge"/> </p>
Autonomous Analyst
🧠 Overview
Autonomous Analyst is a local, agentic AI pipeline that:
- Analyzes tabular data
- Detects anomalies with Mahalanobis distance
- Uses a local LLM (llama3.2:1b via Ollama) to generate interpretive summaries
- Logs results to ChromaDB for semantic recall
- Is fully orchestrated via the Model Context Protocol (MCP)
⚙️ Features
Component | Description |
---|---|
FastAPI Web UI | Friendly dashboard for synthetic or uploaded datasets |
MCP Tool Orchestration | Each process step is exposed as a callable MCP tool |
Anomaly Detection | Mahalanobis Distance-based outlier detection |
Visual Output | Saved scatter plot of inliers vs. outliers |
Local LLM Summarization | Insights generated using llama3.2:1b via Ollama |
Vector Store Logging | Summaries are stored in ChromaDB for persistent memory |
Agentic Planning Tool | A dedicated LLM tool (autonomous_plan ) determines next steps based on dataset context |
Agentic Flow | LLM + memory + tool use + automatic reasoning + context awareness |
🧪 Tools Defined (via MCP)
Tool Name | Description | LLM Used |
---|---|---|
generate_data |
Create synthetic tabular data (Gaussian + categorical) | ❌ |
analyze_outliers |
Label rows using Mahalanobis distance | ❌ |
plot_results |
Save a plot visualizing inliers vs outliers | ❌ |
summarize_results |
Interpret and explain outlier distribution using llama3.2:1b |
✅ |
summarize_data_stats |
Describe dataset trends using llama3.2:1b |
✅ |
log_results_to_vector_store |
Store summaries to ChromaDB for future reference | ❌ |
search_logs |
Retrieve relevant past sessions using vector search (optional LLM use) | ⚠️ |
autonomous_plan |
Run the full pipeline, use LLM to recommend next actions automatically | ✅ |
🤖 Agentic Capabilities
- Autonomy: LLM-guided execution path selection with
autonomous_plan
- Tool Use: Dynamically invokes registered MCP tools via LLM inference
- Reasoning: Generates technical insights from dataset conditions and outlier analysis
- Memory: Persists and recalls knowledge using ChromaDB vector search
- LLM: Powered by Ollama with
llama3.2:1b
(temperature = 0.1, deterministic)
🚀 Getting Started
1. Clone and Set Up
git clone https://github.com/MadMando/mcp-autonomous-analyst.git
cd mcp-autonomous-analyst
conda create -n mcp-agentic python=3.11 -y
conda activate mcp-agentic
pip install uv
uv pip install -r requirements.txt
2. Start the MCP Server
mcp run server.py --transport streamable-http
3. Start the Web Dashboard
uvicorn web:app --reload --port 8001
Then visit: http://localhost:8000
🌐 Dashboard Flow
- Step 1: Upload your own dataset or click
Generate Synthetic Data
- Step 2: The system runs anomaly detection on
feature_1
vsfeature_2
- Step 3: Visual plot of outliers is generated
- Step 4: Summaries are created via LLM
- Step 5: Results are optionally logged to vector store for recall
📁 Project Layout
📦 autonomous-analyst/
├── server.py # MCP server
├── web.py # FastAPI + MCP client (frontend logic)
├── tools/
│ ├── synthetic_data.py
│ ├── outlier_detection.py
│ ├── plotter.py
│ ├── summarizer.py
│ ├── vector_store.py
├── static/ # Saved plot
├── data/ # Uploaded or generated dataset
├── requirements.txt
├── .gitignore
└── README.md
📚 Tech Stack
- MCP SDK:
mcp
- LLM Inference: Ollama running
llama3.2:1b
- UI Server: FastAPI + Uvicorn
- Memory: ChromaDB vector database
- Data:
pandas
,matplotlib
,scikit-learn
✅ .gitignore Additions
__pycache__/
*.pyc
*.pkl
.env
static/
data/
🙌 Acknowledgements
This project wouldn't be possible without the incredible work of the open-source community. Special thanks to:
Tool / Library | Purpose | Repository |
---|---|---|
🧠 Model Context Protocol (MCP) | Agentic tool orchestration & execution | modelcontextprotocol/python-sdk |
💬 Ollama | Local LLM inference engine (llama3.2:1b ) |
ollama/ollama |
🔍 ChromaDB | Vector database for logging and retrieval | chroma-core/chroma |
🌐 FastAPI | Interactive, fast web interface | tiangolo/fastapi |
⚡ Uvicorn | ASGI server powering the FastAPI backend | encode/uvicorn |
💡 If you use this project, please consider starring or contributing to the upstream tools that make it possible.
This repo was created with the assistance of a local rag-llm using llama3.2:1b
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.