README Documentation
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_1vsfeature_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
Quick Actions
Key Features
Model Context Protocol
Secure Communication
Real-time Updates
Open Source