Skip to main content
Glama
boranesn
by boranesn

devflow-mcp

Готовый к промышленному использованию сервер Model Context Protocol, предоставляющий ИИ-ассистентам глубокие инструменты разработчика GitHub — анализ PR, проверку кода, генерацию списка изменений, аудит зависимостей, обобщение коммитов и предложения по рефакторингу.

Возможности

  • 6 инструментов MCP, охватывающих полный рабочий процесс разработчика

  • Эвристический анализ — без внешних вызовов LLM, быстро и детерминировано

  • Интеграция с OSV.dev для получения актуальных данных об уязвимостях (npm и PyPI)

  • LRU-кэш с TTL для минимизации количества вызовов API GitHub

  • Ограничитель частоты запросов (token-bucket) для соблюдения лимитов GitHub

  • Отсутствие any — строгий TypeScript во всем проекте

  • Покрытие тестами ≥80% с использованием MSW для имитации HTTP

Related MCP server: GitHub MCP Agent Server

Требования

  • Node.js 18+

  • Персональный токен доступа GitHub (Personal Access Token) с областью видимости repo

Установка

npm install -g devflow-mcp

Или запустите напрямую с помощью npx:

npx devflow-mcp

Или клонируйте и соберите:

git clone https://github.com/yourorg/devflow-mcp
cd devflow-mcp
npm install
npm run build

Настройка Claude Desktop

Добавьте в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "devflow": {
      "command": "npx",
      "args": ["devflow-mcp"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here"
      }
    }
  }
}

Расположение файла конфигурации:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Инструменты

analyze_pr

Анализирует pull request на GitHub на предмет рисков, проблем безопасности и готовности к слиянию.

Параметры:

Имя

Тип

Обязательный

Описание

owner

string

да

Владелец репозитория

repo

string

да

Имя репозитория

pr_number

number

да

Номер pull request

focus

string[]

нет

Ограничить анализ: security, performance, logic, style

Возвращает: risk_score (0-100), risk_level, findings[], change_summary, merge_recommendation


review_code

Проверяет фрагмент кода на качество, проблемы безопасности и возможности для улучшения.

Параметры:

Имя

Тип

Обязательный

Описание

code

string

да

Исходный код для проверки

language

string

да

Язык программирования

context

string

нет

Дополнительный контекст о том, что делает код

Возвращает: overall_score (1-10), issues[] с уровнем серьезности и предложениями по исправлению, positive_observations[], refactor_priority


generate_changelog

Генерирует список изменений между двумя Git-ссылками на основе истории коммитов.

Параметры:

Имя

Тип

Обязательный

Описание

owner

string

да

Владелец репозитория

repo

string

да

Имя репозитория

from_ref

string

да

Базовая ссылка (тег, SHA, ветка)

to_ref

string

да

Целевая ссылка

format

string

нет

markdown (по умолчанию), json, plain

group_by

string

нет

type (по умолчанию), author, date

include_authors

boolean

нет

Включить имена авторов (по умолчанию: true)

Возвращает: changelog строка, commit_count, stats по категориям, breaking_changes[]


audit_dependencies

Проводит аудит зависимостей проекта по базе данных уязвимостей OSV.

Параметры:

Имя

Тип

Обязательный

Описание

owner

string

да

Владелец репозитория

repo

string

да

Имя репозитория

ecosystem

string

да

npm, pypi или auto

severity_threshold

string

нет

Минимальный уровень серьезности для отчета: low (по умолчанию), moderate, high, critical

Возвращает: vulnerabilities[] с идентификаторами CVE, версиями для исправления и командами для исправления; audit_passed, stats по уровню серьезности, osv_query_timestamp


summarize_commits

Обобщает недавние коммиты в ветке в виде дайджеста, удобного для чтения.

Параметры:

Имя

Тип

Обязательный

Описание

owner

string

да

Владелец репозитория

repo

string

да

Имя репозитория

branch

string

нет

Имя ветки (по умолчанию: ветка репозитория по умолчанию)

since

string

нет

ISO-дата или относительное время (7d, 24h, 2w, 1m)

limit

number

нет

Макс. количество коммитов (по умолчанию: 50)

output_style

string

нет

digest (по умолчанию), standup, detailed

Возвращает: summary строка, categories (features/fixes/docs/refactors/chores/other), authors[], commit_count


suggest_refactor

Анализирует код на предмет возможностей рефакторинга, ранжированных по соотношению влияния к усилиям.

Параметры:

Имя

Тип

Обязательный

Описание

code

string

да

Исходный код для анализа

language

string

да

Язык программирования

goals

string[]

нет

Области фокуса: readability, performance, testability, maintainability

Возвращает: suggestions[] с обоснованием и оценкой усилий, priority_order[], original_complexity_score

Разработка

# Install dependencies
npm install

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Type-check and build
npm run build

# Lint
npm run lint

# Format
npm run format

# Start the server (after build)
npm start

Структура проекта

src/
  index.ts              # Entry point
  server.ts             # MCP server registration
  tools/                # Tool handlers (one per tool)
  github/               # GitHub API clients
  lib/                  # Shared utilities
    cache.ts            # LRU cache with TTL
    rate-limiter.ts     # Token-bucket rate limiter
    commit-parser.ts    # Conventional commit parser
    diff-parser.ts      # Git diff parser
    risk-scorer.ts      # PR risk scoring heuristics
    errors.ts           # Typed MCP errors
  providers/
    osv.ts              # OSV.dev vulnerability API
tests/
  integration/          # Full MCP server tests via InMemoryTransport
  tools/                # Unit tests per tool handler
  lib/                  # Unit tests for utilities

Стратегия тестирования

  • Модульные тесты: каждый обработчик инструментов и библиотека имитируются с помощью vi.mock

  • Интеграционные тесты: полный цикл клиент↔сервер MCP через InMemoryTransport, HTTP перехватывается с помощью MSW

  • HTTP-имитация: MSW v2 (msw/node) — никаких реальных сетевых вызовов в тестах

  • Покрытие: требуется ≥80% веток (npm run test:coverage)

Участие в разработке

  1. Сделайте форк репозитория

  2. Создайте ветку для новой функции

  3. Добавьте тесты для нового поведения

  4. Убедитесь, что npm run build && npm run test:coverage && npm run lint проходят успешно

  5. Откройте pull request

Лицензия

MIT

Related MCP Connectors

Related MCP Servers