by pansila (community) Claude Desktop, Claude Code, GDB
MCP-сервер для удалённой отладки приложений через GDB/MI-протокол. Позволяет LLM управлять дебаггером: ставить брейкпоинты, шагать по коду, инспектировать память и регистры. Возможности: - Запуск программы под GDB - Установка/удаление брейкпоинтов - step / next / continue / finish - Просмотр переменных и стека вызовов - Инспекция памяти по адресу - Чтение регистров CPU - Подключение к remote GDB-серверу (QEMU, OpenOCD)
Требуется GDB и Rust.
# Вариант 1 — Nix (если установлен):
nix run "git+https://github.com/pansila/mcp_server_gdb.git"
# Вариант 2 — сборка из исходников:
git clone https://github.com/pansila/mcp_server_gdb
cd mcp_server_gdb
cargo build --release
# Бинарник: target/release/mcp-server-gdb
# Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"gdb": {
"command": "/ABSOLUTE/PATH/TO/mcp_server_gdb/target/release/mcp-server-gdb",
"args": []
}
}
}
# Claude Code (CLI):
claude mcp add gdb -- /ABSOLUTE/PATH/TO/mcp_server_gdb/target/release/mcp-server-gdb
# OpenCode — ~/.config/opencode/opencode.json:
{
"mcp": {
"gdb": {
"type": "local",
"command": ["/ABSOLUTE/PATH/TO/mcp_server_gdb/target/release/mcp-server-gdb"]
}
}
}
Сервер GDB/MI протокола, построенный на основе протокола MCP, обеспечивающий возможности удалённой отладки приложений с помощью ИИ-ассистентов.
Найдите исполняемые файлы на странице релизов, выберите подходящий для вашей операционной системы, после чего вы можете запустить его напрямую.
Клонируйте репозиторий и соберите его с помощью cargo
cargo build --release
cargo run
Если у вас установлен Nix, вы можете запустить проект без клонирования:
nix run .
nix run "git+https://github.com/pansila/mcp_server_gdb.git" -- --help
Для входа в оболочку разработки со всеми зависимостями:
nix develop
./mcp-server-gdbhttp://127.0.0.1:8080Вы можете изменить конфигурацию сервера, отредактировав файл src/config.rs или с помощью переменных окружения:
create_session — создание новой сессии отладки GDBget_session — получение информации о конкретной сессииget_all_sessions — получение списка всех сессийclose_session — закрытие сессииstart_debugging — начало отладкиstop_debugging — остановка отладкиcontinue_execution — продолжение выполненияstep_execution — пошаговое выполнение с заходом в функциюnext_execution — пошаговое выполнение с обходом функцииget_breakpoints — получение списка точек остановаset_breakpoint — установка точки остановаdelete_breakpoint — удаление точки остановаget_stack_frames — получение информации о стековых фреймахget_local_variables — получение локальных переменныхget_registers — получение значений регистровread_memory — чтение содержимого памятиMIT