THE PROJECT IS MOVED について
このリポジトリは移行済みです。GitLab、Jira、Confluence、YouTube を統合した MCP サーバーでしたが、README によると機能は複数の独立したリポジトリに分割されています。本項目は参考のため、元のツールグループと設定情報を残しています。
主な機能
- 01ENABLE_TOOLS によるツールグループの有効化
- 02GitLab と Jira のツール
- 03Confluence ページの検索と編集
- 04Google Calendar と Gmail のツール
活用シーン
- 01GitLab マージリクエストの一覧取得とコメント投稿
- 02Confluence ページの検索と更新
- 03JQL による Jira チケットの検索
MCP 対応
このプロジェクトは MCP サーバーであり、GitLab、Jira、Confluence、Google サービスのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
プロジェクトの移転について
プロジェクトは分割され、個別のリポジトリに移転しました。
- Google Kit:Gmail、Google Calendar、Google Chat 用のツール
- RAG Kit:RAG、メモリー用のツール
- Dev Kit:開発者向けツール、jira、confluence、gitlab、github など
- Fetch Kit:取得、スクレイピング用のツールなど
- Research Kit:調査、学術研究、推論用のツールなど
MyMCP Server
GitLab、Jira、Confluence、YouTube などと連携する、強力な Model Context Protocol(MCP)サーバー実装です。このサーバーは、AI を活用した検索機能と、開発ワークフロー向けのさまざまなユーティリティツールを提供します。
コミュニティ
コミュニティサポート、ディスカッション、最新情報については、community.aiocean.io のフォーラムをご覧ください。
前提条件
- Go 1.23.2 以降
- 使用するサービスの各種 API キーとトークン
インストール
Smithery 経由でインストール
Smithery 経由で Claude Desktop 用の MyMCP Server を自動的にインストールするには、以下を実行します(対話形式の CLI セットアップが案内されます)。
npx -y @smithery/cli install @nguyenvanduocit/all-in-one-model-context-protocol --client claude
注:Smithery は必要な設定値を対話形式で尋ね、自動的に環境をセットアップします。
Go 経由でインストール
- サーバーをインストールします:
go install github.com/nguyenvanduocit/all-in-one-model-context-protocol@latest
- 手動でのセットアップが必要です — 設定を記述した
.envファイルを作成します:
ENABLE_TOOLS=
QDRANT_HOST=
ATLASSIAN_HOST=
ATLASSIAN_EMAIL=
GITLAB_HOST=
GITLAB_TOKEN=
BRAVE_API_KEY=
ATLASSIAN_TOKEN=
GOOGLE_AI_API_KEY=
PROXY_URL=
OPENAI_API_KEY=
DEEPSEEK_API_KEY=
QDRANT_PORT=
GOOGLE_TOKEN_FILE=
GOOGLE_CREDENTIALS_FILE=
QDRANT_API_KEY=
- Claude の設定を構成します:
{
"mcpServers": {
"my_mcp_server": {
"command": "all-in-one-model-context-protocol",
"args": ["-env", "/path/to/.env"],
}
}
}
シークレット
GOOGLE_TOKEN_FILE は、Gemini、Google Search、Google Calendar などの Google AI に使用されます。
GOOGLE_CREDENTIALS_FILE は、Google Chat などの高度な機能に使用するサービスアカウントです。Google Cloud Console でプロジェクトとサービスアカウントを作成する必要があります。その後、Google Cloud Chat bot も作成する必要があります。これらの作成には、LLM モデルに依頼できます。
ツールを有効にする
環境変数には非表示の変数 ENABLE_TOOLS があります。これは有効にするツールグループをカンマ区切りで指定するリストです。設定されていない場合は、すべてのツールが有効になります。空のままにすると、すべてのツールが有効になります。
ツールグループの一覧は次のとおりです。
gemini:Gemini を活用した検索fetch:取得ツールconfluence:Confluence ツールyoutube:YouTube ツールjira:Jira ツールgitlab:GitLab ツールscript:スクリプトツールrag:RAG ツールdeepseek:Deepseek AI ツール
利用可能なツール
calendar_create_event
Google Calendar に新しい予定を作成します
引数:
summary(String)(必須):予定のタイトルdescription(String):予定の説明start_time(String)(必須):RFC3339 形式での予定の開始時刻(例:2023-12-25T09:00:00Z)end_time(String)(必須):RFC3339 形式での予定の終了時刻attendees(String):参加者のメールアドレスをカンマ区切りで指定したリスト
calendar_list_events
Google Calendar の今後の予定を一覧表示します
引数:
time_min(String):RFC3339 形式での検索開始時刻(デフォルト:現在)time_max(String):RFC3339 形式での検索終了時刻(デフォルト:現在から1週間後)max_results(Number):返す予定の最大数(デフォルト:10)
calendar_update_event
Google Calendar の既存のイベントを更新します
引数:
event_id(String)(必須):更新するイベントの IDsummary(String):イベントの新しいタイトルdescription(String):イベントの新しい説明start_time(String):RFC3339 形式の新しいイベント開始時刻end_time(String):RFC3339 形式の新しいイベント終了時刻attendees(String):新しい参加者のメールアドレスをカンマ区切りで指定したリスト
calendar_respond_to_event
Google Calendar のイベント招待に返信します
引数:
event_id(String)(必須):返信するイベントの IDresponse(String)(必須):返信内容(accepted、declined、または tentative)
confluence_search
Confluence を検索します
引数:
query(String)(必須):Atlassian Confluence Query Language(CQL)
confluence_get_page
Confluence ページの内容を取得します
引数:
page_id(String)(必須):Confluence ページ ID
confluence_create_page
新しい Confluence ページを作成します
引数:
space_key(String)(必須):ページを作成するスペースのキーtitle(String)(必須):ページのタイトルcontent(String)(必須):ストレージ形式(XHTML)のページ内容parent_id(String):親ページの ID(任意)
confluence_update_page
既存の Confluence ページを更新します
引数:
page_id(String)(必須):更新するページの IDtitle(String):ページの新しいタイトル(任意)content(String):ストレージ形式(XHTML)の新しいページ内容version_number(String):楽観的ロックに使用するバージョン番号(任意)
deepseek_reasoning
Deepseek の AI 機能を活用して、多段階の問題解決、批判的分析、戦略的な意思決定を支援する高度な推論エンジンです
引数:
question(String)(必須):詳細な分析と推論が必要な、構造化されたクエリまたは問題の説明context(String)(必須):MCP エコシステム内におけるクエリの運用コンテキストと目的を定義しますknowledge(String):MCP に対応した推論のために、関連するチャット履歴、ナレッジベースの項目、構造化データのコンテキストを提供します
get_web_content
指定された HTTP/HTTPS URL からコンテンツを取得します。このツールを使うと、ウェブページ、API、またはアクセス可能な HTTP エンドポイントからテキストコンテンツを取得できます。生のコンテンツをテキストとして返します。
引数:
url(String)(必須):取得する HTTP/HTTPS URL の全体(例:https://example.com)
gchat_list_spaces
利用可能なすべての Google Chat スペース/ルームを一覧表示します
gchat_send_message
Google Chat のスペースまたはダイレクトメッセージにメッセージを送信します
引数:
space_name(String)(必須):メッセージの送信先となるスペースの名前message(String)(必須):送信するテキストメッセージ
ai_web_search
Google AI Search を使ってウェブを検索します。リアルタイムの情報を取得するのに最適なツールです
引数:
question(String)(必須):質問する内容。質問形式にしてくださいcontext(String)(必須):質問のコンテキスト/目的。Gemini が質問をよりよく理解するために役立ちます
gitlab_list_projects
GitLab プロジェクトを一覧表示します
引数:
group_id(String)(必須):gitlab グループ IDsearch(String):複数の語句を指定する場合は、エスケープされたスペース、+、または %20 で区切ります。語句は AND 条件で検索されます。例:one+two は、順不同で one と two の部分文字列に一致します。
gitlab_get_project
GitLab プロジェクトの詳細を取得します
引数:
project_path(String)(必須):プロジェクト/リポジトリのパス
gitlab_list_mrs
マージリクエストを一覧表示します
引数:
project_path(String)(必須):プロジェクト/リポジトリのパスstate(String)(デフォルト:all):MR の状態(opened/closed/merged)
gitlab_get_mr_details
マージリクエストの詳細を取得します
引数:
project_path(String)(必須):プロジェクト/リポジトリのパスmr_iid(String)(必須):マージリクエストの IID
gitlab_create_MR_note
マージリクエストにコメントを作成します
Arguments:
project_path(String) (Required): プロジェクト/リポジトリのパスmr_iid(String) (Required): マージリクエストの IIDcomment(String) (Required): コメントのテキスト
gitlab_get_file_content
GitLab リポジトリからファイルの内容を取得します
Arguments:
project_path(String) (Required): プロジェクト/リポジトリのパスfile_path(String) (Required): リポジトリ内のファイルへのパスref(String) (Required): ブランチ名、タグ、またはコミット SHA
gitlab_list_pipelines
GitLab プロジェクトのパイプラインを一覧表示します
Arguments:
project_path(String) (Required): プロジェクト/リポジトリのパスstatus(String) (Default: all): パイプラインのステータス(running/pending/success/failed/canceled/skipped/all)
gitlab_list_commits
指定した期間内の GitLab プロジェクトのコミットを一覧表示します
Arguments:
project_path(String) (Required): プロジェクト/リポジトリのパスsince(String) (Required): 開始日(YYYY-MM-DD)until(String): 終了日(YYYY-MM-DD)。指定しない場合は現在の日付がデフォルトになりますref(String) (Required): ブランチ名、タグ、またはコミット SHA
gitlab_get_commit_details
コミットの詳細を取得します
Arguments:
project_path(String) (Required): プロジェクト/リポジトリのパスcommit_sha(String) (Required): コミット SHA
gitlab_list_user_events
指定した期間内の GitLab ユーザーイベントを一覧表示します
Arguments:
username(String) (Required): GitLab ユーザー名since(String) (Required): 開始日(YYYY-MM-DD)until(String): 終了日(YYYY-MM-DD)。指定しない場合は現在の日付がデフォルトになります
gitlab_list_group_users
GitLab グループの全ユーザーを一覧表示します
Arguments:
group_id(String) (Required): GitLab グループ ID
gitlab_create_mr
新しいマージリクエストを作成します
Arguments:
project_path(String) (Required): プロジェクト/リポジトリのパスsource_branch(String) (Required): ソースブランチ名target_branch(String) (Required): ターゲットブランチ名title(String) (Required): マージリクエストのタイトルdescription(String): マージリクエストの説明
gmail_search
Gmail の検索構文を使用してメールを検索します
Arguments:
query(String) (Required): Gmail の検索クエリ。Gmail の検索構文に従ってください
gmail_move_to_spam
メッセージ ID を指定して、該当するメールを Gmail の迷惑メールフォルダに移動します
Arguments:
message_ids(String) (Required): 迷惑メールに移動するメッセージ ID のカンマ区切りリスト
gmail_create_filter
指定した条件とアクションで Gmail のフィルタを作成します
Arguments:
from(String): この送信者からのメールをフィルタリングしますto(String): この宛先へのメールをフィルタリングしますsubject(String): この件名のメールをフィルタリングしますquery(String): 追加の検索条件add_label(Boolean): 一致するメッセージにラベルを追加しますlabel_name(String): 追加するラベルの名前(add_label が true の場合は必須)mark_important(Boolean): 一致するメッセージを重要としてマークしますmark_read(Boolean): 一致するメッセージを既読としてマークしますarchive(Boolean): 一致するメッセージをアーカイブします
gmail_list_filters
アカウント内の Gmail フィルタをすべて一覧表示します
gmail_list_labels
アカウント内の Gmail ラベルをすべて一覧表示します
gmail_delete_filter
ID を指定して Gmail フィルタを削除します
Arguments:
filter_id(String) (Required): 削除するフィルタの ID
gmail_delete_label
ID を指定して Gmail ラベルを削除します
Arguments:
label_id(String) (Required): 削除するラベルの ID
jira_get_issue
特定の Jira 課題に関するステータス、担当者、説明、サブタスク、利用可能なトランジションなどの詳細情報を取得します
Arguments:
issue_key(String) (Required): Jira 課題の一意の識別子(例:KP-2、PROJ-123)
jira_search_issue
JQL(Jira Query Language)を使用して Jira 課題を検索します。一致する課題の概要、ステータス、担当者、優先度などの主要な詳細を返します
Arguments:
jql(String) (Required): JQL クエリ文字列(例:'project = KP AND status = "In Progress"')
jira_list_sprints
特定の Jira ボードにあるアクティブなスプリントと今後のスプリントをすべて一覧表示します。スプリント ID、名前、状態、日付が含まれます。
Arguments:
board_id(String) (Required): Jira ボードの数値 ID(ボードの URL で確認できます)
jira_create_issue
指定した詳細情報で Jira の課題を新規作成します。作成された課題のキー、ID、URL を返します。
Arguments:
project_key(String) (Required): 課題の作成先となるプロジェクト識別子(例:KP、PROJ)summary(String) (Required): 課題の簡潔なタイトルまたは見出しdescription(String) (Required): 課題の詳細な説明issue_type(String) (Required): 作成する課題のタイプ(一般的なタイプ:Bug、Task、Story、Epic)
jira_update_issue
既存の Jira 課題の詳細を変更します。一部更新に対応しており、指定したフィールドのみが変更されます。
Arguments:
issue_key(String) (Required): 更新する課題の一意の識別子(例:KP-2)summary(String): 課題の新しいタイトル(任意)description(String): 課題の新しい説明(任意)
jira_list_statuses
特定の Jira プロジェクトで利用できるすべての課題ステータス ID と名前を取得します。
Arguments:
project_key(String) (Required): プロジェクト識別子(例:KP、PROJ)
jira_transition_issue
有効なトランジション ID を使用して、課題をワークフロー内で遷移させます。利用可能なトランジションは jira_get_issue から取得できます。
Arguments:
issue_key(String) (Required): 遷移させる課題(例:KP-123)transition_id(String) (Required): 利用可能なトランジション一覧にあるトランジション IDcomment(String): 遷移時に追加する任意のコメント
RAG_memory_index_content
コンテンツをメモリにインデックス登録します。新規挿入または更新が可能です。
Arguments:
collection(String) (Required): メモリのコレクション名filePath(String) (Required): コンテンツファイルのパスpayload(String) (Required): プレーンテキストのペイロード
RAG_memory_index_file
ローカルファイルをメモリにインデックス登録します。
Arguments:
collection(String) (Required): メモリのコレクション名filePath(String) (Required): インデックス登録するローカルファイルのパス
RAG_memory_create_collection
メモリに新しいベクターコレクションを作成します。
Arguments:
collection(String) (Required): メモリのコレクション名
RAG_memory_delete_collection
メモリ内のベクターコレクションを削除します。
Arguments:
collection(String) (Required): メモリのコレクション名
RAG_memory_list_collections
メモリ内のすべてのベクターコレクションを一覧表示します。
RAG_memory_search
クエリに基づいて、コレクション内のメモリを検索します。
Arguments:
collection(String) (Required): メモリのコレクション名query(String) (Required): 検索クエリ。キーワードを指定してください。
RAG_memory_delete_index_by_filepath
filePath でベクターインデックスを削除します。
Arguments:
collection(String) (Required): メモリのコレクション名filePath(String) (Required): 削除するローカルファイルのパス
execute_comand_line_script
セキュリティ制限のもと、ユーザーのシステム上でコマンドラインスクリプトを安全に実行します。サンドボックスでの実行、タイムアウト保護、出力の取得に対応しています。環境を自動検出し、クロスプラットフォームのスクリプト実行をサポートします。
Arguments:
content(String) (Required):interpreter(String) (Default: /bin/sh): インタープリターのバイナリへのパス(例:/bin/sh、/bin/bash、/usr/bin/python、cmd.exe)。セキュリティのため、許可リストに照らして検証されます。working_dir(String): 実行ディレクトリのパス(デフォルト:ユーザーのホームディレクトリ)。システム上の許可されていない場所へのアクセスを防ぐために検証されます。
web_search
Brave Search API を使用してウェブを検索します。
Arguments:
query(String) (Required): 検索するクエリ(最大 400 文字、50 語)count(Number) (Default: 5): 検索結果の件数(1~20、デフォルトは 5)country(String) (Default: ALL): 国コード
sequentialthinking
`思考を通じて、動的かつ内省的な問題解決を行うための詳細なツールです。 このツールは、柔軟な思考プロセスを通じて問題を分析するのに役立ち、状況に応じて適応し、進化できます。 理解が深まるにつれて、それぞれの思考は以前の洞察を発展させたり、問い直したり、修正したりできます。
このツールを使用する場面:
- 複雑な問題を段階に分けて解決する場合
- 修正の余地を残した計画や設計を行う場合
- 途中で方向修正が必要になる可能性のある分析を行う場合
- 当初は全体像がはっきりしていない可能性のある問題に取り組む場合
- 複数段階の解決策が必要な問題に取り組む場合
- 複数の段階にわたってコンテキストを維持する必要があるタスクを行う場合
- 無関係な情報を取り除く必要がある状況に対処する場合
主な機能:
- 進行に応じて total_thoughts を増減できます
- 以前の思考を問い直したり、修正したりできます
- 終わりだと思われる段階に達した後でも、さらに思考を追加できます
- 不確実性を表明し、別のアプローチを探ることができます
- すべての思考を直線的につなげる必要はありません。分岐したり、前の段階に戻ったりできます
- 解決策の仮説を生成します
- 思考の連鎖の段階に基づいて仮説を検証します
- 納得できるまでプロセスを繰り返します
- 正しい回答を提示します
パラメーターの説明:
- thought:現在の思考段階。次の内容を含めることができます。
- 通常の分析段階
- 以前の思考の修正
- 以前の判断に関する疑問
- さらに分析が必要だという気づき
- アプローチの変更
- 仮説の生成
- 仮説の検証
- next_thought_needed:終わりだと思われる段階に達していても、さらに思考が必要な場合は True
- thought_number:現在の順序番号(必要に応じて初期の合計を超えることがあります)
- total_thoughts:必要な思考数の現在の推定値(増減できます)
- is_revision:この思考が以前の思考を修正するものかどうかを示すブール値
- revises_thought:is_revision が true の場合、再検討する思考の番号
- branch_from_thought:分岐する場合、分岐元となる思考の番号
- branch_id:現在の分岐の識別子(該当する場合)
- needs_more_thoughts:終わりに達したものの、さらに思考が必要だと気づいた場合
次のことを行ってください:
- 必要な思考数の初期推定を設定します。ただし、必要に応じて調整できるようにします
- 以前の思考をためらわずに問い直したり、修正したりします
- 「終わり」に達した後でも、必要に応じてさらに思考を追加します
- 不確実な点があれば表明します
- 以前の思考を修正する場合や、新たな道筋に分岐する場合は、その旨を示します
- 現在の段階に関係のない情報は無視します
- 適切な場合は解決策の仮説を生成します
- 思考の連鎖の段階に基づいて仮説を検証します
- 解決策に納得できるまでプロセスを繰り返します
- 最終出力として、できる限り正確な回答を1つ提示します
- 真に完了し、満足できる回答に到達した場合にのみ、next_thought_needed を false に設定します`
引数:
thought(String)(必須):現在の思考段階nextThoughtNeeded(Boolean)(必須):次の思考段階が必要かどうかthoughtNumber(Number)(必須):現在の思考番号totalThoughts(Number)(必須):必要な思考数の推定値isRevision(Boolean):以前の思考を修正するものかどうかrevisesThought(Number):再検討する思考の番号branchFromThought(Number):分岐元となる思考の番号branchId(String):分岐の識別子needsMoreThoughts(Boolean):さらに思考が必要かどうか
tool_manager
MCP ツールを管理します(有効化または無効化)
引数:
action(String)(必須):実行するアクション:list、enable、disabletool_name(String):有効化または無効化するツール名
tool_use_plan
要求を解決するために、有効になっているツールの使用計画を作成します
引数:
request(String)(必須):計画の作成対象となる要求context(String)(必須):要求に関連するコンテキスト
youtube_transcript
YouTube 動画の文字起こしを取得します
引数:
video_id(String)(必須):YouTube 動画の ID
youtube_update_video
YouTube 動画のタイトルと説明を更新します
引数:
video_id(String) (必須):更新する動画の IDtitle(String) (必須):動画の新しいタイトルdescription(String) (必須):動画の新しい説明keywords(String) (必須):動画のキーワードをカンマ区切りで指定したリストcategory(String) (必須):動画のカテゴリ ID。詳しくは https://developers.google.com/youtube/v3/docs/videoCategories/list をご覧ください。
youtube_get_video_details
特定の動画の詳細(タイトル、説明など)を取得します
引数:
video_id(String) (必須):動画の ID
youtube_list_videos
ユーザーが管理する YouTube 動画を一覧表示します
引数:
channel_id(String) (必須):動画を一覧表示するチャンネルの IDmax_results(Number) (必須):返す動画の最大数
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。