
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
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。