mcp-rigging
v5.0.4
Published
MCP server providing git branch/commit tools with config-driven validation
Maintainers
Readme
mcp-rigging
MCP-сервер с git-инструментами, YouTrack-, Confluence-интеграцией,
Knowledge Graph, Multi-LLM поддержкой и встроенным визуализатором графа.
Валидирует ветки и коммиты по правилам из .mcp-infra.toml, сканирует
секреты в staged-файлах. Предназначен для подключения в Claude Code,
Cursor или любой MCP-совместимый редактор.
Все ответы сериализуются в TOON — токен-оптимизированный формат для LLM.
Быстрый старт
Claude Code:
claude mcp add rigging -- npx -y mcp-riggingCursor (.cursor/mcp.json):
{
"mcpServers": {
"rigging": {
"command": "npx",
"args": ["-y", "mcp-rigging", "--project-root", "${workspaceFolder}"],
"cwd": "${workspaceFolder}"
}
}
}Windows (Cursor):
{
"mcpServers": {
"rigging": {
"command": "cmd",
"args": ["/c", "npx", "-y", "mcp-rigging", "--project-root", "${workspaceFolder}"],
"cwd": "${workspaceFolder}"
}
}
}С переменными окружения:
claude mcp add rigging \
--env YOUTRACK_BASE_URL=https://youtrack.example.com \
--env YOUTRACK_ACCESS_TOKEN=perm:... \
--env DEEPSEEK_API_KEY=sk-... \
-- npx -y mcp-riggingКонфигурация проекта
Создайте .mcp-infra.toml в корне вашего репозитория:
[commit]
pattern = "^(feat|fix|chore|docs|refactor|test|style|perf|build|ci)(\\(.+\\))?!?: .+"
[branch]
pattern = "^(feature|fix|hotfix|chore)/[a-z0-9-]+$"
prefixes = ["feature", "fix", "hotfix", "chore"]
[youtrack]
enabled = true
default_project = "PROJ"
[confluence]
enabled = true
[llm]
enabled = true
provider = "deepseek" # "deepseek" | "openai" | "anthropic" | "openai-compatible"
model = "deepseek-chat"
[graph]
enabled = trueGraph Visualizer
Встроенный веб-визуализатор Knowledge Graph. Поставляется вместе с пакетом, запускается из CLI:
mcp-rigging visualize .mcp-rigging-graph.db
npx mcp-rigging visualize path/to/graph.db
mcp-rigging visualize graph.db --port=8080 --no-openВозможности:
- Интерактивная визуализация на vis-network
- Force-directed layout на основе реальных связей графа
- Hover-подсветка ноды + соседей с отображением рёбер
- Адаптивный размер нод при зуме (предотвращает наслаивание)
- Фильтрация по типам сущностей, поиск по имени/описанию/ID
- Detail panel с полной информацией о сущности и связях
- AI Chat со streaming (SSE) через настроенный LLM-провайдер
- Tool calling — AI может искать (text + semantic), добавлять и инспектировать сущности
- Контекст диалога — история сообщений сохраняется между запросами
- Семантический поиск — LocalEmbedder + cosine similarity для контекста
- Кнопка сброса (↻), отмена ответа (Stop), очередь сообщений
- Community view — toggle кнопка для раскраски нод по кластерам (Leiden)
- Community hull areas — convex hull области с заливкой для каждого community
- Community summaries в detail panel
- Live polling — граф обновляется в реальном времени
Тулы (83)
Git — чтение (5)
| Тул | Назначение |
|---|---|
| git_status | Ветка, ahead/behind, staged/unstaged/untracked/conflicted |
| git_log | Список коммитов с фильтрами |
| git_diff | Per-file +/- stats + raw diff. Для symbol-level — git_show |
| git_show | Детали коммита + символы кода из полного файла (C#, TS, Java, Py, Go, Rust, SQL) |
| git_blame | Построчное авторство файла |
Git — запись (12)
| Тул | Назначение |
|---|---|
| git_create_branch | Валидация имени, fetch базы, checkout -b |
| git_validate_commit | Dry-run валидация сообщения коммита |
| git_commit | Валидация + сканирование секретов + коммит |
| git_pull | Pull с опциональным rebase |
| git_push | Push с upstream, force, dry-run |
| git_stash | Stash push/pop/list/drop |
| git_cherry_pick | Cherry-pick коммита |
| git_rebase | Rebase на другую ветку |
| git_merge | Merge ветки |
| git_tag | Создание/список/удаление тегов |
| git_reset | Reset HEAD (soft/mixed/hard) |
| git_clean | Удаление untracked файлов |
Тикеты (2)
| Тул | Назначение |
|---|---|
| set_active_ticket | Привязать тикет к сессии. YT-issue авто-линкуются к активному тикету |
| get_active_ticket | Получить текущий активный тикет |
YouTrack (34)
Чтение (15):
| Тул | Назначение |
|---|---|
| youtrack_get_issue | Получить задачу по ID |
| youtrack_list_issues | Список задач с фильтрами |
| youtrack_search_issues | Поиск задач по query |
| youtrack_list_comments | Комментарии задачи |
| youtrack_get_comment_template | Шаблон комментария из конфига |
| youtrack_list_projects | Список проектов |
| youtrack_get_project | Проект по ID |
| youtrack_list_sprints | Список спринтов |
| youtrack_list_work_items | Список work items |
| youtrack_list_articles | Список статей |
| youtrack_get_article | Статья по ID |
| youtrack_get_custom_fields | Custom fields проекта |
| youtrack_list_agile_boards | Список agile-досок |
| youtrack_list_attachments | Список приложений задачи |
| youtrack_get_attachment | Скачать приложение (кешируется) |
Запись (19):
| Тул | Назначение |
|---|---|
| youtrack_create_issue | Создать задачу (custom_fields, parent link) |
| youtrack_update_issue | Обновить задачу |
| youtrack_delete_issue | Удалить задачу |
| youtrack_transition_issue | Сменить статус (Stage) |
| youtrack_add_comment | Добавить комментарий |
| youtrack_update_comment | Обновить комментарий |
| youtrack_delete_comment | Удалить комментарий |
| youtrack_add_tag | Добавить тег |
| youtrack_remove_tag | Удалить тег |
| youtrack_add_work_item | Записать время |
| youtrack_move_sprint | Переместить задачу в спринт |
| youtrack_link_issues | Связать задачи |
| youtrack_command | YouTrack command language |
| youtrack_create_article | Создать статью |
| youtrack_update_article | Обновить статью |
| youtrack_delete_article | Удалить статью |
| youtrack_create_project | Создать проект |
| youtrack_update_project | Обновить проект |
| youtrack_delete_project | Удалить проект |
Описания и комментарии возвращаются с переписанными markdown-ссылками
 / [text](file.ext) → attachment://yt/<issue>/<att>.
Плоский список приложений лежит в attachments[]. Загружайте бинарник
через youtrack_get_attachment — результат кешируется на сутки (TTL
настраивается MCP_ATTACHMENT_TTL_HOURS).
Confluence (12)
| Тул | Назначение |
|---|---|
| confluence_search | Поиск страниц через CQL |
| confluence_get_page | Получить страницу по ID (с attachments[]) |
| confluence_create_page | Создать страницу |
| confluence_update_page | Обновить страницу |
| confluence_list_spaces | Список пространств |
| confluence_get_child_pages | Дочерние страницы |
| confluence_delete_page | Удалить страницу |
| confluence_list_attachments | Список приложений страницы |
| confluence_get_attachment | Скачать приложение (base64/utf8/file) |
| confluence_get_labels | Получить метки страницы |
| confluence_add_label | Добавить метку |
| confluence_remove_label | Удалить метку |
Knowledge Graph (18)
| Тул | Назначение |
|---|---|
| graph_ingest | Загрузка контента → LLM извлекает сущности/связи → граф |
| graph_query | Запрос по entity ID с обходом соседей |
| graph_search | Текстовый (FTS5 + unicode) или семантический поиск. Wildcard * для list all. exclude_embeddings по умолчанию |
| graph_rag | RAG: embed → semantic search → multi-hop → community context → LLM ответ |
| graph_global_search | Global search: map-reduce по community summaries для обзорных вопросов |
| graph_upsert | Прямой CRUD без LLM |
| graph_delete | Удаление с каскадом |
| graph_stats | Статистика графа |
| graph_classify | LLM-классификация контента |
| graph_summarize | LLM-сводка по подграфу |
| graph_communities | Leiden community detection — кластеризация сущностей |
| graph_community_summaries | LLM-сводки по кластерам для global search |
| graph_compact | Очистка графа: дедупликация, удаление orphans, исправление inconsistencies |
| graph_web_search | Поиск в интернете с инжестом результатов в граф |
| graph_reindex | Пересчёт embeddings для entities с пустыми/null векторами |
| graph_pagerank | PageRank ранжирование entities по структуре графа |
| graph_sync | Фоновая синхронизация из YouTrack/Confluence/Git |
| graph_sync_status | Прогресс синхронизации |
Knowledge Graph
Встроенный граф знаний с SQLite-персистенцией. Растёт на лету при каждом
вызове graph_ingest. LLM-библиотекарь извлекает сущности и связи из
произвольного текста, дедуплицирует, генерирует эмбеддинги и строит связи
с существующим графом.
Типы сущностей: Issue, Service, Repo, File, Person, Concept, Page
Типы связей: DEPENDS_ON, RELATED_TO, MENTIONS, FIXES, PART_OF, AFFECTED_BY, AUTHORED_BY, BLOCKS, IMPLEMENTS, CONTAINS, MANUFACTURED_BY
Хранилище: SQLite (.mcp-rigging-graph.db) с FTS5 (unicode), WAL mode,
graceful shutdown с checkpoint. Pluggable — интерфейс GraphStore.
GraphSync: фоновая синхронизация YouTrack, Confluence, Git.
Без параметра project синхронизирует все проекты YouTrack.
RAG: embed запрос → semantic search seeds → multi-hop traversal → community summaries → LLM ответ.
Community Detection: Leiden алгоритм (чистый TypeScript) кластеризует сущности по связям. LLM генерирует сводки по кластерам. Community summaries используются в RAG для global search — масштабируется на большие графы.
Graph Compact: LLM-powered очистка: дедупликация, удаление orphan-узлов, исправление inconsistencies (неправильные типы, противоречия).
Web Search: DuckDuckGo API fallback — поиск в интернете когда граф не содержит ответа. Результаты автоматически инжестируются в граф.
Multi-LLM
| Провайдер | provider | Env | Примеры моделей |
|---|---|---|---|
| DeepSeek | deepseek | DEEPSEEK_API_KEY | deepseek-chat, deepseek-reasoner |
| OpenAI | openai | OPENAI_API_KEY | gpt-4o, gpt-4o-mini |
| Anthropic | anthropic | ANTHROPIC_API_KEY | claude-sonnet-4-20250514 |
| OpenAI-compatible | openai-compatible | LLM_API_KEY | Qwen, Groq, Together, etc. |
Локальные эмбеддинги: all-MiniLM-L6-v2, 384 dims, offline.
Переменные окружения
| Переменная | По умолчанию | Описание |
|---|---|---|
| MCP_RIGGING_LOG_LEVEL | warn | Уровень логгера |
| YOUTRACK_BASE_URL | — | URL YouTrack-инстанса |
| YOUTRACK_ACCESS_TOKEN | — | Permanent token для YouTrack API |
| CONFLUENCE_BASE_URL | — | URL Confluence Cloud |
| CONFLUENCE_EMAIL | — | Email аккаунта Atlassian |
| CONFLUENCE_API_TOKEN | — | API token из id.atlassian.com |
| DEEPSEEK_API_KEY | — | API ключ DeepSeek |
| DEEPSEEK_BASE_URL | https://api.deepseek.com | Base URL DeepSeek |
| OPENAI_API_KEY | — | API ключ OpenAI |
| OPENAI_BASE_URL | https://api.openai.com | Base URL OpenAI |
| ANTHROPIC_API_KEY | — | API ключ Anthropic |
| ANTHROPIC_BASE_URL | https://api.anthropic.com | Base URL Anthropic |
| LLM_API_KEY | — | Универсальный API ключ (fallback) |
| LLM_BASE_URL | — | Универсальный LLM URL (fallback) |
| LLM_MODEL | — | Модель (приоритет над конфигом) |
CLI
# MCP-сервер (по умолчанию)
mcp-rigging
# Визуализатор графа
mcp-rigging visualize [db-path] [--port=4895] [--no-open]Лицензия
MIT
