关于 THE PROJECT IS MOVED
该仓库已迁移,原为一个集成 GitLab、Jira、Confluence、YouTube 等服务的 MCP 服务。README 说明项目已拆分为多个独立仓库,本条目保留原有工具分组与配置信息。适合查看既有配置或迁移方向的用户。
主要功能
- 01按工具分组启用的 ENABLE_TOOLS 配置
- 02GitLab 与 Jira 相关工具
- 03Confluence 页面的搜索与编辑
- 04Google Calendar 与 Gmail 相关工具
适用场景
- 01查询与评论 GitLab 合并请求
- 02搜索与更新 Confluence 页面
- 03通过 JQL 检索 Jira 工单
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 GitLab、Jira、Confluence、Google 等服务的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
项目已迁移
项目已拆分并迁移到各个独立仓库。
- Google Kit:Gmail、Google Calendar、Google Chat 工具
- RAG Kit:RAG、Memory 工具
- Dev Kit:面向开发者的工具,包括 jira、confluence、gitlab、github 等
- Fetch Kit:抓取、爬取等工具
- Research Kit:研究、学术、推理等工具
MyMCP Server
一个功能强大的模型上下文协议(MCP)服务实现,集成了 GitLab、Jira、Confluence、YouTube 等服务。该服务提供 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 聊天机器人。可以让任意大模型帮你完成这些操作。
启用工具
环境变量中有一个隐藏变量 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 查询语言(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
在合并请求中创建备注
参数:
project_path(String)(必需):项目/仓库路径mr_iid(String)(必需):合并请求 IIDcomment(String)(必需):评论内容
gitlab_get_file_content
获取 GitLab 仓库中的文件内容
参数:
project_path(String)(必需):项目/仓库路径file_path(String)(必需):仓库中的文件路径ref(String)(必需):分支名称、标签或提交 SHA
gitlab_list_pipelines
列出 GitLab 项目的流水线
参数:
project_path(String)(必需):项目/仓库路径status(String)(默认值:all):流水线状态(running/pending/success/failed/canceled/skipped/all)
gitlab_list_commits
列出 GitLab 项目在指定日期范围内的提交
参数:
project_path(String)(必需):项目/仓库路径since(String)(必需):开始日期(YYYY-MM-DD)until(String):结束日期(YYYY-MM-DD)。如果未提供,默认为当前日期ref(String)(必需):分支名称、标签或提交 SHA
gitlab_get_commit_details
获取提交详情
参数:
project_path(String)(必需):项目/仓库路径commit_sha(String)(必需):提交 SHA
gitlab_list_user_events
列出 GitLab 用户在指定日期范围内的活动
参数:
username(String)(必需):GitLab 用户名since(String)(必需):开始日期(YYYY-MM-DD)until(String):结束日期(YYYY-MM-DD)。如果未提供,默认为当前日期
gitlab_list_group_users
列出 GitLab 群组中的所有用户
参数:
group_id(String)(必需):GitLab 群组 ID
gitlab_create_mr
创建新的合并请求
参数:
project_path(String)(必需):项目/仓库路径source_branch(String)(必需):源分支名称target_branch(String)(必需):目标分支名称title(String)(必需):合并请求标题description(String):合并请求描述
gmail_search
使用 Gmail 的搜索语法搜索电子邮件
参数:
query(String)(必需):Gmail 搜索查询。请遵循 Gmail 的搜索语法
gmail_move_to_spam
根据邮件 ID 将指定邮件移至 Gmail 垃圾邮件文件夹
参数:
message_ids(String)(必需):要移至垃圾邮件的邮件 ID 列表,以逗号分隔
gmail_create_filter
根据指定条件和操作创建 Gmail 过滤器
参数:
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 过滤器
参数:
filter_id(String)(必需):要删除的过滤器 ID
gmail_delete_label
根据 ID 删除 Gmail 标签
参数:
label_id(String)(必需):要删除的标签 ID
jira_get_issue
检索特定 Jira 问题的详细信息,包括其状态、经办人、描述、子任务和可用的状态转换
参数:
issue_key(String)(必需):Jira 问题的唯一标识符(例如,KP-2、PROJ-123)
jira_search_issue
使用 JQL(Jira 查询语言)搜索 Jira 问题。返回匹配问题的摘要、状态、经办人和优先级等关键信息
参数:
jql(String)(必需):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:如果已到达终点但意识到还需要更多思考,则为 true
你应该:
- 先估算所需的思考次数,但要准备好进行调整
- 可以质疑或修正先前的思考
- 如果需要,即使在“终点”也可以继续添加思考
- 在存在不确定性时表达出来
- 标记修正先前思考或分支到新路径的思考
- 忽略与当前步骤无关的信息
- 适当时生成解决方案假设
- 根据思维链步骤验证假设
- 重复这一过程,直到对解决方案满意为止
- 最终只提供一个尽可能正确的答案
- 只有在确实完成并得出满意答案时,才将 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。