codeguide-mcp
Сервер MCP «Coding Guides»
Сервер Model Context Protocol (MCP), предоставляющий доступ к руководствам по написанию кода и лучшим практикам для ИИ-ассистентов, таких как Claude и GitHub Copilot.
Что это?
Этот MCP-сервер предоставляет руководства по написанию кода и стилевые руководства в виде ресурсов, к которым могут обращаться MCP-клиенты. Он предназначен для расширения или замены файлов AGENTS.md, предоставляя структурированный способ передачи практик и рекомендаций по коду ИИ-ассистентам во время разработки.
Related MCP server: Code Understanding MCP Server
Возможности
API на основе ресурсов: предоставляет руководства по коду через ресурсы MCP
Интеграция с GitHub: загружает руководства из репозиториев GitHub через интернет
Автоматическое кэширование: кэширует загруженные руководства локально для офлайн-доступа
Поддержка резервного режима: использует локальный кэш или каталог, когда сеть недоступна
Простое хранение в файлах: руководства могут храниться локально в виде файлов Markdown
Официальный MCP SDK: построен на Python-пакете
mcp(MCPServer, ранее FastMCP)Простая интеграция: работает с любым MCP-совместимым клиентом (Claude Desktop, Cline и др.)
Доступные ресурсы
guides://list— список всех доступных руководств по кодуguides://{guide_name}— получение содержимого конкретного руководства (например,guides://python.md)
Установка
Из исходного кода
# Clone the repository
git clone https://github.com/delian/codeguide-mcp.git
cd codeguide-mcp
# Install with uv (recommended)
uv sync
# Or with pip
pip install -e .С помощью Docker
docker build -t codeguide-mcp .
docker run -i codeguide-mcpВ VS Code
Или найдите codeguide-mcp в списке MCP-серверов в представлении «Расширения» (введите @mcp в строке поиска расширений), либо добавьте его вручную в .vscode/mcp.json:
{
"servers": {
"codeguide-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "delian/codeguide-mcp"]
}
}
}Конфигурация
Настройте сервер, создав файл config.toml или задав переменные окружения:
Конфигурация GitHub (рекомендуется)
Для загрузки руководств из репозитория GitHub:
github_repo = "owner/repository" # e.g., "delian/codeguide-mcp"
github_path = "guides" # Path to guides directory in repo
github_branch = "main" # Branch to fetch from
cache_dir = ".guides-cache" # Local cache directory
log_level = "INFO"Конфигурация локального каталога
Для использования только локальных руководств:
guides_dir = "guides"
log_level = "INFO"Переменные окружения
GUIDES_GITHUB_REPO— репозиторий GitHub (формат:owner/repo)GUIDES_GITHUB_PATH— путь к каталогу руководств в репозитории (по умолчанию:guides)GUIDES_GITHUB_BRANCH— ветка для загрузки (по умолчанию:main)GUIDES_CACHE_DIR— локальный каталог кэша (по умолчанию:.guides-cache)GUIDES_DIR— локальный каталог с файлами руководств (по умолчанию:guides)GUIDES_LOG_LEVEL— уровень журналирования (по умолчанию:INFO)
Транспорт (см. Удалённое развёртывание):
GUIDES_TRANSPORT—stdio,streamable-httpилиauto(по умолчанию:auto— HTTP при наличии переменной окруженияPORT, иначе stdio)PORT— порт для прослушивания в режиме HTTP; имеет приоритет надGUIDES_PORT(Cloud Run внедряет его автоматически)GUIDES_HOST— адрес привязки в режиме HTTP (по умолчанию:0.0.0.0)GUIDES_HTTP_PATH— путь конечной точки MCP (по умолчанию:/mcp)GUIDES_STATELESS_HTTP— обрабатывать каждый запрос независимо (по умолчанию:true; требуется при автоматическом масштабировании реплик)GUIDES_ALLOWED_HOSTS— список разрешённых заголовков Host, обеспечивающий защиту от DNS-ребinding (по умолчанию: пусто = без проверки Host)
Поведение
Сеть доступна + настроен GitHub: загружает руководства из GitHub и кэширует их локально
Сеть недоступна: использует локальный кэш, если он доступен
Кэш недоступен: переключается на локальный
guides_dir, если он настроен
Удалённое развёртывание (Google Cloud Run)
Один и тот же образ обслуживает оба транспорта: по умолчанию он работает через stdio по каналу,
и переключается на Streamable HTTP при наличии переменной окружения PORT — которую Cloud Run
всегда внедряет. Отдельный образ или точка входа не требуются.
1. Публикация образа
docker build -t delian/codeguide-mcp:0.1.0 -t delian/codeguide-mcp:latest .
docker push delian/codeguide-mcp:0.1.0
docker push delian/codeguide-mcp:latest2. Развёртывание
gcloud run deploy codeguide-mcp \
--image=docker.io/delian/codeguide-mcp:0.1.0 \
--region=europe-west1 \
--allow-unauthenticated \
--port=8080 \
--set-env-vars=GUIDES_TRANSPORT=streamable-http,GUIDES_GITHUB_REPO= \
--memory=512Mi --cpu=1 \
--min-instances=0 --max-instances=4 --concurrency=40GUIDES_GITHUB_REPO= (пустое значение) заставляет сервис обслуживать руководства, встроенные в
образ. Если оставить GitHub включённым, это добавит сетевой обход для каждого руководства и упрётся
в неаутентифицированный лимит GitHub API в 60 запросов в час на исходящий IP, после чего сервер
молча переключится на те же встроенные файлы.
Конечная точка MCP будет доступна по адресу https://<service-url>/mcp:
gcloud run services describe codeguide-mcp --region=europe-west1 \
--format='value(status.url)'Cloud Run отвечает на двух именах хостов для одного сервиса — в форме
SERVICE-PROJECTNUMBER.REGION.run.app, выводимой командой gcloud run deploy, и в более старой
форме SERVICE-HASH-REGIONCODE.a.run.app, которую сообщает status.url.
Обе эквивалентны; любая из них работает в конфигурации клиента.
3. Настройка клиентов
См. раздел Подключение к удалённому серверу ниже для конфигурации каждого клиента.
Загрузка из Docker Hub
Cloud Run развёртывает публичные образы Docker Hub напрямую, но кэширует их только на час и затем повторно загружает анонимно, поэтому при масштабировании можно столкнуться с анонимными лимитами Docker Hub и не запустить экземпляры. Для чего-либо, кроме случайного использования, зеркалируйте через удалённый репозиторий Artifact Registry:
gcloud artifacts repositories create dockerhub \
--repository-format=docker --location=europe-west1 \
--mode=remote-repository --remote-docker-repo=DOCKER-HUB
gcloud run deploy codeguide-mcp \
--image=europe-west1-docker.pkg.dev/PROJECT_ID/dockerhub/delian/codeguide-mcp:0.1.0 \
...Примечания о публичном запуске
--allow-unauthenticatedделает конечную точку доступной для всех. Сервер доступен только для чтения, но промптclear_cacheдоступен любому вызывающему и сбрасывает кэши в памяти, а трафик увеличивает стоимость автозапуска — держите--max-instancesограниченным. Чтобы ограничить доступ, опустите этот флаг и пусть клиенты отправляют токен идентификации, либо разместите сервис за Cloud Armor / API Gateway.GUIDES_STATELESS_HTTPдолжен оставатьсяtrue, если вы не включите также привязку сеансов, поскольку Cloud Run может направлять запросы сеанса на разные экземпляры.GET /возвращает 404 по замыслу; обслуживается только/mcp. Стандартная проверка запуска Cloud Run — это TCP-проверка на$PORT, так что это нормально — не настраивайте HTTP-проверку работоспособности на/.Установите
GUIDES_ALLOWED_HOSTSна имя хоста вашего сервиса, чтобы включить проверку заголовка Host, если вы публикуете сервис под пользовательским доменом.
Публикация в реестре MCP
Список MCP-серверов в представлении «Расширения» VS Code (введите @mcp в строке
поиска) формируется из реестра GitHub MCP Registry, который получает данные из официального
реестра MCP. Публикация там — это способ сделать
этот сервер обнаруживаемым в VS Code — собственное расширение VS Code не требуется.
server.json содержит метаданные реестра: образ Docker для клиентов,
которые хотят запускать его локально, и размещённый URL для клиентов, которые предпочитают
не делать этого. Право собственности на образ подтверждается меткой
io.modelcontextprotocol.server.name в Dockerfile,
значение которой должно быть равно .name в server.json.
Аутентифицируйтесь один раз (интерактивный поток с кодом устройства), затем запустите скрипт публикации:
mcp-publisher login github # namespace io.github.<your-username>/*
tools/publish.shtools/publish.sh выполняет весь выпуск: проверяет наличие
необходимых инструментов и вход в Docker, проверяет, что server.json и
pyproject.toml согласованы по версии и что метка Dockerfile соответствует имени
сервера, собирает и отправляет :VERSION и :latest, проверяет server.json
на соответствие живому реестру, публикует, а затем считывает запись для подтверждения.
tools/publish.sh --dry-run # everything except push and publish
tools/publish.sh --version 0.2.0 # bump server.json + pyproject + image tag, then release
tools/publish.sh --skip-build # reuse images already on Docker HubУстановите mcp-publisher из
краткого руководства по реестру, если
у вас его нет. После публикации включение в курируемый список GitHub может
потребовать запроса на partnerships@github.com.
Добавление руководств
Использование GitHub (рекомендуется)
Если вы настроили github_repo, просто добавьте файлы Markdown в указанный каталог в вашем репозитории GitHub. Сервер автоматически загрузит и закэширует их.
Использование локального каталога
Добавьте файлы Markdown в каталог guides/. Каждый файл будет автоматически доступен как ресурс.
Пример:
echo "# Python Style Guide\n\nUse PEP 8..." > guides/python.mdИспользование с MCP-клиентами
Сервер можно использовать двумя способами:
Режим | Транспорт | Как клиент обращается к нему |
Локальный | stdio | Клиент запускает |
Удалённый | Streamable HTTP | Клиент отправляет HTTPS-запросы на размещённый URL |
Локальный режим не требует сети и хостинга; удалённый режим позволяет команде использовать одно развёртывание и гарантирует одинаковые руководства для всех.
Подключение к удалённому серверу
Развёрнутый экземпляр предоставляет свою конечную точку MCP по адресу /mcp. В приведённых ниже фрагментах используется эталонное развёртывание:
https://codeguide-mcp-86057491046.europe-west1.run.app/mcpОно публично и не требует учётных данных. Замените на свой URL, если вы запускаете сервис самостоятельно — см. Удалённое развёртывание.
VS Code — .vscode/mcp.json для одной рабочей области или ваш пользовательский mcp.json для
всех рабочих областей:
{
"servers": {
"codeguide-mcp": {
"type": "http",
"url": "https://codeguide-mcp-86057491046.europe-west1.run.app/mcp"
}
}
}Claude Code:
claude mcp add --transport http codeguide-mcp \
https://codeguide-mcp-86057491046.europe-west1.run.app/mcpCursor — ~/.cursor/mcp.json (глобально) или .cursor/mcp.json (для проекта):
{
"mcpServers": {
"codeguide-mcp": {
"url": "https://codeguide-mcp-86057491046.europe-west1.run.app/mcp"
}
}
}Claude Desktop — добавьте его как пользовательский коннектор в настройках или соедините
удалённую конечную точку с stdio-клиентом с помощью
mcp-remote:
{
"mcpServers": {
"codeguide-mcp": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://codeguide-mcp-86057491046.europe-west1.run.app/mcp"]
}
}
}Любой клиент, поддерживающий Streamable HTTP, работает — укажите URL /mcp.
Для серверов, защищённых аутентификацией, передайте токен с помощью
--header "Authorization: Bearer $(gcloud auth print-identity-token)"
(Claude Code) или эквивалентного блока headers клиента.
Проверка удалённой конечной точки
Одна команда curl подтверждает, что развёртывание работает и доступно публично:
curl -s -X POST https://codeguide-mcp-86057491046.europe-west1.run.app/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
"protocolVersion":"2025-06-18","capabilities":{},
"clientInfo":{"name":"curl","version":"1"}}}'Здоровый сервер отвечает SSE-кадром event: message, содержащим его
возможности и инструкции. Обратите внимание, что GET / возвращает 404 по замыслу — обслуживается
только /mcp.
Чтобы проверить все ресурсы, инструменты и промпты через HTTP, используйте:
uv run python verify_server.py --http https://codeguide-mcp-86057491046.europe-west1.run.app/mcpЛокальное использование
Claude Desktop
Добавьте в ваш mcp.json:
{
"mcpServers": {
"coding-guides": {
"command": "python",
"args": ["-m", "main"]
}
}
}или
{
"mcpServers": {
"coding-guides": {
"command": "docker",
"args": ["run", "--rm", "-i", "docker.io/delian/codeguide-mcp"]
}
}
}Другие MCP-клиенты
Запустите сервер и подключитесь через stdio:
python main.pyРазработка
# Install development dependencies
uv pip install -e ".[dev]"
# Run pre-commit hooks
pre-commit install
pre-commit run --all-files
# Run the server
python main.pyЛицензия
MIT
Вклад
Приветствуются любые вклады! Пожалуйста, откройте issue или pull request.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- AlicenseAqualityDmaintenanceAn intelligent MCP server that serves as a guardian of development knowledge, providing AI assistants with curated access to latest documentation and best practices.4605MIT
- AlicenseCqualityDmaintenanceAn MCP server that analyzes local or remote GitHub repositories, providing intelligent code context and structure to AI coding assistants.1013MIT
- AlicenseNot gradedqualityBmaintenanceA local MCP server that gives AI coding assistants retrieval access to your personal knowledge base of books, standards, and docs, grounding their answers in sources you trust.MIT
- AlicenseNot gradedqualityDmaintenanceThis MCP server provides access to resources and prompts from GitHub repositories or the local filesystem, enabling teams to share coding standards, documentation, and reusable prompts with AI tools like Claude.3581MIT
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
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/delian/codeguide-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server