Skip to main content
Glama

Сервер DeepSource MCP

КИ DeepSource DeepSource DeepSource npm-версия npm-загрузки Лицензия

Сервер Model Context Protocol (MCP), который интегрируется с DeepSource, чтобы предоставить помощникам на базе искусственного интеллекта доступ к показателям качества кода, проблемам и результатам анализа.

Обзор

DeepSource MCP Server позволяет помощникам ИИ взаимодействовать с возможностями анализа качества кода DeepSource через Model Context Protocol. Эта интеграция позволяет помощникам ИИ:

  • Извлечение метрик кода и результатов анализа

  • Проблемы с доступом и фильтрацией

  • Проверить статус качества

  • Анализ качества проекта с течением времени

Функции

  • Интеграция с DeepSource API : подключение к DeepSource через GraphQL API

  • Поддержка протокола MCP : реализует протокол контекста модели для интеграции помощника на основе искусственного интеллекта.

  • Метрики и пороговые значения качества : получение и управление метриками качества кода с помощью пороговых значений.

  • Отчеты о соответствии требованиям безопасности : доступ к отчетам о соответствии OWASP Top 10, SANS Top 25 и MISRA-C

  • Уязвимости зависимостей : доступ к информации об уязвимостях безопасности зависимостей

  • TypeScript/Node.js : создан с использованием TypeScript для обеспечения безопасности типов и современных функций JavaScript.

  • Кроссплатформенность : работает на Linux, macOS и Windows

  • Надежная обработка ошибок : комплексная обработка ошибок, связанных с сетью, аутентификацией и анализом.

Использование с Claude Desktop

  1. Редактировать claude_desktop_config.json :

    • Открыть рабочий стол Клода

    • Перейдите в Settings -> Developer -> Edit Config

    • Добавьте одну из конфигураций ниже в раздел mcpServers

  2. Перезапустите Claude Desktop, чтобы изменения вступили в силу.

Примеры запросов

После подключения ваш помощник на базе искусственного интеллекта сможет использовать данные DeepSource с такими запросами:

What issues are in the JavaScript files of my project?

Для этого будет использоваться инструмент project_issues с фильтрами:

{ "projectKey": "your-project-key", "path": "src/", "analyzerIn": ["javascript"], "first": 10 }

Для фильтрации результатов анализа:

Show me the most recent Python analysis runs

Для этого будет использоваться инструмент project_runs с фильтрами:

{ "projectKey": "your-project-key", "analyzerIn": ["python"], "first": 5 }

Для показателей качества кода:

What's my code coverage percentage? Is it meeting our thresholds?

Для этого будет использоваться инструмент quality_metrics :

{ "projectKey": "your-project-key", "shortcodeIn": ["LCV", "BCV", "CCV"] }

Для отчетов о соответствии требованиям безопасности:

Are we compliant with OWASP Top 10 security standards?

Для этого будет использоваться инструмент compliance_report :

{ "projectKey": "your-project-key", "reportType": "OWASP_TOP_10" }

Для установки пороговых значений:

Update our line coverage threshold to 80%

Для этого будет использоваться инструмент update_metric_threshold :

{ "projectKey": "your-project-key", "repositoryId": "repo-id", "metricShortcode": "LCV", "metricKey": "AGGREGATE", "thresholdValue": 80 }

Переменные среды

Сервер поддерживает следующие переменные среды:

  • DEEPSOURCE_API_KEY (обязательно): Ваш ключ API DeepSource для аутентификации

  • LOG_FILE (необязательно): Путь к файлу, в который должны записываться логи. Если не задано, логи записываться не будут

  • LOG_LEVEL (необязательно): Минимальный уровень журнала для записи (DEBUG, INFO, WARN, ERROR). По умолчанию DEBUG

Пример конфигурации с ведением журнала:

{ "mcpServers": { "deepsource": { "command": "npx", "args": [ "-y", "deepsource-mcp-server@1.1.0" ], "env": { "DEEPSOURCE_API_KEY": "your-deepsource-api-key", "LOG_FILE": "/tmp/deepsource-mcp.log", "LOG_LEVEL": "DEBUG" } } } }

Докер

{ "mcpServers": { "deepsource": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "DEEPSOURCE_API_KEY", "-e", "LOG_FILE=/tmp/deepsource-mcp.log", "-v", "/tmp:/tmp", "sapientpants/deepsource-mcp-server" ], "env": { "DEEPSOURCE_API_KEY": "your-deepsource-api-key", "LOG_FILE": "/tmp/deepsource-mcp.log" } } } }

НПХ

{ "mcpServers": { "deepsource": { "command": "npx", "args": [ "-y", "deepsource-mcp-server@1.1.0" ], "env": { "DEEPSOURCE_API_KEY": "your-deepsource-api-key" } } } }

Доступные инструменты

Сервер DeepSource MCP предоставляет следующие инструменты:

  1. projects : список всех доступных проектов DeepSource

    • Параметры:

      • Нет обязательных параметров

  2. project_issues : Получить проблемы из проекта DeepSource с фильтрацией

    • Параметры:

      • projectKey (обязательно) — уникальный идентификатор проекта DeepSource.

      • Параметры пагинации:

        • offset (необязательно) — количество элементов, которые необходимо пропустить при разбивке на страницы.

        • first (необязательно) — количество возвращаемых элементов (по умолчанию 10)

        • after (необязательно) - Курсор для прямой пагинации

        • before (необязательно) - Курсор для обратной пагинации

        • last (необязательно) — количество возвращаемых элементов перед курсором «before» (по умолчанию: 10)

      • Параметры фильтрации:

        • path (необязательно) — фильтрация проблем по определенному пути к файлу

        • analyzerIn (необязательно) — фильтрация проблем по определенным анализаторам (например, ["python", "javascript"])

        • tags (необязательно) — фильтрация проблем по тегам

  3. project_runs : список запусков анализа для проекта DeepSource с фильтрацией

    • Параметры:

      • projectKey (обязательно) — уникальный идентификатор проекта DeepSource.

      • Параметры пагинации:

        • offset (необязательно) — количество элементов, которые необходимо пропустить при разбивке на страницы.

        • first (необязательно) — количество возвращаемых элементов (по умолчанию 10)

        • after (необязательно) - Курсор для прямой пагинации

        • before (необязательно) - Курсор для обратной пагинации

        • last (необязательно) — количество возвращаемых элементов перед курсором «before» (по умолчанию: 10)

      • Параметры фильтрации:

        • analyzerIn (необязательно) — фильтрация запусков определенных анализаторов (например, ["python", "javascript"])

  4. run : Получить определенный анализ, запущенный по его runUid или commitOid

    • Параметры:

      • runIdentifier (обязательно) — runUid (UUID) или commitOid (хэш коммита) для идентификации запуска

  5. recent_run_issues : получение проблем из последнего анализа, выполненного в определенной ветке, с поддержкой постраничного просмотра

    • Параметры:

      • projectKey (обязательно) — уникальный идентификатор проекта DeepSource.

      • branchName (обязательно) — имя ветки, из которой необходимо получить последний запуск.

      • Параметры пагинации:

        • first (необязательно) — количество возвращаемых вопросов (по умолчанию 10)

        • after (необязательно) - Курсор для прямой пагинации

        • last (необязательно) — количество возвращаемых проблем перед курсором (по умолчанию: 10)

        • before (необязательно) - Курсор для обратной пагинации

    • Возврат:

      • Информация о последнем прогоне на ветке

      • Текущие проблемы в проекте (примечание: проблемы касаются уровня репозитория, а не конкретного запуска)

      • Информация о пагинации, включая курсоры и статус страницы

      • Метаданные о запуске и ветвлении

  6. dependency_vulnerabilities : получение уязвимостей зависимостей из проекта DeepSource

    • Параметры:

      • projectKey (обязательно) — уникальный идентификатор проекта DeepSource.

      • Параметры пагинации:

        • offset (необязательно) — количество элементов, которые необходимо пропустить при разбивке на страницы.

        • first (необязательно) — количество возвращаемых элементов (по умолчанию 10)

        • after (необязательно) - Курсор для прямой пагинации

        • before (необязательно) - Курсор для обратной пагинации

        • last (необязательно) — количество возвращаемых элементов перед курсором «before» (по умолчанию: 10)

  7. quality_metrics : получение показателей качества из проекта DeepSource с помощью фильтрации

    • Параметры:

      • projectKey (обязательно) — уникальный идентификатор проекта DeepSource.

      • shortcodeIn (необязательно) — фильтрация показателей по определенным коротким кодам (например, ["LCV", "BCV"])

    • Возвращает такие показатели, как:

      • Линейное покрытие (LCV)

      • Покрытие филиалов (BCV)

      • Покрытие документации (DCV)

      • Процент дублирующегося кода (DDP)

      • Каждая метрика включает текущие значения, пороговые значения и статус «пройдено/не пройдено».

  8. update_metric_threshold : обновить пороговое значение для определенной метрики качества

    • Параметры:

      • projectKey (обязательно) — уникальный идентификатор проекта DeepSource.

      • repositoryId (обязательно) — идентификатор репозитория GraphQL

      • metricShortcode (обязательно) — короткий код метрики для обновления.

      • metricKey (обязательно) — ключ языка или контекста для метрики.

      • thresholdValue (необязательно) — новое пороговое значение или null для удаления порога.

    • Пример: Установить порог покрытия линии 80%: metricShortcode="LCV", metricKey="AGGREGATE", thresholdValue=80

  9. update_metric_setting : Обновить настройки для метрики качества

    • Параметры:

      • projectKey (обязательно) — уникальный идентификатор проекта DeepSource.

      • repositoryId (обязательно) — идентификатор репозитория GraphQL

      • metricShortcode (обязательно) — короткий код метрики для обновления.

      • isReported (обязательно) — следует ли сообщать метрику

      • isThresholdEnforced (обязательно) — следует ли принудительно применять пороговое значение (может не пройти проверку)

  10. compliance_report : получение отчетов о соответствии требованиям безопасности из проекта DeepSource

  • Параметры:

    • projectKey (обязательно) — уникальный идентификатор проекта DeepSource.

    • reportType (обязательно) — тип отчета о соответствии, который необходимо получить ( OWASP Top 10 , SANS Top 25 или MISRA-C )

  • Возвращает комплексные данные о соответствии требованиям безопасности, включая:

    • Статистика проблем безопасности по категориям и серьезности

    • Статус соответствия (пройдено/не пройдено)

    • Данные о тенденциях, показывающие изменения с течением времени

    • Анализ и рекомендации по улучшению состояния безопасности

Разработка

  1. Клонируйте репозиторий:

git clone https://github.com/sapientpants/deepsource-mcp-server.git cd deepsource-mcp-server
  1. Установить зависимости:

pnpm install
  1. Создайте проект:

pnpm run build
  1. Настроить рабочий стол Клода

{ "mcpServers": { "deepsource": { "command": "node", "args": [ "/path/to/deepsource-mcp-server/dist/index.js" ], "env": { "DEEPSOURCE_API_KEY": "your-deepsource-api-key" } } } }

Предпосылки

  • Node.js 20 или выше

  • pnpm 10.7.0 или выше

  • Docker (для сборки контейнеров)

Скрипты

  • pnpm run build — сборка кода TypeScript

  • pnpm run start - Запустить сервер

  • pnpm run dev - Запустить сервер в режиме разработки

  • pnpm run test - Запустить тесты

  • pnpm run lint - Запустить ESLint

  • pnpm run format - Форматирование кода с помощью Prettier

Поиск неисправностей

Включить отладочное ведение журнала

Если у вас возникли проблемы, включите ведение журнала отладки, чтобы увидеть подробную информацию:

  1. Установите переменную среды LOG_FILE на путь к файлу, куда должны записываться журналы.

  2. Установите LOG_LEVEL на DEBUG (это значение по умолчанию)

  3. Проверьте файл журнала для получения подробной информации об ошибке.

Пример конфигурации:

{ "mcpServers": { "deepsource": { "command": "npx", "args": ["-y", "deepsource-mcp-server@1.1.0"], "env": { "DEEPSOURCE_API_KEY": "your-api-key", "LOG_FILE": "/tmp/deepsource-mcp.log", "LOG_LEVEL": "DEBUG" } } } }

Затем проверьте файл журнала:

tail -f /tmp/deepsource-mcp.log

Общие проблемы

  1. Ошибка аутентификации : убедитесь, что ваш DEEPSOURCE_API_KEY правильный и имеет необходимые разрешения.

  2. Журналы не отображаются : убедитесь, что путь LOG_FILE доступен для записи и родительский каталог существует.

  3. Ошибки инструмента : проверьте файл журнала на наличие подробных сообщений об ошибках и трассировок стека.

Лицензия

Массачусетский технологический институт

Related MCP Servers

  • A
    security
    F
    license
    A
    quality
    A Model Context Protocol server that enables AI models to interact with SourceSync.ai's knowledge management platform for managing documents, ingesting content from various sources, and performing semantic searches.
    Last updated -
    25
    33
    • Apple
    • Linux
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enables AI agents to retrieve and understand entire codebases at once, providing tools to analyze local workspaces or remote GitHub repositories.
    Last updated -
    3
    70
    MIT License
    • Linux
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that enhances AI-generated code quality through comprehensive analysis across 10 critical dimensions, helping identify issues before they become problems.
    Last updated -
    1
    72
    Apache 2.0
    • Linux
    • Apple
  • -
    security
    F
    license
    -
    quality
    A comprehensive Model Context Protocol server implementation that enables AI assistants to interact with file systems, databases, GitHub repositories, web resources, and system tools while maintaining security and control.
    Last updated -
    5
    2

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sapientpants/deepsource-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server