npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-rigging

v5.0.4

Published

MCP server providing git branch/commit tools with config-driven validation

Readme

mcp-rigging

npm version Socket Badge

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-rigging

Cursor (.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 = true

Graph 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-ссылками ![alt](file.ext) / [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