Covate agent
Turn AI-assisted coding into real understanding — an MCP server that quizzes you on the code your AI just wrote, plus a hosted learning ledger at covate.org
by SunflowersLwtech·MIT license·★ 8 Stars on the repo·GitHub ↗
Files of Covate
SunflowersLwtech/
Show the full text570 lines
Covate
A context-aware Model Context Protocol (MCP) server that acts as a learning sidecar for AI coding assistants. It helps developers learn from AI-generated code changes through interactive quizzes and provides agents with a persistent project-specific debugging memory.
🌐 Resources
| Resource | Description |
|---|---|
| Glama MCP Marketplace | Official MCP server listing with installation guides |
| DeepWiki Documentation | AI-generated deep analysis of the codebase |
| GitHub Repository | Source code, issues, and contributions |
🚀 Why Use This?
| For | Benefit |
|---|---|
| Developers | Don't just accept AI code—understand it. Request a quiz to verify your grasp of the logic, security, or performance implications. |
| AI Agents | Stop solving the same bug twice. The server quietly records debugging solutions and retrieves them automatically when similar errors occur. |
☁️ Covate learning ledger (free)
The MCP server in this repo is free and open-source (MIT) — run it locally, no account required.
The optional hosted learning ledger is free too: sign in with
GitHub, then run COVATE_SYNC_URL=https://covate.org COVATE_SYNC_TOKEN=<your token> python -m covate.platform_sync from a project to push your local sessions up and review them in a browser:
- ☁️ Sync your learning sessions from any machine
- 📖 Every synced session, newest first, with its score
- 📊 Totals — sessions, questions, correct answers, running accuracy
- 🎯 The topics you answer worst, ranked
- 🔑 Your sync token — reveal or rotate it whenever you want
Not built yet, so not promised: progress-over-time charts, spaced-repetition study plans, team accounts. There is no paid tier and nothing to buy — the MCP works fully without the ledger, and the ledger costs nothing.
📦 Available Tools
| Tool | Type | Description |
|---|---|---|
learning_session |
🎓 Interactive | Opens a WebUI quiz based on recent code changes. Blocks until user completes learning. |
debug_search |
🔍 Silent RAG | Searches project debug history for relevant past solutions. Auto-triggered on errors. |
debug_record |
📝 Silent | Records debugging experiences to project knowledge base. Auto-triggered after fixes. |
term_get |
📚 Reference | Fetches programming terms/concepts. Tracks shown terms to avoid repetition. |
Tool Details
🎓 learning_session - Interactive Learning Card
Trigger: User explicitly requests (e.g., "Quiz me", "Test my understanding")
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
project_directory |
string | "." |
Project directory path |
summary |
string | — | Structured summary of Agent's actions |
reasoning |
object | null | 5-Why reasoning (goal, trigger, mechanism, alternatives, risks) |
quizzes |
array | auto-generated | 3 quiz questions with options, answer, explanation |
focus_areas |
array | ["logic"] |
Focus areas: logic, security, performance, architecture, syntax |
timeout |
int | 600 | Timeout in seconds (60-7200) |
Returns: {"status": "completed", "action": "HALT_GENERATION"}
🔍 debug_search - Search Debug History
Trigger: Auto-called when encountering errors (silent, no UI)
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
string | — | Error message or description to search |
project_directory |
string | "." |
Project directory path |
error_type |
string | null | Filter by error type (e.g., ImportError) |
tags |
array | null | Filter by tags |
limit |
int | 5 | Maximum results (1-20) |
Returns: {"results": [...], "count": N}
📝 debug_record - Record Debug Experience
Trigger: Auto-called after fixing bugs (silent, background)
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
context |
object | — | Error context: {error_type, error_message, file, line} |
cause |
string | — | Root cause analysis |
solution |
string | — | Solution that worked |
project_directory |
string | "." |
Project directory path |
tags |
array | null | Tags for categorization |
Returns: {"ok": true, "id": "..."}
📚 term_get - Get Programming Terms
Available Domains: programming_basics, data_structures, algorithms, software_design, web_development, version_control, testing, security, databases, devops
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
project_directory |
string | "." |
Project directory path |
count |
int | 3 | Number of terms (1-5) |
domain |
string | null | Filter by domain |
Returns: {"terms": [...], "count": N, "remaining": N}
🛠️ Installation
One-Line Install (Recommended)
| Platform | Command |
|---|---|
| macOS / Linux |
|
| Windows (PowerShell) |
|
The installer will:
- Auto-detect your Python environment (uv → conda → venv)
- Clone the repository to
~/covate - Create virtual environment and install dependencies
- Print the exact command to configure your IDE
Manual Installation
Click to expand manual installation steps
Prerequisites: Python 3.11+ or uv
# 1. Clone the repository
git clone https://github.com/SunflowersLwtech/covate.git
cd covate
# 2. Create virtual environment and install
# Using uv (recommended)
uv venv --python 3.11 covate
source covate/bin/activate # macOS/Linux
# covate\Scripts\activate # Windows
uv pip install -e '.[dev]'
# Or using standard venv
python -m venv covate
source covate/bin/activate # macOS/Linux
# covate\Scripts\activate # Windows
pip install -e '.[dev]'
Docker Installation
Click to expand Docker installation steps
Prerequisites: Docker installed on your system
# 1. Pull from Docker Hub
docker pull sunflowerslwtech/covate:latest
# Or build locally
git clone https://github.com/SunflowersLwtech/covate.git
cd covate
docker build -t covate .
# 2. Run with Docker
docker run -i covate
# 3. Or use Docker Compose
docker-compose up -d
For detailed Docker usage, persistent storage, and Claude Desktop integration, see DOCKER.md.
⚙️ IDE Configuration
Claude Code (CLI) — One Command Setup
After installation, configure your AI coding IDE to use this MCP server.
Claude Code
Option 1: CLI (Recommended)
# macOS / Linux
claude mcp add covate -- ~/covate/covate/bin/covate
# Windows
claude mcp add covate -- %USERPROFILE%\covate\covate\Scripts\covate.exe
Option 2: Config File
Add to ~/.claude.json:
{
"mcpServers": {
"covate": {
"command": "~/covate/covate/bin/covate"
}
}
}
For Windows:
{
"mcpServers": {
"covate": {
"command": "C:\\Users\\YourName\\covate\\covate\\Scripts\\covate.exe"
}
}
}
Example paths:
- Unix (uv):
~/covate/covate/bin/covate - Windows (uv):
C:\\Users\\YourName\\covate\\covate\\Scripts\\covate.exe - Windows (conda):
C:\\Users\\YourName\\anaconda3\\envs\\covate\\Scripts\\covate.exe
Path breakdown (Unix example):
~/covate→ repository directorycovate→ virtual environment directory created by uv/venvbin/covate→ executable
Cursor
Add to Cursor MCP settings (Settings → MCP → Add Server):
{
"covate": {
"command": "~/covate/covate/bin/covate"
}
}
For Windows:
{
"covate": {
"command": "C:\\Users\\YourName\\covate\\covate\\Scripts\\covate.exe"
}
}
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"covate": {
"command": "~/covate/covate/bin/covate"
}
}
}
Docker Configuration
To use Docker with any MCP-compatible IDE:
{
"mcpServers": {
"covate": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/path/to/your/project:/workspace",
"-w",
"/workspace",
"covate"
]
}
}
}
See DOCKER.md for detailed Docker configuration examples for Claude Desktop, Cursor, and other IDEs.
Other IDEs
For any MCP-compatible IDE, use these settings:
- Command:
<install-path>/covate/bin/covate(orcovate\Scripts\covate.exeon Windows) - Transport: stdio
After configuration, restart your IDE.
Usage
Available Tools
| Tool | Trigger | For | Returns |
|---|---|---|---|
learning_session |
User explicit request | User | {status, action} - minimal |
debug_search |
Automatic (on error) | Agent | Compact summaries |
debug_record |
Automatic (after fix) | Agent | {ok, id} - minimal |
For Users: Learning Session
Say to your AI assistant:
- "Quiz me on this change"
- "Test my understanding"
- "Help me learn about what you did"
The agent will create an interactive learning card and wait until you complete it.
Note: Quiz scores are saved locally for your self-tracking but are NOT returned to the agent - this keeps the context clean.
For Agents: Debug Tools
The debug tools work silently in the background:
- Search first: When encountering errors, agent searches past solutions
- Record after: When fixing errors, agent records the solution
- Progressive disclosure: Returns compact summaries, not full records
- Fast lookups: Uses inverted index for keyword-based searches
Updating
One-Line Update (Recommended)
The remote update script automatically detects your installation and works with any path format (including Chinese/non-ASCII paths):
| macOS / Linux |
|
| Windows (PowerShell) |
|
The update script will:
- Auto-detect your installation location (supports multiple installations)
- Pull the latest changes from the repository
- Force-reinstall dependencies to ensure version synchronization
- Verify installation integrity and report any issues
- Detect if MCP server is in use and provide clear instructions
Why remote update?
- ✅ Works with Chinese/non-ASCII paths without
cdnavigation- ✅ Always uses the latest update logic from the repository
- ✅ Auto-detects installation location even if you forgot where it is
- ✅ Handles multiple installations gracefully
Local Update (Alternative)
macOS / Linux:
~/covate/scripts/update.sh
Windows (PowerShell):
~\covate\scripts\update.ps1
Manual Update
Click to expand manual update steps
# Navigate to installation directory
cd ~/covate # or your custom installation path
# Pull latest changes
git pull origin main
# Update dependencies
# Using uv
source covate/bin/activate # macOS/Linux
# covate\Scripts\activate # Windows
uv pip install -e '.[dev]' --upgrade
# Or using standard venv
source covate/bin/activate # macOS/Linux
# covate\Scripts\activate # Windows
pip install -e '.[dev]' --upgrade
🖼️ Screenshots
Learning Session WebUI

🔒 Security & Privacy
| Aspect | Details |
|---|---|
| Local First | All data stored in .mcp-sidecar/ directory within your project |
| No Telemetry | Zero data sent to external servers |
| Full Control | Delete .mcp-sidecar/ anytime to reset all data |
🔮 Roadmap
We're building toward a Personalized Learning Center that grows with you. Here's what's coming:
🔍 Advanced Search & Indexing (v1.2)
| Feature | Description |
|---|---|
| SQLite FTS5 | Full-text search with Chinese support, prefix matching, and boolean queries |
| BM25 Ranking | Industry-standard relevance scoring for better search results |
| Semantic Search | Vector embeddings for meaning-based matching (e.g., "权限错误" finds "permission denied") |
| Cross-project Search | Search debug experiences across all your projects |
📱 Mobile App (v2.0)
| Feature | Description |
|---|---|
| Learning History Sync | Access your quiz history and learning progress on mobile |
| Spaced Repetition | Smart review scheduling based on forgetting curves |
| Offline Mode | Learn anywhere, sync when connected |
| Push Notifications | Gentle reminders to review concepts you're forgetting |
🎯 Personalized Learning Center (v2.5)
| Feature | Description |
|---|---|
| Knowledge Graph | Visual map of concepts you've learned and their connections |
| Weakness Analysis | AI identifies areas where you struggle and suggests focused practice |
| Learning Streaks | Gamification to keep you motivated |
| Team Insights | (Optional) Share anonymized learning patterns with your team |
🤖 AI Enhancements (v3.0)
| Feature | Description |
|---|---|
| Adaptive Quizzes | Questions adjust difficulty based on your performance |
| Code Pattern Recognition | Learn from patterns in your own codebase |
| Multi-language Support | Explanations in your preferred language |
| Voice Interface | "Hey Claude, quiz me on what we did yesterday" |
Want to influence the roadmap? Open an issue or join the discussion!
🔧 Environment Variables
| Variable | Default | Description |
|---|---|---|
MCP_DEBUG |
false |
Enable debug logging (true, 1, yes, on) |
MCP_TIMEOUT |
120000 |
MCP server startup timeout in ms |
MAX_MCP_OUTPUT_TOKENS |
25000 |
Maximum tokens for MCP output |
🤝 Contributing
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Install dev dependencies:
uv pip install -e '.[dev]' - Make changes and run tests:
pytest - Submit a Pull Request
See CONTRIBUTING.md for detailed guidelines.
📬 Contact
| Channel | Address |
|---|---|
| [email protected] | |
| [email protected] | |
| GitHub Issues | Open an Issue |
📄 License
This project is licensed under the MIT License.
Built with FastMCP • MCP Standard • Glama MCP
| 1 | # <img src="assets/favicon.png" width="48" height="48" align="top" style="margin-right: 10px;"> Covate |
| 2 | |
| 3 | [English] | [简体中文] | [繁體中文] |
| 4 | |
| 5 | A context-aware **Model Context Protocol (MCP)** server that acts as a learning sidecar for AI coding assistants. It helps developers **learn from AI-generated code changes** through interactive quizzes and provides agents with a persistent **project-specific debugging memory**. |
| 6 | |
| 7 | [![License: MIT]](https://opensource.org/licenses/MIT) |
| 8 | [![Python 3.11+]](https://www.python.org/downloads/) |
| 9 | [![MCP Standard]](https://modelcontextprotocol.io/) |
| 10 | [![Docker]](https://github.com/SunflowersLwtech/covate/blob/main/DOCKER.md) |
| 11 | [![Glama MCP]](https://glama.ai/mcp/servers/@SunflowersLwtech/covate) |
| 12 | [![DeepWiki]](https://deepwiki.com/SunflowersLwtech/covate) |
| 13 | |
| 14 | |
| 15 | |
| 16 | ## 🌐 Resources |
| 17 | |
| 18 | | Resource | Description | |
| 19 | |----------|-------------| |
| 20 | | [**Glama MCP Marketplace**] | Official MCP server listing with installation guides | |
| 21 | | [**DeepWiki Documentation**] | AI-generated deep analysis of the codebase | |
| 22 | | [**GitHub Repository**] | Source code, issues, and contributions | |
| 23 | |
| 24 | |
| 25 | |
| 26 | ## 🚀 Why Use This? |
| 27 | |
| 28 | | For | Benefit | |
| 29 | |-----|---------| |
| 30 | | **Developers** | Don't just accept AI code—understand it. Request a quiz to verify your grasp of the logic, security, or performance implications. | |
| 31 | | **AI Agents** | Stop solving the same bug twice. The server quietly records debugging solutions and retrieves them automatically when similar errors occur. | |
| 32 | |
| 33 | |
| 34 | |
| 35 | ## ☁️ Covate learning ledger (free) |
| 36 | |
| 37 | The MCP server in this repo is free and open-source (MIT) — run it locally, no account required. |
| 38 | The optional hosted **[learning ledger]** is free too: sign in with |
| 39 | GitHub, then run `COVATE_SYNC_URL=https://covate.org COVATE_SYNC_TOKEN=<your token> python -m |
| 40 | covate.platform_sync` from a project to push your local sessions up and review them in a browser: |
| 41 | |
| 42 | ☁️ **Sync** your learning sessions from any machine |
| 43 | 📖 **Every synced session**, newest first, with its score |
| 44 | 📊 **Totals** — sessions, questions, correct answers, running accuracy |
| 45 | 🎯 **The topics you answer worst**, ranked |
| 46 | 🔑 **Your sync token** — reveal or rotate it whenever you want |
| 47 | |
| 48 | Not built yet, so not promised: progress-over-time charts, spaced-repetition study plans, team |
| 49 | accounts. There is **no paid tier and nothing to buy** — the MCP works fully without the ledger, |
| 50 | and the ledger costs nothing. |
| 51 | |
| 52 | |
| 53 | |
| 54 | ## 📦 Available Tools |
| 55 | |
| 56 | | Tool | Type | Description | |
| 57 | |------|------|-------------| |
| 58 | | `learning_session` | 🎓 Interactive | Opens a WebUI quiz based on recent code changes. **Blocks** until user completes learning. | |
| 59 | | `debug_search` | 🔍 Silent RAG | Searches project debug history for relevant past solutions. Auto-triggered on errors. | |
| 60 | | `debug_record` | 📝 Silent | Records debugging experiences to project knowledge base. Auto-triggered after fixes. | |
| 61 | | `term_get` | 📚 Reference | Fetches programming terms/concepts. Tracks shown terms to avoid repetition. | |
| 62 | |
| 63 | ### Tool Details |
| 64 | |
| 65 | <details> |
| 66 | <summary><b>🎓 learning_session</b> - Interactive Learning Card</summary> |
| 67 | |
| 68 | **Trigger**: User explicitly requests (e.g., "Quiz me", "Test my understanding") |
| 69 | |
| 70 | **Parameters**: |
| 71 | | Parameter | Type | Default | Description | |
| 72 | |-----------|------|---------|-------------| |
| 73 | | `project_directory` | string | `"."` | Project directory path | |
| 74 | | `summary` | string | — | Structured summary of Agent's actions | |
| 75 | | `reasoning` | object | null | 5-Why reasoning (goal, trigger, mechanism, alternatives, risks) | |
| 76 | | `quizzes` | array | auto-generated | 3 quiz questions with options, answer, explanation | |
| 77 | | `focus_areas` | array | `["logic"]` | Focus areas: logic, security, performance, architecture, syntax | |
| 78 | | `timeout` | int | 600 | Timeout in seconds (60-7200) | |
| 79 | |
| 80 | **Returns**: `{"status": "completed", "action": "HALT_GENERATION"}` |
| 81 | |
| 82 | </details> |
| 83 | |
| 84 | <details> |
| 85 | <summary><b>🔍 debug_search</b> - Search Debug History</summary> |
| 86 | |
| 87 | **Trigger**: Auto-called when encountering errors (silent, no UI) |
| 88 | |
| 89 | **Parameters**: |
| 90 | | Parameter | Type | Default | Description | |
| 91 | |-----------|------|---------|-------------| |
| 92 | | `query` | string | — | Error message or description to search | |
| 93 | | `project_directory` | string | `"."` | Project directory path | |
| 94 | | `error_type` | string | null | Filter by error type (e.g., ImportError) | |
| 95 | | `tags` | array | null | Filter by tags | |
| 96 | | `limit` | int | 5 | Maximum results (1-20) | |
| 97 | |
| 98 | **Returns**: `{"results": [...], "count": N}` |
| 99 | |
| 100 | </details> |
| 101 | |
| 102 | <details> |
| 103 | <summary><b>📝 debug_record</b> - Record Debug Experience</summary> |
| 104 | |
| 105 | **Trigger**: Auto-called after fixing bugs (silent, background) |
| 106 | |
| 107 | **Parameters**: |
| 108 | | Parameter | Type | Default | Description | |
| 109 | |-----------|------|---------|-------------| |
| 110 | | `context` | object | — | Error context: `{error_type, error_message, file, line}` | |
| 111 | | `cause` | string | — | Root cause analysis | |
| 112 | | `solution` | string | — | Solution that worked | |
| 113 | | `project_directory` | string | `"."` | Project directory path | |
| 114 | | `tags` | array | null | Tags for categorization | |
| 115 | |
| 116 | **Returns**: `{"ok": true, "id": "..."}` |
| 117 | |
| 118 | </details> |
| 119 | |
| 120 | <details> |
| 121 | <summary><b>📚 term_get</b> - Get Programming Terms</summary> |
| 122 | |
| 123 | **Available Domains**: programming_basics, data_structures, algorithms, software_design, web_development, version_control, testing, security, databases, devops |
| 124 | |
| 125 | **Parameters**: |
| 126 | | Parameter | Type | Default | Description | |
| 127 | |-----------|------|---------|-------------| |
| 128 | | `project_directory` | string | `"."` | Project directory path | |
| 129 | | `count` | int | 3 | Number of terms (1-5) | |
| 130 | | `domain` | string | null | Filter by domain | |
| 131 | |
| 132 | **Returns**: `{"terms": [...], "count": N, "remaining": N}` |
| 133 | |
| 134 | </details> |
| 135 | |
| 136 | |
| 137 | |
| 138 | ## 🛠️ Installation |
| 139 | |
| 140 | ### One-Line Install (Recommended) |
| 141 | |
| 142 | <table> |
| 143 | <tr> |
| 144 | <th>Platform</th> |
| 145 | <th>Command</th> |
| 146 | </tr> |
| 147 | <tr> |
| 148 | <td><b>macOS / Linux</b></td> |
| 149 | <td> |
| 150 | |
| 151 | |
| 152 | curl -fsSL https://raw.githubusercontent.com/SunflowersLwtech/covate/main/scripts/install.sh | bash |
| 153 | |
| 154 | |
| 155 | </td> |
| 156 | </tr> |
| 157 | <tr> |
| 158 | <td><b>Windows (PowerShell)</b></td> |
| 159 | <td> |
| 160 | |
| 161 | |
| 162 | irm https://raw.githubusercontent.com/SunflowersLwtech/covate/main/scripts/install.ps1 | iex |
| 163 | |
| 164 | |
| 165 | </td> |
| 166 | </tr> |
| 167 | </table> |
| 168 | |
| 169 | The installer will: |
| 170 | Auto-detect your Python environment (uv → conda → venv) |
| 171 | Clone the repository to `~/covate` |
| 172 | Create virtual environment and install dependencies |
| 173 | Print the exact command to configure your IDE |
| 174 | |
| 175 | ### Manual Installation |
| 176 | |
| 177 | <details> |
| 178 | <summary>Click to expand manual installation steps</summary> |
| 179 | |
| 180 | **Prerequisites**: Python 3.11+ or [uv] |
| 181 | |
| 182 | |
| 183 | # 1. Clone the repository |
| 184 | git clone https://github.com/SunflowersLwtech/covate.git |
| 185 | cd covate |
| 186 | |
| 187 | # 2. Create virtual environment and install |
| 188 | # Using uv (recommended) |
| 189 | uv venv --python 3.11 covate |
| 190 | source covate/bin/activate # macOS/Linux |
| 191 | # covate\Scripts\activate # Windows |
| 192 | uv pip install -e '.[dev]' |
| 193 | |
| 194 | # Or using standard venv |
| 195 | python -m venv covate |
| 196 | source covate/bin/activate # macOS/Linux |
| 197 | # covate\Scripts\activate # Windows |
| 198 | pip install -e '.[dev]' |
| 199 | |
| 200 | |
| 201 | </details> |
| 202 | |
| 203 | ### Docker Installation |
| 204 | |
| 205 | <details> |
| 206 | <summary>Click to expand Docker installation steps</summary> |
| 207 | |
| 208 | **Prerequisites**: Docker installed on your system |
| 209 | |
| 210 | |
| 211 | # 1. Pull from Docker Hub |
| 212 | docker pull sunflowerslwtech/covate:latest |
| 213 | |
| 214 | # Or build locally |
| 215 | git clone https://github.com/SunflowersLwtech/covate.git |
| 216 | cd covate |
| 217 | docker build -t covate . |
| 218 | |
| 219 | # 2. Run with Docker |
| 220 | docker run -i covate |
| 221 | |
| 222 | # 3. Or use Docker Compose |
| 223 | docker-compose up -d |
| 224 | |
| 225 | |
| 226 | For detailed Docker usage, persistent storage, and Claude Desktop integration, see **[DOCKER.md]**. |
| 227 | |
| 228 | </details> |
| 229 | |
| 230 | |
| 231 | |
| 232 | ## ⚙️ IDE Configuration |
| 233 | |
| 234 | ### Claude Code (CLI) — One Command Setup |
| 235 | |
| 236 | After installation, configure your AI coding IDE to use this MCP server. |
| 237 | |
| 238 | ### Claude Code |
| 239 | |
| 240 | **Option 1: CLI (Recommended)** |
| 241 | |
| 242 | # macOS / Linux |
| 243 | claude mcp add covate -- ~/covate/covate/bin/covate |
| 244 | |
| 245 | # Windows |
| 246 | claude mcp add covate -- %USERPROFILE%\covate\covate\Scripts\covate.exe |
| 247 | |
| 248 | |
| 249 | **Option 2: Config File** |
| 250 | |
| 251 | Add to `~/.claude.json`: |
| 252 | |
| 253 | { |
| 254 | "mcpServers": { |
| 255 | "covate": { |
| 256 | "command": "~/covate/covate/bin/covate" |
| 257 | } |
| 258 | } |
| 259 | } |
| 260 | |
| 261 | |
| 262 | For Windows: |
| 263 | |
| 264 | { |
| 265 | "mcpServers": { |
| 266 | "covate": { |
| 267 | "command": "C:\\Users\\YourName\\covate\\covate\\Scripts\\covate.exe" |
| 268 | } |
| 269 | } |
| 270 | } |
| 271 | |
| 272 | |
| 273 | Example paths: |
| 274 | Unix (uv): `~/covate/covate/bin/covate` |
| 275 | Windows (uv): `C:\\Users\\YourName\\covate\\covate\\Scripts\\covate.exe` |
| 276 | Windows (conda): `C:\\Users\\YourName\\anaconda3\\envs\\covate\\Scripts\\covate.exe` |
| 277 | |
| 278 | Path breakdown (Unix example): |
| 279 | `~/covate` → repository directory |
| 280 | `covate` → virtual environment directory created by uv/venv |
| 281 | `bin/covate` → executable |
| 282 | |
| 283 | ### Cursor |
| 284 | |
| 285 | Add to Cursor MCP settings (Settings → MCP → Add Server): |
| 286 | |
| 287 | |
| 288 | { |
| 289 | "covate": { |
| 290 | "command": "~/covate/covate/bin/covate" |
| 291 | } |
| 292 | } |
| 293 | |
| 294 | |
| 295 | For Windows: |
| 296 | |
| 297 | { |
| 298 | "covate": { |
| 299 | "command": "C:\\Users\\YourName\\covate\\covate\\Scripts\\covate.exe" |
| 300 | } |
| 301 | } |
| 302 | |
| 303 | |
| 304 | ### Windsurf |
| 305 | |
| 306 | Add to `~/.codeium/windsurf/mcp_config.json`: |
| 307 | |
| 308 | |
| 309 | { |
| 310 | "mcpServers": { |
| 311 | "covate": { |
| 312 | "command": "~/covate/covate/bin/covate" |
| 313 | } |
| 314 | } |
| 315 | } |
| 316 | |
| 317 | |
| 318 | ### Docker Configuration |
| 319 | |
| 320 | To use Docker with any MCP-compatible IDE: |
| 321 | |
| 322 | |
| 323 | { |
| 324 | "mcpServers": { |
| 325 | "covate": { |
| 326 | "command": "docker", |
| 327 | "args": [ |
| 328 | "run", |
| 329 | "-i", |
| 330 | "--rm", |
| 331 | "-v", |
| 332 | "/path/to/your/project:/workspace", |
| 333 | "-w", |
| 334 | "/workspace", |
| 335 | "covate" |
| 336 | ] |
| 337 | } |
| 338 | } |
| 339 | } |
| 340 | |
| 341 | |
| 342 | See **[DOCKER.md]** for detailed Docker configuration examples for Claude Desktop, Cursor, and other IDEs. |
| 343 | |
| 344 | ### Other IDEs |
| 345 | |
| 346 | For any MCP-compatible IDE, use these settings: |
| 347 | **Command:** `<install-path>/covate/bin/covate` (or `covate\Scripts\covate.exe` on Windows) |
| 348 | **Transport:** stdio |
| 349 | |
| 350 | **After configuration, restart your IDE.** |
| 351 | |
| 352 | ## Usage |
| 353 | |
| 354 | ### Available Tools |
| 355 | |
| 356 | | Tool | Trigger | For | Returns | |
| 357 | |------|---------|-----|---------| |
| 358 | | `learning_session` | User explicit request | **User** | `{status, action}` - minimal | |
| 359 | | `debug_search` | Automatic (on error) | **Agent** | Compact summaries | |
| 360 | | `debug_record` | Automatic (after fix) | **Agent** | `{ok, id}` - minimal | |
| 361 | |
| 362 | ### For Users: Learning Session |
| 363 | |
| 364 | Say to your AI assistant: |
| 365 | "Quiz me on this change" |
| 366 | "Test my understanding" |
| 367 | "Help me learn about what you did" |
| 368 | |
| 369 | The agent will create an interactive learning card and **wait** until you complete it. |
| 370 | |
| 371 | > **Note**: Quiz scores are saved locally for your self-tracking but are NOT returned to the agent - this keeps the context clean. |
| 372 | |
| 373 | ### For Agents: Debug Tools |
| 374 | |
| 375 | The debug tools work silently in the background: |
| 376 | **Search first**: When encountering errors, agent searches past solutions |
| 377 | **Record after**: When fixing errors, agent records the solution |
| 378 | **Progressive disclosure**: Returns compact summaries, not full records |
| 379 | **Fast lookups**: Uses inverted index for keyword-based searches |
| 380 | |
| 381 | ## Updating |
| 382 | |
| 383 | ### One-Line Update (Recommended) |
| 384 | |
| 385 | The remote update script automatically detects your installation and works with **any path format** (including Chinese/non-ASCII paths): |
| 386 | |
| 387 | <table> |
| 388 | <tr> |
| 389 | <td><b>macOS / Linux</b></td> |
| 390 | <td> |
| 391 | |
| 392 | |
| 393 | curl -fsSL https://raw.githubusercontent.com/SunflowersLwtech/covate/main/scripts/update.sh | bash |
| 394 | |
| 395 | |
| 396 | </td> |
| 397 | </tr> |
| 398 | <tr> |
| 399 | <td><b>Windows (PowerShell)</b></td> |
| 400 | <td> |
| 401 | |
| 402 | |
| 403 | irm https://raw.githubusercontent.com/SunflowersLwtech/covate/main/scripts/update.ps1 | iex |
| 404 | |
| 405 | |
| 406 | </td> |
| 407 | </tr> |
| 408 | </table> |
| 409 | |
| 410 | The update script will: |
| 411 | **Auto-detect** your installation location (supports multiple installations) |
| 412 | **Pull** the latest changes from the repository |
| 413 | **Force-reinstall** dependencies to ensure version synchronization |
| 414 | **Verify** installation integrity and report any issues |
| 415 | Detect if MCP server is in use and provide clear instructions |
| 416 | |
| 417 | > **Why remote update?** |
| 418 | > - ✅ Works with Chinese/non-ASCII paths without `cd` navigation |
| 419 | > - ✅ Always uses the latest update logic from the repository |
| 420 | > - ✅ Auto-detects installation location even if you forgot where it is |
| 421 | > - ✅ Handles multiple installations gracefully |
| 422 | |
| 423 | ### Local Update (Alternative) |
| 424 | |
| 425 | **macOS / Linux:** |
| 426 | |
| 427 | ~/covate/scripts/update.sh |
| 428 | |
| 429 | |
| 430 | **Windows (PowerShell):** |
| 431 | |
| 432 | ~\covate\scripts\update.ps1 |
| 433 | |
| 434 | |
| 435 | ### Manual Update |
| 436 | |
| 437 | <details> |
| 438 | <summary>Click to expand manual update steps</summary> |
| 439 | |
| 440 | |
| 441 | # Navigate to installation directory |
| 442 | cd ~/covate # or your custom installation path |
| 443 | |
| 444 | # Pull latest changes |
| 445 | git pull origin main |
| 446 | |
| 447 | # Update dependencies |
| 448 | # Using uv |
| 449 | source covate/bin/activate # macOS/Linux |
| 450 | # covate\Scripts\activate # Windows |
| 451 | uv pip install -e '.[dev]' --upgrade |
| 452 | |
| 453 | # Or using standard venv |
| 454 | source covate/bin/activate # macOS/Linux |
| 455 | # covate\Scripts\activate # Windows |
| 456 | pip install -e '.[dev]' --upgrade |
| 457 | |
| 458 | |
| 459 | </details> |
| 460 | |
| 461 | |
| 462 | |
| 463 | ## 🖼️ Screenshots |
| 464 | |
| 465 | ### Learning Session WebUI |
| 466 | |
| 467 | ![WebUI Preview] |
| 468 | |
| 469 | |
| 470 | |
| 471 | ## 🔒 Security & Privacy |
| 472 | |
| 473 | | Aspect | Details | |
| 474 | |--------|---------| |
| 475 | | **Local First** | All data stored in `.mcp-sidecar/` directory within your project | |
| 476 | | **No Telemetry** | Zero data sent to external servers | |
| 477 | | **Full Control** | Delete `.mcp-sidecar/` anytime to reset all data | |
| 478 | |
| 479 | |
| 480 | |
| 481 | ## 🔮 Roadmap |
| 482 | |
| 483 | We're building toward a **Personalized Learning Center** that grows with you. Here's what's coming: |
| 484 | |
| 485 | ### 🔍 Advanced Search & Indexing (v1.2) |
| 486 | |
| 487 | | Feature | Description | |
| 488 | |---------|-------------| |
| 489 | | **SQLite FTS5** | Full-text search with Chinese support, prefix matching, and boolean queries | |
| 490 | | **BM25 Ranking** | Industry-standard relevance scoring for better search results | |
| 491 | | **Semantic Search** | Vector embeddings for meaning-based matching (e.g., "权限错误" finds "permission denied") | |
| 492 | | **Cross-project Search** | Search debug experiences across all your projects | |
| 493 | |
| 494 | ### 📱 Mobile App (v2.0) |
| 495 | |
| 496 | | Feature | Description | |
| 497 | |---------|-------------| |
| 498 | | **Learning History Sync** | Access your quiz history and learning progress on mobile | |
| 499 | | **Spaced Repetition** | Smart review scheduling based on forgetting curves | |
| 500 | | **Offline Mode** | Learn anywhere, sync when connected | |
| 501 | | **Push Notifications** | Gentle reminders to review concepts you're forgetting | |
| 502 | |
| 503 | ### 🎯 Personalized Learning Center (v2.5) |
| 504 | |
| 505 | | Feature | Description | |
| 506 | |---------|-------------| |
| 507 | | **Knowledge Graph** | Visual map of concepts you've learned and their connections | |
| 508 | | **Weakness Analysis** | AI identifies areas where you struggle and suggests focused practice | |
| 509 | | **Learning Streaks** | Gamification to keep you motivated | |
| 510 | | **Team Insights** | (Optional) Share anonymized learning patterns with your team | |
| 511 | |
| 512 | ### 🤖 AI Enhancements (v3.0) |
| 513 | |
| 514 | | Feature | Description | |
| 515 | |---------|-------------| |
| 516 | | **Adaptive Quizzes** | Questions adjust difficulty based on your performance | |
| 517 | | **Code Pattern Recognition** | Learn from patterns in your own codebase | |
| 518 | | **Multi-language Support** | Explanations in your preferred language | |
| 519 | | **Voice Interface** | "Hey Claude, quiz me on what we did yesterday" | |
| 520 | |
| 521 | > **Want to influence the roadmap?** [Open an issue] or join the discussion! |
| 522 | |
| 523 | |
| 524 | |
| 525 | ## 🔧 Environment Variables |
| 526 | |
| 527 | | Variable | Default | Description | |
| 528 | |----------|---------|-------------| |
| 529 | | `MCP_DEBUG` | `false` | Enable debug logging (`true`, `1`, `yes`, `on`) | |
| 530 | | `MCP_TIMEOUT` | `120000` | MCP server startup timeout in ms | |
| 531 | | `MAX_MCP_OUTPUT_TOKENS` | `25000` | Maximum tokens for MCP output | |
| 532 | |
| 533 | |
| 534 | |
| 535 | ## 🤝 Contributing |
| 536 | |
| 537 | We welcome contributions! Please follow these steps: |
| 538 | |
| 539 | Fork the repository |
| 540 | Create a feature branch: `git checkout -b feature/amazing-feature` |
| 541 | Install dev dependencies: `uv pip install -e '.[dev]'` |
| 542 | Make changes and run tests: `pytest` |
| 543 | Submit a Pull Request |
| 544 | |
| 545 | See [CONTRIBUTING.md] for detailed guidelines. |
| 546 | |
| 547 | |
| 548 | |
| 549 | ## 📬 Contact |
| 550 | |
| 551 | | Channel | Address | |
| 552 | |---------|---------| |
| 553 | | **Email** | [email protected] | |
| 554 | | **Email** | [email protected] | |
| 555 | | **GitHub Issues** | [Open an Issue] | |
| 556 | |
| 557 | |
| 558 | |
| 559 | ## 📄 License |
| 560 | |
| 561 | This project is licensed under the [MIT License]. |
| 562 | |
| 563 | |
| 564 | |
| 565 | <p align="center"> |
| 566 | Built with <a href="https://github.com/jlowin/fastmcp">FastMCP</a> • |
| 567 | <a href="https://modelcontextprotocol.io">MCP Standard</a> • |
| 568 | <a href="https://glama.ai/mcp/servers/@SunflowersLwtech/covate">Glama MCP</a> |
| 569 | </p> |
| 570 |
Discussion
Alternatives
Browse more free AI agents or everything in Development.