Covate

io.github.SunflowersLwtechPublished by GitHub account SunflowersLwtechv1.2.0Updated Oct 29, 2026

Learning sidebar for AI coding assistants: quizzes on your changes, debug memory, term explanations

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

A local learning sidecar for AI coding assistants: quizzes on recent code changes, a project debug memory, and programming term lookups.

What you can do
  • Run an interactive quiz on recent code changes, with focus areas such as logic, security or performance, and wait until it is completed
  • Search a project's stored debugging history for past solutions to an error
  • Record a debugging experience, with cause, solution and tags, into the project knowledge base
  • Fetch programming terms and concepts by domain, tracking shown terms to avoid repeats
  • Keep a local spaced-review ledger of concepts and score quiz answers offline
When to use it
Useful if you want to actually understand AI-generated code changes rather than just accept them, or if your assistant keeps re-solving the same errors and would benefit from a project-local debugging memory. It is aimed at developers working in an MCP-capable coding IDE.
Requirements
Runs locally over stdio; the README lists Python 3.11+ or uv, or Docker as an alternative. No account or API key is needed for the MCP server itself. The optional hosted learning ledger requires signing in with GitHub and setting COVATE_SYNC_URL and COVATE_SYNC_TOKEN. Optional variables MCP_DEBUG, MCP_TIMEOUT and MAX_MCP_OUTPUT_TOKENS tune logging and limits.
Before you install
The quiz tool blocks the assistant until the user finishes the session. Debug tools are described as auto-triggered on errors and after fixes, so debugging context is written into a .mcp-sidecar directory inside the project. The optional sync step sends learning sessions to a hosted service using COVATE_SYNC_TOKEN, which can be revealed or rotated. The recommended install and update commands pipe remote scripts into a shell.

Installation

In SourceWeft

  1. Open Covate in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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).

bash
covate review page questions.json -o page.html   # questions -> a quiz page (answers marked)foldrender publish page.html                      # your agent publishes itfoldrender answers <page> --json | covate review record   # score the first answerscovate review due                                 # what to ask about again todaycovate 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
bash
curl -fsSL https://raw.githubusercontent.com/SunflowersLwtech/covate/main/scripts/install.sh | bash
Windows (PowerShell)
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

bash
# 1. Clone the repositorygit clone https://github.com/SunflowersLwtech/covate.gitcd covate
# 2. Create virtual environment and install# Using uv (recommended)uv venv --python 3.11 covatesource covate/bin/activate          # macOS/Linux# covate\Scripts\activate           # Windowsuv pip install -e '.[dev]'
# Or using standard venvpython -m venv covatesource covate/bin/activate           # macOS/Linux# covate\Scripts\activate            # Windowspip install -e '.[dev]'

Docker Installation

Click to expand Docker installation steps

Prerequisites: Docker installed on your system

bash
# 1. Pull from Docker Hubdocker pull sunflowerslwtech/covate:latest
# Or build locallygit clone https://github.com/SunflowersLwtech/covate.gitcd covatedocker build -t covate .
# 2. Run with Dockerdocker run -i covate
# 3. Or use Docker Composedocker-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)

bash
# macOS / Linuxclaude mcp add covate -- ~/covate/covate/bin/covate
# Windowsclaude mcp add covate -- %USERPROFILE%\covate\covate\Scripts\covate.exe

Option 2: Config File

Add to ~/.claude.json:

json
{  "mcpServers": {    "covate": {      "command": "~/covate/covate/bin/covate"    }  }}

For Windows:

json
{  "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):

json
{  "covate": {    "command": "~/covate/covate/bin/covate"  }}

For Windows:

json
{  "covate": {    "command": "C:\\Users\\YourName\\covate\\covate\\Scripts\\covate.exe"  }}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "covate": {      "command": "~/covate/covate/bin/covate"    }  }}

Docker Configuration

To use Docker with any MCP-compatible IDE:

json
{  "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
bash
curl -fsSL https://raw.githubusercontent.com/SunflowersLwtech/covate/main/scripts/update.sh | bash
Windows (PowerShell)
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:

bash
~/covate/scripts/update.sh

Windows (PowerShell):

powershell
~\covate\scripts\update.ps1

Manual Update

Click to expand manual update steps
bash
# Navigate to installation directorycd ~/covate  # or your custom installation path
# Pull latest changesgit pull origin main
# Update dependencies# Using uvsource covate/bin/activate          # macOS/Linux# covate\Scripts\activate           # Windowsuv pip install -e '.[dev]' --upgrade
# Or using standard venvsource covate/bin/activate           # macOS/Linux# covate\Scripts\activate            # Windowspip 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

Source: README.md at commit 5203713

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.2.0LatestOct 29, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts