adaptive-agent-mcp
A self-evolving RAG system that enables AI agents to autonomously read and write memory, continuously learning and adapting user preferences, daily logs, and knowledge graphs across applications.
README
<div align="center">
<img src="https://raw.githubusercontent.com/justforever17/adaptive-agent-mcp/main/assets/logo.svg" alt="Adaptive Agent MCP" width="500">
Self-Evolving RAG for AI Agents
Agents don't just read memory — they write it.
中文 | English
</div>
Core Concept
<table> <tr> <td width="50%">
Traditional RAG
User Input → Retrieve KB → Generate
↑
Read-only
(Human-maintained)
</td> <td width="50%">
Self-Evolving RAG
User Input → Retrieve Memory → Generate
↑↓
Read + Write
Agent autonomously evolves
</td> </tr> </table>
Key Differences:
| Traditional RAG | Adaptive Agent MCP | |
|---|---|---|
| Read | Retrieves pre-indexed documents | Dynamically accumulates at runtime |
| Write | Human-maintained knowledge base | Agent writes autonomously |
| Scope | Generic knowledge | User-specific memory |
| State | Static data | Continuously evolves |
How It Works
In Claude Code: "Remember, I prefer TypeScript"
↓
Agent automatically calls:
• append_daily_log() → Record to daily log
• update_preference() → Update preferences
• extract_knowledge() → Extract knowledge graph
↓
In Antigravity: "What are my coding preferences?"
↓
AI: "You prefer TypeScript"
Teach once, remember forever. Share across apps, never forget.
Getting Started
Prerequisites
- Python 3.10+
- Ripgrep (
rg): REQUIRED for full-text search. (Windows:choco install ripgrep, macOS:brew install ripgrep) - SQLite: Handled automatically by Python.
Configuration (v0.6.0)
Configuration is managed via Environment Variables.
1. mcp.json Structure
{
"mcpServers": {
"adaptive-agent-mcp": {
"command": "uvx",
"args": ["adaptive-agent-mcp"],
"env": {
"ADAPTIVE_EMBEDDING_BASE_URL": "https://api.xxx.cn/v1",
"ADAPTIVE_EMBEDDING_API_KEY": "sk-your-xxx-key",
"ADAPTIVE_EMBEDDING_MODEL": "Qwen/Qwen2.5-Coder-7B-Instruct",
"ADAPTIVE_RERANK_BASE_URL": "https://api.xxx.cn/v1",
"ADAPTIVE_RERANK_API_KEY": "sk-your-xxx-key",
"ADAPTIVE_RERANK_MODEL": "BAAI/bge-reranker-v2-m3"
}
}
}
}
Local Models:
- Ollama: Set
ADAPTIVE_EMBEDDING_PROVIDERtoollama.- LM Studio/vLLM: Set
ADAPTIVE_EMBEDDING_PROVIDERtoopenai_compatible.- Base URL: Set to your local endpoint (e.g.,
http://localhost:11434/v1orhttp://localhost:1234/v1).- API Key: Any string.
2. Environment Variables
All variables are prefixed with ADAPTIVE_.
| Variable | Description | Default |
|---|---|---|
ADAPTIVE_STORAGE_PATH |
Storage location | ~/.adaptive-agent/memory |
ADAPTIVE_RIPGREP_PATH |
Path to rg executable |
Auto-detect |
ADAPTIVE_EMBEDDING_PROVIDER |
Embedding provider (openai_compatible) |
openai_compatible |
ADAPTIVE_EMBEDDING_BASE_URL |
API Endpoint | None |
ADAPTIVE_EMBEDDING_API_KEY |
API Key | None |
ADAPTIVE_EMBEDDING_MODEL |
Embedding Model | Qwen/Qwen3-Embedding-8B |
ADAPTIVE_RERANK_PROVIDER |
Rerank provider (cohere_compatible) |
cohere_compatible |
ADAPTIVE_RERANK_BASE_URL |
API Endpoint | None |
ADAPTIVE_RERANK_API_KEY |
API Key | None |
ADAPTIVE_RERANK_MODEL |
Reranker Model | Qwen/Qwen3-Reranker-8B |
Default storage path:
~/.adaptive-agent/memory. All apps share the same memory.
Enhance Agent Memory Behavior (Optional)
If your AI doesn't actively read/write memory, add this to your system prompt or user rules:
## Memory System Instructions
- At the start of each conversation, call `initialize_session` to load user preferences.
- When user says "remember", "save", or expresses preferences, call `update_preference` or `append_daily_log`.
- After completing tasks, briefly record progress using `append_daily_log`.
- When user asks about past conversations, use `query_memory_headers` or `search_memory_content`.
Features
| Feature | Description | Version |
|---|---|---|
| Three-Layer Memory | MEMORY.md + Daily Logs + Knowledge Items | v0.1.0 |
| Scope Isolation | project:xxx, app:xxx, global |
v0.2.0 |
| Concurrent Safety | Cross-process file locking + async locks | v0.3.0 |
| Incremental Indexing | mtime-based smart updates | v0.3.0 |
| Hybrid Search | Vector + FTS5 with RRF fusion | v0.6.0 |
| Rerank Service | Cohere-compatible re-ranking for higher precision | v0.6.1 |
| Area Partitioning | Scope-based knowledge routing | v0.6.0 |
| Knowledge Graph | NetworkX-based entity relations | v0.5.0 |
| Async Foundation | Non-blocking I/O throughout | v0.6.0 |
Available Tools (14 tools)
Session & Retrieval
| Tool | Description |
|---|---|
initialize_session |
Initialize session with user profile and recent context |
query_memory_headers |
Index scan — browse memory file metadata |
read_memory_content |
Read complete memory file content |
search_memory_content |
Full-text search using ripgrep |
Memory & Knowledge
| Tool | Description |
|---|---|
update_preference |
Intelligently update user preferences |
append_daily_log |
Append content to daily log or knowledge items |
query_knowledge |
Hybrid search (Vector + FTS5 + RRF fusion) with browse fallback |
delete_knowledge |
Soft-delete knowledge items |
get_period_context |
Aggregate weekly/monthly logs for summaries |
archive_period |
Save period summaries |
Knowledge Graph
| Tool | Description |
|---|---|
extract_knowledge |
Extract entity relations from text |
add_knowledge_relation |
Manually add relations |
query_knowledge_graph |
Query entities, relations, or stats |
multi_hop_query |
Multi-hop reasoning queries |
Storage Structure
~/.adaptive-agent/memory/
├── MEMORY.md # User preferences (scope-based)
├── knowledge/
│ └── areas/
│ ├── general/items.json # Global knowledge
│ ├── chat/items.json # Chat-scope knowledge
│ ├── coding/items.json # Coding-scope knowledge
│ ├── writing/items.json # Writing-scope knowledge
│ └── projects/{name}/items.json # Project-specific knowledge
├── .index/
│ ├── vectors.db # SQLite + sqlite-vec + FTS5
│ └── index.json # Indexer metadata
├── .graph/
│ └── knowledge.json # NetworkX graph
├── .locks/ # File lock directory
└── memory/
└── 2026/
└── 02_february/
└── week_07/
└── 2026-02-10.md # Daily logs
Data Safety
- Isolated storage: Data stored in
~/.adaptive-agent/memory, independent of uvx installation - Concurrent safety: filelock prevents data corruption from multiple clients
- Human-readable: All data in Markdown/JSON format, easy to backup and version control
License
MIT License - See LICENSE for details.
<div align="center">
Adaptive Agent MCP — Where agents learn, remember, and evolve.
</div>
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
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
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.