mcpField
C
Covate

Covate

Local
covate.orgDeveloper Tools8Updated today

About Covate

Covate is an MCP server for AI coding assistants that helps developers understand code changes and gives agents project-specific debugging memory. It combines interactive quizzes, searchable fix history, and programming-term explanations.

Key features

  1. 01Quizzes on recent code changes
  2. 02Project-specific debugging search
  3. 03Record fixes for later retrieval
  4. 04Programming term explanations
  5. 05Local spaced-review ledger

Use cases

  1. 01Check understanding of AI-generated changes
  2. 02Reuse fixes for recurring project errors
  3. 03Review concepts on a spaced schedule

MCP support

Covate exposes learning, debugging, and terminology tools to MCP clients. Its debug tools can search stored project solutions and record new fixes.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"sunflowerslwtech-covate": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/sunflowerslwtech/covate:1.2.0"
]
}
}
}
Run commanddocker run -i --rm ghcr.io/sunflowerslwtech/covate:1.2.0

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocighcr.io/sunflowerslwtech/covate:1.2.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

README image Covate

English | 简体中文 | 繁體中文

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.

License: MIT Python 3.11+ MCP Standard Docker Glama MCP DeepWiki


🌐 Resources

ResourceDescription
Glama MCP MarketplaceOfficial MCP server listing with installation guides
DeepWiki DocumentationAI-generated deep analysis of the codebase
GitHub RepositorySource code, issues, and contributions

🚀 Why Use This?

ForBenefit
DevelopersDon't just accept AI code—understand it. Request a quiz to verify your grasp of the logic, security, or performance implications.
AI AgentsStop 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.


🔁 Spaced review (local, offline)

covate review keeps a small local ledger of concepts and when to ask about them again. It never talks to the network or to a model; your own agent writes the questions and publishes the page (for example with the FoldRender command line).

covate review page questions.json -o page.html   # questions -> a quiz page (answers marked)
foldrender publish page.html                      # your agent publishes it
foldrender answers <page> --json | covate review record   # score the first answers
covate review due                                 # what to ask about again today
covate review status                              # every concept + first-answer accuracy

Only the first pick on each question counts, so changing an answer after seeing the explanation cannot raise the score. (FoldRender shows the explanation during its few-second undo window, so an answer you take back inside that window does not count; one you leave alone does.) A new concept comes back after 1 day, then 7, then 30 days; a wrong answer sends it back to the 1-day step; passing all three means mastered. The ledger lives in the global Covate storage (override with COVATE_REVIEW_LEDGER). questions.json is {"title": ..., "questions": [{"concept", "question", "options": [...], "correct": <0-based index>, "explanation"?}]}.

In Claude Code, install the plugin to get the MCP server plus /covate:review and /covate:review-record, which walk your agent through the steps above (no hooks, nothing runs unless you call it):

/plugin marketplace add SunflowersLwtech/covate
/plugin install covate@covate

📦 Available Tools

ToolTypeDescription
learning_session🎓 InteractiveOpens a WebUI quiz based on recent code changes. Blocks until user completes learning.
debug_search🔍 Silent RAGSearches project debug history for relevant past solutions. Auto-triggered on errors.
debug_record📝 SilentRecords debugging experiences to project knowledge base. Auto-triggered after fixes.
term_get📚 ReferenceFetches 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:

ParameterTypeDefaultDescription
project_directorystring"."Project directory path
summarystring—Structured summary of Agent's actions
reasoningobjectnull5-Why reasoning (goal, trigger, mechanism, alternatives, risks)
quizzesarrayauto-generated3 quiz questions with options, answer, explanation
focus_areasarray["logic"]Focus areas: logic, security, performance, architecture, syntax
timeoutint600Timeout 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:

ParameterTypeDefaultDescription
querystring—Error message or description to search
project_directorystring"."Project directory path
error_typestringnullFilter by error type (e.g., ImportError)
tagsarraynullFilter by tags
limitint5Maximum results (1-20)

Returns: {"results": [...], "count": N}

📝 debug_record - Record Debug Experience

Trigger: Auto-called after fixing bugs (silent, background)

Parameters:

ParameterTypeDefaultDescription
contextobject—Error context: {error_type, error_message, file, line}
causestring—Root cause analysis
solutionstring—Solution that worked
project_directorystring"."Project directory path
tagsarraynullTags 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:

ParameterTypeDefaultDescription
project_directorystring"."Project directory path
countint3Number of terms (1-5)
domainstringnullFilter by domain

Returns: {"terms": [...], "count": N, "remaining": N}


🛠️ Installation

One-Line Install (Recommended)
PlatformCommand
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/SunflowersLwtech/covate/main/scripts/install.sh | bash
Windows (PowerShell)
irm https://raw.githubusercontent.com/SunflowersLwtech/covate/main/scripts/install.ps1 | iex

The installer will:

  1. Auto-detect your Python environment (uv → conda → venv)
  2. Clone the repository to ~/covate
  3. Create virtual environment and install dependencies
  4. 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 directory
  • covate → virtual environment directory created by uv/venv
  • bin/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 (or covate\Scripts\covate.exe on Windows)
  • Transport: stdio

After configuration, restart your IDE.

Usage

Available Tools
ToolTriggerForReturns
learning_sessionUser explicit requestUser{status, action} - minimal
debug_searchAutomatic (on error)AgentCompact summaries
debug_recordAutomatic (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
curl -fsSL https://raw.githubusercontent.com/SunflowersLwtech/covate/main/scripts/update.sh | bash
Windows (PowerShell)
irm https://raw.githubusercontent.com/SunflowersLwtech/covate/main/scripts/update.ps1 | iex

The update script will:

  1. Auto-detect your installation location (supports multiple installations)
  2. Pull the latest changes from the repository
  3. Force-reinstall dependencies to ensure version synchronization
  4. Verify installation integrity and report any issues
  5. Detect if MCP server is in use and provide clear instructions

Why remote update?

  • ✅ Works with Chinese/non-ASCII paths without cd navigation
  • ✅ 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

WebUI Preview


🔒 Security & Privacy

AspectDetails
Local FirstAll data stored in .mcp-sidecar/ directory within your project
No TelemetryZero data sent to external servers
Full ControlDelete .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.3)
FeatureDescription
SQLite FTS5Full-text search with Chinese support, prefix matching, and boolean queries
BM25 RankingIndustry-standard relevance scoring for better search results
Semantic SearchVector embeddings for meaning-based matching (e.g., "权限错误" finds "permission denied")
Cross-project SearchSearch debug experiences across all your projects
📱 Mobile App (v2.0)
FeatureDescription
Learning History SyncAccess your quiz history and learning progress on mobile
Spaced RepetitionSmart review scheduling based on forgetting curves
Offline ModeLearn anywhere, sync when connected
Push NotificationsGentle reminders to review concepts you're forgetting
🎯 Personalized Learning Center (v2.5)
FeatureDescription
Knowledge GraphVisual map of concepts you've learned and their connections
Weakness AnalysisAI identifies areas where you struggle and suggests focused practice
Learning StreaksGamification to keep you motivated
Team Insights(Optional) Share anonymized learning patterns with your team
🤖 AI Enhancements (v3.0)
FeatureDescription
Adaptive QuizzesQuestions adjust difficulty based on your performance
Code Pattern RecognitionLearn from patterns in your own codebase
Multi-language SupportExplanations 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

VariableDefaultDescription
MCP_DEBUGfalseEnable debug logging (true, 1, yes, on)
MCP_TIMEOUT120000MCP server startup timeout in ms
MAX_MCP_OUTPUT_TOKENS25000Maximum tokens for MCP output

🤝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Install dev dependencies: uv pip install -e '.[dev]'
  4. Make changes and run tests: pytest
  5. Submit a Pull Request

See CONTRIBUTING.md for detailed guidelines.


📬 Contact

ChannelAddress
Email[email protected]
Email[email protected]
GitHub IssuesOpen an Issue

📄 License

This project is licensed under the MIT License.


Built with FastMCP • MCP Standard • Glama MCP

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.