MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

O
Opencode Sandbox MCP

Изолированный запуск OpenCode в Docker c поддержкой правил (rules) и встроенным high-performance MCP-сервером (codebase-memory-mcp) для безопасного локального анализа кода.

Created 6/14/2026
Updated about 5 hours ago
Repository documentation and setup instructions

OpenCode Docker (Локальный и Изолированный)

Этот репозиторий предоставляет Docker-окружение для запуска OpenCode с веб-интерфейсом в полностью изолированном режиме, с интегрированным MCP-сервером codebase-memory-mcp для индексации кодовых баз.

Особенности сборки

  1. Полная изоляция: OpenCode запущен внутри контейнера от некорневого пользователя opencode с UID/GID 1000:1000 (соответствует UID большинства пользователей Linux, что решает проблемы с правами на файлы). Он не имеет доступа к вашей хост-системе.
  2. Локальный билд релизов: В docker-compose.yml настроена сборка локального Dockerfile вместо скачивания готового образа.
  3. Локальный Workspace: Проекты для анализа монтируются исключительно в папку ./workspace и доступны в контейнере по пути /home/opencode/workspace. Проводник OpenCode открывается сразу в этой папке, скрывая системные файлы контейнера.
  4. Управление правилами (Rules): Инструкции и системные промпты монтируются из папки ./rules в скрытую директорию /home/opencode/.local/rules/opencode/.
  5. Интеграция с Codebase Memory MCP: В контейнер встроен высокопроизводительный MCP-сервер codebase-memory-mcp для парсинга структуры проектов.
  6. Доступ к 3D-визуализации графа (socat хак): Интегрирована утилита socat, пробрасывающая порт визуализации графа наружу на порт 4097. Вы можете смотреть граф связей кода вашего проекта прямо в браузере.
  7. Общая база данных: Вы можете настроить монтирование кэша так, чтобы база данных MCP-сервера в контейнере была общей с вашей локальной базой на компьютере.

Структура каталогов проекта

После клонирования репозитория структура каталогов выглядит следующим образом:

.
├── config/                     # Файлы конфигурации OpenCode (opencode.json, opencode.jsonc)
├── rules/                      # Ваши файлы инструкций (*.md)
├── workspace/                  # Папка для кодовых проектов, которые вы анализируете
├── data/                       # Системные данные контейнера
│   ├── share/                  # auth.json (ключи LLM-провайдеров)
│   ├── state/                  # Состояние интерфейса OpenCode
│   └── codebase-memory-mcp/    # Локальный кэш MCP-сервера (если не используется общий)
├── Dockerfile                  # Конструктор образа
├── docker-compose.yml          # Манифест запуска контейнеров
└── .env                        # Переменные окружения (пароли, таймзона, UID/GID)

Быстрый старт

1. Подготовка окружения

Создайте файл .env на основе примера .env.sample:

cp .env.sample .env

Задайте логин и пароль для входа в веб-интерфейс в созданном .env.

2. Настройка правил (Rules)

В папку ./rules/ уже добавлены файлы базовых правил:

  • codebase-memory.md — правила использования MCP-сервера в сессии.
  • karpathy.md — общие рекомендации для моделей по минимизации ошибок кодинга.

Эти файлы автоматически подключаются через файл конфигурации ./config/opencode.json (который уже настроен и готов к использованию):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "codebase-memory-mcp": {
      "enabled": true,
      "type": "local",
      "command": ["/usr/local/bin/codebase-memory-mcp"]
    }
  },
  "instructions": [
    "/home/opencode/.local/rules/opencode/codebase-memory.md",
    "/home/opencode/.local/rules/opencode/karpathy.md"
  ]
}

[!TIP] Чтобы модель в AI-ассистенте вела себя максимально правильно и эффективно использовала MCP-граф вместо долгого и неэффективного чтения файлов вручную, рекомендуется создать файл AGENTS.md (или .cursorrules / .clinerules) в корне вашего анализируемого проекта в папке workspace и прописать туда следующее системное указание:

## CRITICAL: Tool Restrictions for Code Analysis
Even though you know the paths to app/models/, app/repositories/, and app/services/, you are STRICTLY FORBIDDEN from reading them using standard `Read`, `read_file`, or `Glob` tools.

- **Mandatory Tool:** To view the contents of any code file, function, class, or method, you MUST use the `codebase-memory-mcp` tool `get_code_snippet`. 
- **No Brute-Force:** Never use `Read` on source code files to understand logic. Use `get_code_snippet` or structural graph queries instead.
- **Exception:** You may only use `Read` for non-code text/config assets (e.g., `.env`, `credentials.json`).

3. Размещение проектов

Поместите проекты, которые хотите проанализировать, в папку ./workspace (например, ./workspace/my-awesome-project).

4. Запуск

Соберите образ и запустите контейнеры:

docker compose up -d --build
  • Интерфейс OpenCode будет доступен по адресу: http://localhost:4096
  • 3D-визуализатор графа связей кода будет доступен по адресу: http://localhost:4097 (если включен в вашей конфигурации MCP).

Настройка общей базы данных MCP (Контейнер + Хост)

Чтобы база данных MCP-сервера в контейнере объединилась с базой на вашем основном компьютере, отредактируйте docker-compose.yml:

Замените стандартное монтирование кэша:

# Для Linux/WSL2:
- ~/.cache/codebase-memory-mcp:/home/opencode/.cache/codebase-memory-mcp

Для Windows (PowerShell/CMD):

- C:\Users\<Имя_Пользователя>\AppData\Local\codebase-memory-mcp\cache:/home/opencode/.cache/codebase-memory-mcp

После этого перезапустите контейнеры:

docker compose down && docker compose up -d

Безопасность и Лицензия

Проект распространяется по лицензии MIT. Сборка разработана для обеспечения максимальной локальной безопасности — весь анализ кода, построение абстрактных синтаксических деревьев (AST) через Tree-sitter и сохранение графов происходит исключительно на вашей локальной машине внутри изолированного Docker-контейнера.

Quick Setup
Installation guide for this server

Installation Command (package not published)

git clone https://github.com/tsybindev/opencode-sandbox-mcp
Manual Installation: Please check the README for detailed setup instructions and any additional dependencies required.

Cursor configuration (mcp.json)

{ "mcpServers": { "tsybindev-opencode-sandbox-mcp": { "command": "git", "args": [ "clone", "https://github.com/tsybindev/opencode-sandbox-mcp" ] } } }