code-context-storage-mcp
Code Context Storage MCP
code-context-storage-mcp — это локальное хранилище базы знаний кода и сервис протокола MCP. Он сохраняет узлы кода, рёбра вызовов, семантическую информацию, доказательства, бизнес-каталог/маппинги и версионные снимки в SQLite, а через stdio transport FastMCP предоставляет наружу структурированные tools.
Проект занимает позицию между «Skill / внешним ИИ» и персистентными бизнес-возможностями: вызывающая сторона читает и пишет базу знаний через MCP tools и не должна обращаться к SQLite напрямую. MVP ориентирован на один репозиторий кода и фиксированную версию исходников, с фокусом на импорт индексов/артефактов, запросы с ограничением по версии, бизнес-маппинги, проверку доказательств, инкрементальную синхронизацию, публикацию снимков и оценку.
Features
Персистентные факты кода в SQLite:
node,edge,evidence,node_semantic.Поиск узлов на основе семантики и бизнес-слов, а также контекст графа, пути и анализ влияния с ограничением бюджета.
Бизнес-каталог, context, mapping и шаги маппинга; кандидаты и подтверждённые результаты имеют явные статусы.
Процесс публикации снимков staging → published с идемпотентными операциями, защитой от гонок через CAS и распространением/восстановлением stale.
MCP protocol v2 envelope:
request_id,operation_id, версии schema/tool и структурированные ошибки.Тестовое покрытие: unit, контрактные, black-box и сценарии реального stdio MCP-адаптера.
Вне области проекта: генерация/исполнение кода, единый граф по нескольким репозиториям, автоматическое бизнес-моделирование без подтверждения человеком и смешивание runtime-наблюдений со статическими фактами кода. Полные границы — в документе MVP-дизайна.
Related MCP server: local-code-intel-mcp
Requirements
Python 3.11 или новее
pipВ примерах для Windows PowerShell рабочей директорией является корень репозитория
Зависимости объявлены в pyproject.toml; ключевая runtime-зависимость — fastmcp==3.4.7.
Install
Рекомендуется использовать виртуальное окружение:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e .Если PowerShell запрещает активацию скриптов, можно не активировать окружение и выполнять команды ниже напрямую через .\.venv\Scripts\python.exe.
Run the MCP server
После установки используйте предоставленную командную точку входа проекта:
code-context-storage-mcp --database .data\context.dbИли напрямую модульную точку входа:
python -m code_context_storage_mcp.server --database .data\context.dbОба способа запуска используют stdio transport. Процесс читает MCP JSON-RPC сообщения из stdin и пишет ответы в stdout, поэтому не добавляйте обычные логи в stdout; путь к базе данных по умолчанию — .data/context.db, другой SQLite-файл можно указать через --database.
Просмотр аргументов командной строки:
code-context-storage-mcp --helpMCP client configuration
stdio-клиент должен запускать следующую команду и писать запросы в stdin:
{
"mcpServers": {
"code-context-storage": {
"command": "code-context-storage-mcp",
"args": ["--database", ".data/context.db"]
}
}
}Если console script не установлен, можно заменить command на Python, а args на:
["-m", "code_context_storage_mcp.server", "--database", ".data/context.db"]После подключения клиент сначала вызывает tools/list MCP, чтобы увидеть зарегистрированные tools и их входные schema. Tools покрывают запись/чтение фактов кода, запросы к графу, бизнес-каталог и маппинги, управление синхронизацией, публикацию, доказательства, генерацию знаний и оценку; конкретный набор регистраций определяется tools/list, возвращаемым сервисом в рантайме.
Development commands
Выполняется в корне репозитория:
python -m pytest tests -qЗапуск black-box тестов:
python -m pytest tests\blackbox -qДля сценариев black-box тестов, которым нужен реальный MCP stdio-сервис, команда сервиса настраивается так:
$env:PYTHONPATH = "src"
$env:KNOWLEDGE_GENERATE_MCP_COMMAND = '["python", "-m", "code_context_storage_mcp.server"]'
python -m pytest tests\blackbox -qНекоторые black-box тесты пропускаются при отсутствии этой конфигурации; в CI её следует задавать явно, чтобы тесты выявляли проблемы конфигурации или протокола.
Phase acceptance and evaluation
Генерация отчёта Phase acceptance и сопутствующего evaluation request:
python scripts\run_phase_acceptance.py --output artifacts\phase-acceptance.jsonЗапуск офлайн-оценки с использованием сгенерированного запроса и порогов:
python scripts\run_evaluation.py `
--request artifacts\evaluation-request.json `
--thresholds artifacts\thresholds.json `
--output artifacts\evaluation-result.json `
--database .data\context.dbrun_evaluation.py по умолчанию использует пустой набор ответов — это подходит для проверки конвейера оценки и входных контрактов; чтобы получить содержательные результаты оценки, следует передать black-box ответы MCP-клиента через --responses. Скрипт завершается с ненулевым кодом, если статус оценки не passed.
Repository layout
src/code_context_storage_mcp/
server.py CLI 入口,创建 Store 并启动 stdio MCP 服务
fastmcp_server.py FastMCP server、tool 注册和 protocol envelope
tool_definitions.py tool 输入 schema
router.py tool 到 handler/service 的分发
handlers/ 代码事实、图查询和业务操作处理器
services/ 查询、同步、索引、幂等、追踪等业务服务
publication/ 发布适配与发布服务
store.py SQLite 持久化
entities.py/contracts.py 数据实体与协议契约
migrations/ SQLite schema migrations
tests/ 单元、契约、集成和黑盒测试
scripts/ 验收与评测脚本
docs/design/ 设计文档Основной путь выполнения: server.main -> Store -> create_mcp_server -> ToolRouter -> handlers/services -> SQLite. Операции записи обычно сначала попадают в staging, проходят проверки конфликтов/покрытия и лишь затем публикуют снимок; запросы фиксируются на одном снимке и версии исходников и возвращают прослеживаемый контекст выполнения.
Data and migrations
Файл базы данных по умолчанию .data/context.db — это runtime-данные, его не следует коммитить в репозиторий. Schema поддерживается SQL-файлами в migrations/; перед подключением к существующей базе данных с новым кодом следует убедиться, что соответствующая миграция применена. Тесты обычно используют временные SQLite-базы, поэтому не зависят от файла данных по умолчанию на машине разработчика.
License
В текущем репозитории нет отдельного файла лицензии; перед внешней публикацией необходимо добавить лицензию и описание вклада.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceProvides a local code knowledge graph for Java projects, enabling querying of classes, methods, fields, calls, inheritance, and imports via MCP tools like query, context, impact, and cypher.1
- FlicenseNot gradedqualityDmaintenanceProvides code intelligence by indexing source code into SQLite and offering MCP tools for symbol search, flow tracing, and context retrieval to assist with code navigation and understanding.
- FlicenseNot gradedqualityAmaintenanceTransforms a codebase into a queryable knowledge base for code understanding, impact analysis, ownership lookup, and more via CLI, HTTP API, or MCP.109
- AlicenseNot gradedqualityBmaintenancePrivate, local-first code intelligence MCP server that builds a static graph of repositories and exposes search, architecture, impact analysis, and review tools via MCP.MIT
Related MCP Connectors
Deterministic context layer for your codebase: change impact, blast radius, answers with receipts.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Knowledge coverage map and health score. Ingest docs into a governed knowledge graph via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jrains-ux/code-context-storage-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server