Skip to main content
Glama

DeepSource MCP サーバー

CI ディープソース ディープソース ディープソース npmバージョン npmダウンロード ライセンス

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

概要

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

  • コードメトリクスと分析結果を取得する

  • アクセスとフィルターの問題

  • 品質状態を確認する

  • プロジェクトの品質を時間の経過とともに分析する

特徴

  • DeepSource API統合:GraphQL 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. ツールエラー: 詳細なエラーメッセージとスタックトレースをログファイルで確認してください

ライセンス

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

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