Skip to main content
Glama

DeepSource MCP Server

by sapientpants

DeepSource MCP サーバー

DeepSource と統合して、AI アシスタントにコード品質メトリック、問題、分析結果へのアクセスを提供するモデル コンテキスト プロトコル (MCP) サーバー。

概要

DeepSource MCPサーバーは、AIアシスタントがモデルコンテキストプロトコルを介してDeepSourceのコード品質分析機能と連携することを可能にします。この統合により、AIアシスタントは以下のことが可能になります。

  • コードメトリクスと分析結果を取得する
  • アクセスとフィルターの問題
  • 品質状態を確認する
  • プロジェクトの品質を時間の経過とともに分析する

特徴

  • DeepSource API統合 API経由でDeepSourceに接続します
  • MCP プロトコル サポート: AI アシスタント統合用のモデル コンテキスト プロトコルを実装します
  • 品質メトリクスとしきい値: しきい値を使用してコード品質メトリクスを取得および管理します
  • セキュリティコンプライアンスレポート: OWASP Top 10、SANS Top 25、MISRA-C コンプライアンスレポートにアクセスします
  • 依存関係の脆弱性: 依存関係に関するセキュリティ脆弱性情報にアクセスする
  • TypeScript/Node.js : 型安全性と最新のJavaScript機能のためにTypeScriptで構築されています
  • クロスプラットフォーム: Linux、macOS、Windowsで動作
  • 堅牢なエラー処理: ネットワーク、認証、解析の問題に対する包括的なエラー処理

Claude Desktopでの使用

  1. claude_desktop_config.jsonを編集します。
    • クロードデスクトップを開く
    • Settings 」→ Developer 」→ Edit Configへ移動します。
    • 以下のいずれかの構成をmcpServersセクションに追加します。
  2. 変更を適用するには、Claude Desktopを再起動してください。

クエリの例

接続されると、AI アシスタントは次のようなクエリで 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 (必須): 認証用のDeepSource APIキー
  • 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" } } } }

NPX

{ "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リポジトリID
      • metricShortcode (必須) - 更新するメトリックのショートコード
      • metricKey (必須) - メトリックの言語またはコンテキストキー
      • thresholdValue (オプション) - 新しいしきい値、またはしきい値を削除する場合は null
    • 例: 80% の行カバレッジしきい値を設定する: metricShortcode="LCV", metricKey="AGGREGATE", thresholdValue=80
  9. update_metric_setting : 品質メトリックの設定を更新する
    • パラメータ:
      • projectKey (必須) - DeepSourceプロジェクトの一意の識別子
      • repositoryId (必須) - GraphQLリポジトリID
      • metricShortcode (必須) - 更新するメトリックのショートコード
      • isReported (必須) - メトリックを報告するかどうか
      • isThresholdEnforced (必須) - しきい値を強制するかどうか (チェックに失敗する可能性があります)
  10. compliance_report : DeepSourceプロジェクトからセキュリティコンプライアンスレポートを取得する
  • パラメータ:
    • projectKey (必須) - DeepSourceプロジェクトの一意の識別子
    • reportType (必須) - 取得するコンプライアンスレポートの種類 ( OWASP Top 10SANS 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. Claudeデスクトップの設定
{ "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. ツールエラー: 詳細なエラーメッセージとスタックトレースをログファイルで確認してください

ライセンス

マサチューセッツ工科大学

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

DeepSource と統合して、AI アシスタントにコード品質メトリック、問題、分析結果へのアクセスを提供するモデル コンテキスト プロトコル サーバー。

  1. 概要
    1. 特徴
      1. Claude Desktopでの使用
        1. クエリの例
        2. 環境変数
        3. ドッカー
        4. NPX
      2. 利用可能なツール
        1. 発達
          1. 前提条件
          2. スクリプト
        2. トラブルシューティング
          1. デバッグログを有効にする
          2. よくある問題
        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
            14
            • Apple
            • Linux
          • -
            security
            A
            license
            -
            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 -
            9
            TypeScript
            MIT License
            • Linux
            • Apple
          • -
            security
            A
            license
            -
            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 -
            3
            Python
            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 -
            16
            TypeScript

          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