Gitee

公式

Gitee API統合、リポジトリ、課題、プルリクエスト管理など。

Gitee MCPで何ができますか?

  • オープンソースリポジトリを検索search_open_source_repositories を使用してキーワードで公開Giteeプロジェクトを検索します。
  • リポジトリの課題を一覧表示および調査list_repo_issues で未解決の課題を取得し、get_repo_issue_detail で詳細を取得します。
  • 課題からプルリクエストを作成create_pull でPRを開き、create_commentupdate_issue を使用してコメントを追加し、関連する課題をクローズします。
  • プルリクエストをレビューおよびマージmanage_pull_review でレビューを承認またはキャンセルし、merge_pull でマージします。
  • リポジトリのファイルとリリースを管理get_file_content でファイル内容を読み取り、search_files_by_content でコードを検索し、create_release でリリースを公開します。
  • 通知とユーザー情報を確認list_user_notifications でGitee通知を一覧表示し、get_user_info で認証済みユーザーの詳細を取得します。

ドキュメント

Gitee MCP Server

Gitee MCP Serverは、Gitee向けのModel Context Protocol (MCP)サーバー実装です。GiteeのAPIと対話するための一連のツールを提供し、AIアシスタントがリポジトリ、Issue、プルリクエストなどを管理できるようにします。

Install MCP Server

機能

  • Giteeのリポジトリ、Issue、プルリクエスト、通知との連携
  • 異なるGiteeインスタンスをサポートするための設定可能なAPIベースURL
  • 簡単な設定のためのコマンドラインフラグ
  • 個人、組織、エンタープライズ操作のサポート
  • 動的なツールセットの有効化/無効化
実践シナリオ: リポジトリからIssueを取得し、実装してプルリクエストを作成する
  1. リポジトリのIssueを取得する get_repo_issues
  2. コーディングを実装し、Issueの詳細に基づいてプルリクエストを作成する implement_issue
  3. コメントしてIssueをクローズする comment_and_close_issue

インストール(npx起動時はこの手順を直接スキップできます)

前提条件

  • Go 1.23.0以上
  • アクセストークンを持つGiteeアカウント、取得はこちら

ソースからのビルド

  1. リポジトリをクローンする:

    git clone https://gitee.com/oschina/mcp-gitee.git
    cd mcp-gitee
    
  2. プロジェクトをビルドする:

    make build
    

    ./bin/mcp-giteeをPATH環境変数に移動する

go installを使用する

go install gitee.com/oschina/mcp-gitee@latest

使用方法

mcp-giteeのバージョンを確認する:

mcp-gitee --version

MCPホストの設定

設定例: クリックして他のアプリケーション設定を表示

リモートMCPサーバー

公式リモートmcp-giteeサーバーに接続する(インストール不要):

{
  "mcpServers": {
    "gitee": {
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>"
      }
    }
  }
}

Codexは~/.codex/config.tomlを使用する:

[mcp_servers.gitee]
url = "https://api.gitee.com/mcp"
bearer_token_env_var = "GITEE_ACCESS_TOKEN"

opencodeは~/.config/opencode/opencode.jsonを使用する:

{
  "mcp": {
    "gitee": {
      "type": "remote",
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>"
      },
      "enabled": true
    }
  }
}

コマンドラインオプション

  • --token: Giteeアクセストークン
  • --api-base: Gitee APIベースURL(デフォルト: https://gitee.com/api/v5)
  • --version: バージョン情報を表示する
  • --transport: トランスポートタイプ(stdio、sse、またはhttp、デフォルト: stdio)
  • --address: サーバーを起動するホストとポート(デフォルト: localhost:8000)
  • --enabled-toolsets: 有効にするツールのカンマ区切りリスト(指定した場合、これらのツールのみが有効になります)
  • --disabled-toolsets: 無効にするツールのカンマ区切りリスト

環境変数

環境変数を使用してサーバーを設定することもできます:

  • GITEE_ACCESS_TOKEN: Giteeアクセストークン
  • GITEE_API_BASE: Gitee APIベースURL
  • ENABLED_TOOLSETS: 有効にするツールのカンマ区切りリスト
  • DISABLED_TOOLSETS: 無効にするツールのカンマ区切りリスト

ツールセット管理

ツールセット管理は2つのモードをサポートしています:

  1. 指定したツールを有効にする(ホワイトリストモード):

    • --enabled-toolsetsパラメータまたはENABLED_TOOLSETS環境変数を使用する
    • 指定後、リストされたツールのみが有効になり、他は無効になります
    • 例: --enabled-toolsets="list_user_repos,get_file_content"
  2. 指定したツールを無効にする(ブラックリストモード):

    • --disabled-toolsetsパラメータまたはDISABLED_TOOLSETS環境変数を使用する
    • 指定後、リストされたツールが無効になり、他は有効になります
    • 例: --disabled-toolsets="list_user_repos,get_file_content"

注意:

  • enabled-toolsetsdisabled-toolsetsの両方が指定された場合、enabled-toolsetsが優先されます
  • ツール名は大文字と小文字が区別されます

リクエストごとのツールフィルタリング(HTTPヘッダー)

リモートMCPサーバー(HTTP/SSEトランスポート)を使用する場合、HTTPヘッダーを介してリクエストごとに利用可能なツールを動的にフィルタリングできます。これは、サーバーを再起動せずにツールの公開をきめ細かく制御する必要があるクライアントに役立ちます。

  1. ヘッダーで指定したツールを有効にする(ホワイトリスト):

    • X-MCP-Enabled-Toolsヘッダーを使用する
    • そのリクエストではリストされたツールのみが有効になります
    • 例: X-MCP-Enabled-Tools: list_user_repos,get_file_content
  2. ヘッダーで指定したツールを無効にする(ブラックリスト):

    • X-MCP-Disabled-Toolsヘッダーを使用する
    • そのリクエストではリストされたツールが無効になります
    • 例: X-MCP-Disabled-Tools: create_repo,delete_repo

優先順位ルール:

  • 同じリクエストにX-MCP-Enabled-ToolsX-MCP-Disabled-Toolsの両方が存在する場合、ホワイトリスト(X-MCP-Enabled-Tools)が優先されます
  • ツール名は大文字と小文字が区別されます

Cursor/Claudeの設定例:

{
  "mcpServers": {
    "gitee": {
      "url": "https://api.gitee.com/mcp",
      "headers": {
        "Authorization": "Bearer <your personal access token>",
        "X-MCP-Enabled-Tools": "list_user_repos,get_file_content,list_repo_issues"
      }
    }
  }
}

ライセンス

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

利用可能なツール

サーバーはGiteeと対話するためのさまざまなツールを提供します:

ツールカテゴリ説明
list_user_reposリポジトリユーザーが認可したリポジトリを一覧表示する
get_file_contentリポジトリリポジトリ内のファイルの内容を取得する
create_repoリポジトリリポジトリを作成する(ユーザー、組織、またはエンタープライズ)
fork_repositoryリポジトリリポジトリをフォークする
create_releaseリポジトリリポジトリのリリースを作成する
list_releasesリポジトリリポジトリのリリースを一覧表示する
search_open_source_repositoriesリポジトリGiteeでオープンソースリポジトリを検索する
search_files_by_contentリポジトリリポジトリ内のコンテンツでファイルを検索する
compare_branches_tagsリポジトリリポジトリ内の2つのブランチ、タグ、またはコミットを比較する
list_repo_pullsプルリクエストリポジトリのプルリクエストを一覧表示する
merge_pullプルリクエストプルリクエストをマージする
create_pullプルリクエストプルリクエストを作成する
update_pullプルリクエストプルリクエストを更新する
get_pull_detailプルリクエストプルリクエストの詳細を取得する
get_diff_filesプルリクエストプルリクエストの差分ファイルを取得する
manage_pull_reviewプルリクエストプルリクエストのレビューを管理する(承認または取り消し)
create_commentコメントIssueまたはプルリクエストにコメントを作成する
list_commentsコメントIssueまたはプルリクエストのすべてのコメントを一覧表示する
create_issueIssueIssueを作成する
update_issueIssueIssueを更新する
get_repo_issue_detailIssueリポジトリIssueの詳細を取得する
list_repo_issuesIssueリポジトリのIssueを一覧表示する
get_user_infoユーザー現在認証されているユーザー情報を取得する
search_usersユーザーユーザーを検索する
list_user_notifications通知ユーザー通知を一覧表示する

貢献

オープンソースコミュニティからの貢献を歓迎します!このプロジェクトに貢献したい場合は、以下のガイドラインに従ってください:

  1. リポジトリをフォークする。
  2. 機能またはバグ修正用の新しいブランチを作成する。
  3. 変更を加え、コードが十分に文書化されていることを確認する。
  4. 変更内容を明確に説明したプルリクエストを送信する。

詳細については、CONTRIBUTINGファイルを参照してください。