Agent Context MCP Server
README.md
# Agent Context MCP Server
A portable, tool-agnostic memory and code structure graph for agentic AI coding tools (OpenCode, Antigravity, Claude Code, etc.).
## 🧠 The Problem
Agentic AI tools typically keep their memory locked inside a single session. When you run out of context tokens or switch to a different AI tool, you lose:
- What you were currently working on (tasks, pending steps).
- Why past technical decisions were made.
- The structural architecture of the codebase.
## 🚀 The Solution
The **Agent Context Server** is an MCP (Model Context Protocol) server that tracks working context and code structure in a lightweight, local SQLite database (`.agentctx/context.db`). It provides a single, portable memory that follows the *project* rather than the *tool*.
You can start a task in one AI tool, hit a context limit, open a completely different AI tool, and resume exactly where you left off.
## ✨ Features
* **Working Context Engine:** Tracks active tasks, decisions, progress logs, and open questions across sessions.
* **Code Structure Graph:** Uses `tree-sitter` to parse and map `Python`, `JavaScript`, and `TypeScript` files, extracting classes, functions, and methods without sending your code to external APIs.
* **Incremental Indexing:** Smart content-hashing ensures only modified files are re-indexed.
* **Project Export:** Built-in tools to instantly zip and backup your agent's memory state.
* **Fully Local & Private:** No LLM calls inside the server; all state is kept entirely locally via SQLite.
## 🛠️ Prerequisites
* [Python 3.10+](https://www.python.org/)
* [uv](https://docs.astral.sh/uv/) (Fast Python package and project manager)
## 📦 Installation
1. Clone this repository to your machine:
```bash
git clone (replace with your own repo URL once you push this to GitHub)
cd agent-context-mcp-server
```
2. The project uses `uv` for dependency management. The required packages (`mcp`, `tree-sitter`, `tree-sitter-python`, `tree-sitter-javascript`, `tree-sitter-typescript`) will be automatically managed when you run the server.
## ⚙️ MCP Configuration
To use this server with your preferred agentic AI tool (like Google Antigravity, OpenCode, or Claude Code), add the following to your MCP configuration settings:
```json
{
"mcpServers": {
"agent-context-server": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/agent-context-mcp-server",
"run",
"server.py"
]
}
}
}
```
> **Note:** Replace `/absolute/path/to/agent-context-mcp-server` with the actual path where you cloned this repository. The server will dynamically create the `.agentctx/` directory in whatever project folder your AI agent is currently working in.
---
## 🧰 Available Tools
Once connected, your AI agent will have access to the following tools:
### Working Context
* **`start_task(title)`**: Creates a new working context task.
* **`log_progress(task_id, entry, entry_type)`**: Appends a progress log (`step_done`, `error_hit`, `next_step`, `note`).
* **`log_decision(task_id, decision, reason, symbol_ref)`**: Logs technical decisions and the reasoning behind them.
* **`add_question(question)` / `resolve_question(question_id)`**: Manages open questions.
* **`resume(task_id?)`**: Retrieves the full state of the active task to seamlessly pick up work.
* **`list_tasks(status?)`**: Lists active, done, blocked, or abandoned tasks.
### Structure Graph
* **`graph.index(path, languages?)`**: Parses a file (`.py`, `.js`, `.ts`, `.jsx`, `.tsx`) and extracts structural symbols.
* **`graph.get_symbol(name)`**: Retrieves a specific symbol's file path and line numbers.
* **`graph.trace_calls(symbol_name, direction)`**: Traces inbound or outbound function calls within the same file.
* **`graph.get_architecture()`**: Returns a high-level overview of the parsed codebase, including files, symbol counts, and root entry points.
### Lifecycle
* **`project.export()`**: Zips the entire `.agentctx/` directory for safe backup and sharing.
---
## 📄 License
* **MIT License**
TDQS
B3.3/5.0
Scored across 12 tools
Disambiguation5/5
Tools are clearly separated into graph analysis (graph.*) and context management (add_question, log_decision, etc.), each with distinct purposes. No overlap between tools.
Naming Consistency4/5
Uses a mix of plain snake_case (add_question, list_tasks) and dotted hierarchical names (graph.get_architecture, project.export). Consistent within subgroups but inconsistent across the whole set.
Tool Count5/5
12 tools cover the main functionalities of code graph analysis and task/context management without being excessive. Well-scoped for the server's domain.
Completeness3/5
Core operations are present but missing lifecycle actions: no update/delete for tasks, decisions, or questions. Graph tools lack search or listing capabilities.
Maintenance
ActivityStale
ResponsivenessNo issues