# fw-context-mcp

Индексирует embedded C/C++ с учётом сборки и даёт агенту связи между символами, вызовами, макросами и callback-функциями.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 10
- Автор: turbyho
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/turbyho/fw-context-mcp
- Обновлён: 2026-10-19
- HTML: https://affpapa.org/nevibecode/mcp/fw-context-mcp

## Что делает

fw-context-mcp строит постоянный семантический индекс из `compile_commands.json` и AST `libclang`, а затем отдаёт его агенту через MCP. Агент может находить активную реализацию, прямых и косвенных вызывающих, регистрации callback-функций, function-pointer связи и код, исключённый препроцессором.

Внутри используются данные о символах, исходных телах, ссылках, графе вызовов, наследовании, макросах и активном содержимом файлов. Полнотекстовый поиск работает через FTS5; индекс хранится с возможностью инкрементальной обработки изменённых translation units. Для настройки проекта применяются `fw-context init` и `fw-context index --build`.

Заранее нужны Python 3.11 или новее, `libclang` и проект, который создаёт `compile_commands.json`. Ollama нужен для embeddings и LLM-описаний; без него эти функции переходят на полнотекстовый поиск или возвращают исходные промпты.

## Требования
- Нужно: Python и uv (команды через uvx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add fw-context-mcp -- uvx fw-context-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from fw-context-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add fw-context-mcp -- uvx fw-context-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from fw-context-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "fw-context-mcp": {
            "command": "uvx",
            "args": [
                "fw-context-mcp"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from fw-context-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "fw-context-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "fw-context-mcp"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from fw-context-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add fw-context-mcp uvx fw-context-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from fw-context-mcp <команда>

## Когда брать
- найти активную реализацию для выбранной сборки
- проследить вызов от ISR до кода приложения
- собрать прямых и косвенных вызывающих API
- найти регистрации callback-функций и function pointers

## Примеры запросов агенту
- Проиндексируй прошивку через `compile_commands.json` и покажи активную реализацию этого драйвера.
- Найди все прямые и косвенные вызовы этой функции, включая callback-функции.
- Проверь, какой код затронет изменение этого API с учётом препроцессора.

## Похожие
- [esp32-firmware-engineer](https://affpapa.org/nevibecode/skills/esp32-firmware-engineer.md) — скилл · 1300 установок
- [arbor](https://affpapa.org/nevibecode/mcp/arbor.md) — MCP-сервер · ★ 162
- [calm-mcp](https://affpapa.org/nevibecode/mcp/calm-mcp.md) — MCP-сервер · ★ 17
- [rust-call-graph](https://affpapa.org/nevibecode/skills/rust-call-graph.md) — скилл · 3200 установок
- [Java All Call Graph Server](https://affpapa.org/nevibecode/mcp/java-all-call-graph-server.md) — MCP-сервер · ★ 8
- [grepai-languages](https://affpapa.org/nevibecode/skills/grepai-languages.md) — скилл · 704 установки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
