Persistent Cognitive Layer for AI Agents — MCP Server
Project description
AgentOS — Persistent Cognitive Layer for AI Agents
AgentOS is an MCP (Model Context Protocol) server that gives any compatible AI agent a persistent cognitive layer: long-term memory, goal tracking, self-reflection, and autonomous background monitoring.
It is not a standalone agent. It is a skill that agents like Claude Code, Hermes, or any MCP-compatible agent can connect to and use.
Without AgentOS: Agent ←→ Tools
With AgentOS: Agent ←→ AgentOS (Memory · Goals · Reflection · Insights) ←→ Tools
Features
- Persistent Memory — semantic search across sessions using local embeddings (no API needed)
- Goal Management — track objectives with priority, urgency, deadlines, and progress
- Self-Reflection — log actions and outcomes, detect repeated failures and success patterns
- Background Daemon — runs independently, monitors agents, and generates proactive insights
- Model-agnostic — works with any agent that supports MCP
- Fully offline — no external API calls required
Architecture
┌─────────────────────────────────────────┐
│ AI Agent │
│ (Claude Code / Hermes / any MCP agent) │
└────────────────┬────────────────────────┘
│ MCP (stdio)
┌────────────────▼────────────────────────┐
│ MCP Server (server.py) │
│ │
│ memory_store memory_search │
│ goal_add goal_get_active │
│ reflection_log reflection_analyze │
│ context_get_snapshot │
└────────────────┬────────────────────────┘
│ SQLite + ChromaDB
┌────────────────▼────────────────────────┐
│ Background Daemon (daemon.py) │
│ │
│ • every 30 min → reflection analyzer │
│ • every 60 min → goal monitor │
│ • every 6 hrs → self maintenance │
│ • every 24 hrs → memory decay │
└─────────────────────────────────────────┘
Installation
Requirements: Python 3.11+
git clone https://github.com/your-username/agentos.git
cd agentos
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
The first run will automatically download the embedding model (~90 MB).
Running
Start both processes — each in its own terminal:
# Terminal 1 — MCP Server (talks to the agent)
python server.py
# Terminal 2 — Background Daemon (runs continuously)
python daemon.py
The daemon is optional but required for the "semi-alive" behavior (proactive insights, memory decay, goal alerts).
Connecting to an Agent
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"agentos": {
"command": "python",
"args": ["/absolute/path/to/agentos/server.py"]
}
}
}
Restart Claude Desktop. A 🔨 icon will appear confirming the connection.
Claude Code
claude mcp add-json agentos '{
"command": "python",
"args": ["/absolute/path/to/agentos/server.py"]
}'
Verify with /mcp inside Claude Code.
Available MCP Tools
Memory
| Tool | Description |
|---|---|
memory_store |
Store a new memory with type and importance |
memory_search |
Semantic search across memories |
memory_list |
List recent memories |
memory_update_importance |
Update a memory's importance score |
memory_delete |
Delete a specific memory |
Goals
| Tool | Description |
|---|---|
goal_add |
Add a new goal with priority, urgency, deadline |
goal_get_active |
Get active goals sorted by composite priority |
goal_update_progress |
Update progress on a goal |
goal_update_status |
Change goal status |
goal_list |
List goals by status |
Reflection
| Tool | Description |
|---|---|
reflection_log |
Log an action and its outcome |
reflection_analyze |
Detect patterns from recent logs |
reflection_get_patterns |
Retrieve stored patterns |
reflection_get_summary |
Performance summary over N days |
Context
| Tool | Description |
|---|---|
context_get_snapshot |
Unified cognitive state (memories + goals + insights + daemon status) |
Recommended Agent Workflow
1. Session starts → call context_get_snapshot
(loads memories, goals, daemon insights)
2. During work → call memory_store for important information
call reflection_log after each significant action
3. New objective → call goal_add
4. Session ends → call reflection_analyze to update patterns
Configuration
All settings are in .env (copy from .env.example):
| Variable | Default | Description |
|---|---|---|
DATABASE_URL |
sqlite:///./agentos.db |
SQLite database path |
CHROMA_PERSIST_DIR |
./chroma_store |
ChromaDB persistence directory |
EMBEDDING_MODEL |
all-MiniLM-L6-v2 |
Local sentence-transformers model |
MEMORY_DECAY_RATE |
0.01 |
Daily decay rate for unaccessed memories |
REFLECTION_LOOKBACK_DAYS |
7 |
Days analyzed in reflection jobs |
PATTERN_MIN_FREQUENCY |
3 |
Minimum occurrences to flag as a pattern |
Project Structure
agentos/
├── server.py # MCP server entry point
├── daemon.py # Background daemon entry point
├── config.py # Settings via pydantic-settings
├── database.py # SQLite schema and async helpers
│
├── modules/
│ ├── memory/ # Store, retrieve, importance scoring
│ ├── goals/ # CRUD, priority calculation
│ ├── reflection/ # Action logging, pattern detection
│ └── context/ # Unified snapshot builder
│
├── tools/ # MCP tool definitions (one file per module)
│
└── daemon/
├── writer.py # Shared DB writer for all jobs
└── jobs/
├── memory_decay_job.py
├── goal_monitor_job.py
├── reflection_analyzer_job.py
└── self_maintenance_job.py
Roadmap
- PostgreSQL support for multi-user deployments
- REST API alongside MCP
- Web dashboard for monitoring agent state
- Plugin system for custom observers and tools
- Multi-agent memory sharing
License
MIT — see LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentos_mcp-1.0.0.tar.gz.
File metadata
- Download URL: agentos_mcp-1.0.0.tar.gz
- Upload date:
- Size: 64.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbfca9b1568c7093d2282955f0422fa264898ae910543863aba04758943bd433
|
|
| MD5 |
6d42c8a42d470aca77854c79d5efca93
|
|
| BLAKE2b-256 |
3e9b4e9951894c80d41508ba42326227506ebcf6a333c112b92093576fc915cd
|
File details
Details for the file agentos_mcp-1.0.0-py3-none-any.whl.
File metadata
- Download URL: agentos_mcp-1.0.0-py3-none-any.whl
- Upload date:
- Size: 84.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71d876ca6ca572d6cda6d6b84d568219fd0d32460cb5d29eebe2b801c5b25f91
|
|
| MD5 |
70b50cae1061927536b96ae4d545f354
|
|
| BLAKE2b-256 |
b549f888361c89098e906da1e807d0fcbe1bbfa72eb6f4e49549d7febcb178cc
|