Skip to main content
Glama

MCPハーバー

ライセンス: MIT タイプスクリプト Node.js

MCP Harborは、Harborコンテナレジストリと連携するためのModel Context Protocol(MCP)サーバーを提供するNode.jsアプリケーションです。また、Harbor操作用のREST APIも含まれています。

目次

Related MCP server: Hedera MCP Server

特徴

  • MCP サーバー: モデルコンテキストプロトコルを介して Harbor と対話するためのツールを公開します。

  • REST API : Harbor操作用のRESTfulエンドポイントを提供します

  • Harbor Operations : プロジェクト、リポジトリ、タグ、Helm チャートの操作をサポートします

  • TypeScript : 型安全性と開発者エクスペリエンスを向上させるために TypeScript で記述されています

  • 自動テスト: 信頼性の高い機能のための包括的なテストスイート

前提条件

MCP Harbor をインストールする前に、次のものを用意してください。

  • Node.js 18.x 以上

  • npm 8.x以上

  • Harborレジストリインスタンスへのアクセス

  • Git(リポジトリのクローン作成用)

インストール

  1. リポジトリをクローンします。

    git clone https://github.com/nomagicln/mcp-harbor.git
  2. プロジェクト ディレクトリに移動します。

    cd mcp-harbor
  3. 依存関係をインストールします:

    npm install
  4. プロジェクトをビルドします。

    npm run build
  5. アプリケーションを起動します。

    npm start

構成

環境変数

次の変数を含む.envファイルをルート ディレクトリに作成します。

# Required
HARBOR_URL=https://your-harbor-instance.com
HARBOR_USERNAME=your_username
HARBOR_PASSWORD=your_password

# Optional
PORT=3000                  # Server port (default: 3000)
LOG_LEVEL=info            # Logging level (default: info)
ENABLE_HTTPS=false       # Enable HTTPS (default: false)
SSL_CERT_PATH=/path/to/cert.pem  # Required if ENABLE_HTTPS=true
SSL_KEY_PATH=/path/to/key.pem    # Required if ENABLE_HTTPS=true

設定ファイル

追加の構成オプションはsrc/config/harbor.config.tsで設定できます。

{
  timeout: 30000,         // API request timeout in milliseconds
  retryAttempts: 3,      // Number of retry attempts for failed requests
  cacheEnabled: true,     // Enable response caching
  cacheTTL: 300          // Cache TTL in seconds
}

APIエンドポイント

プロジェクト

  • GET /projects - すべてのプロジェクトを一覧表示する

  • GET /projects/:id - プロジェクトの詳細を取得する

  • POST /projects - 新しいプロジェクトを作成する

  • DELETE /projects/:id - プロジェクトを削除する

リポジトリ

  • GET /projects/:projectId/repositories - プロジェクト内のリポジトリを一覧表示する

  • DELETE /projects/:projectId/repositories/:repositoryName - リポジトリを削除する

タグ

  • GET /projects/:projectId/repositories/:repositoryName/tags - リポジトリ内のタグを一覧表示する

  • DELETE /projects/:projectId/repositories/:repositoryName/tags/:tag - タグを削除する

Helmチャート

  • GET /projects/:projectId/charts - プロジェクト内のHelmチャート一覧を取得する

  • GET /projects/:projectId/charts/:chartName/versions - Helm チャートのバージョンを一覧表示する

  • DELETE /projects/:projectId/charts/:chartName/versions/:version - Helm チャートのバージョンを削除します

MCPツール

MCP サーバーは次のツールを公開します。

ツール名

説明

パラメータ

list_projects

Harborのすべてのプロジェクトを一覧表示する

なし

get_project

IDでプロジェクトの詳細を取得する

id: number

create_project

新しいプロジェクトを作成する

name: string, public?: boolean

delete_project

プロジェクトを削除する

id: number

list_repositories

プロジェクト内のリポジトリを一覧表示する

projectId: number

delete_repository

リポジトリを削除する

projectId: number, repoName: string

list_tags

リポジトリ内のタグを一覧表示する

projectId: number, repoName: string

delete_tag

タグを削除する

projectId: number, repoName: string, tag: string

list_charts

Helm チャートの一覧表示

projectId: number

list_chart_versions

チャートのバージョンを一覧表示する

projectId: number, chartName: string

delete_chart

チャートのバージョンを削除

projectId: number, chartName: string, version: string

発達

開発モードで実行

npm run dev

テストの実行

# Run all tests
npm test

# Run tests with coverage
npm run test:coverage

# Run specific test file
npm test -- test/harbor.test.ts

デバッグツール

プロジェクトには、 toolsディレクトリにデバッグ ツールが含まれています。

# Test Harbor connection
npm run test:connection

# Start debug server
npm run debug:server

プロジェクト構造

mcp-harbor
├── src
│   ├── app.ts                 # Main application entry point (MCP server)
│   ├── config
│   │   └── harbor.config.ts   # Harbor configuration
│   ├── controllers
│   │   └── harbor.controller.ts # REST API controllers
│   ├── services
│   │   └── harbor.service.ts  # Harbor service implementation
│   ├── models 
│   │   └── harbor.model.ts    # Data models
│   ├── routes
│   │   └── harbor.routes.ts   # API route definitions
│   └── types
│       └── index.ts           # TypeScript type definitions
├── test
│   └── harbor.test.ts         # Tests for Harbor service
├── tools
│   ├── debug-server.ts        # Debug server implementation
│   └── test-connection.ts     # Connection testing utility
├── .env.example              # Example environment variables
├── .gitignore               # Git ignore file
├── package.json            # Project dependencies
├── tsconfig.json          # TypeScript configuration
└── README.md             # Project documentation

トラブルシューティング

よくある問題

  1. 接続に失敗しました

    Error: Unable to connect to Harbor instance
    • HARBOR_URLが正しくアクセス可能であることを確認してください

    • ネットワーク接続を確認する

    • Harborインスタンスが実行中であることを確認する

  2. 認証に失敗しました

    Error: Invalid credentials
    • HARBOR_USERNAMEとHARBOR_PASSWORDが正しいことを確認してください

    • ユーザーに必要な権限があるかどうかを確認する

  3. ビルドエラー

    Error: TypeScript compilation failed
    • npm install実行して、すべての依存関係がインストールされていることを確認します。

    • TypeScriptバージョンの互換性を確認する

    • distディレクトリをクリアして再構築する

デバッグモード

次の設定によりデバッグ ログを有効にします。

LOG_LEVEL=debug

サポート

さらに詳しいヘルプについては、以下をご覧ください。

  1. DEBUG.mdファイルを確認する

  2. 接続テストを実行します: npm run test:connection

  3. logs/ディレクトリ内のアプリケーションログを確認する

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/nomagicln/mcp-harbor'

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