
All In One Model Context Protocol
🚀 集成 AI 搜索、RAG 和多服务集成(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,用于增强开发工作流程
项目已迁移
该项目已被拆分并迁移到单独的仓库中。
- Google Kit:用于 Gmail、Google Calendar、Google Chat 的工具
- RAG Kit:用于 RAG、Memory 的工具
- Dev Kit:用于开发者的工具,如 Jira、Confluence、GitLab、GitHub 等
- Fetch Kit:用于抓取、爬取等的工具
- Research Kit:用于研究、学术、推理等的工具
MyMCP 服务器
一个强大的模型上下文协议 (MCP) 服务器实现,集成了 GitLab、Jira、Confluence、YouTube 等服务。该服务器提供 AI 驱动的搜索功能和各种开发工作流工具。
社区
如需社区支持、讨论和更新,请访问我们的论坛 community.aiocean.io。
前提条件
- Go 1.23.2 或更高版本
- 您要使用的各种服务的 API 密钥和令牌
安装
通过 Smithery 安装
通过 Smithery 自动安装 MyMCP 服务器(将引导您完成交互式 CLI 设置):
bash
npx -y @smithery/cli install @nguyenvanduocit/all-in-one-model-context-protocol --client claude
注意:Smithery 将交互式提示您所需的配置值,并自动处理环境设置
通过 Go 安装
- 安装服务器:
bash
go install github.com/nguyenvanduocit/all-in-one-model-context-protocol@latest
- 需要手动设置 - 创建一个包含您的配置的
.env
文件:
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 配置文件:
json{claude_desktop_config.json}
{
"mcpServers": {
"my_mcp_server": {
"command": "all-in-one-model-context-protocol",
"args": ["-env", "/path/to/.env"],
}
}
}
密钥
GOOGLE_TOKEN_FILE 用于 Google AI,如 Gemini、Google Search、Google Calendar 等。
GOOGLE_CREDENTIALS_FILE 是高级功能的服务帐户,如 Google Chat。您需要在 Google Cloud Console 中创建项目并创建服务帐户。然后还需要为它创建 Google 云聊天机器人。请让任何 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
(字符串) (必需):事件标题description
(字符串):事件描述start_time
(字符串) (必需):事件开始时间,格式为 RFC3339(例如,2023-12-25T09:00:00Z)end_time
(字符串) (必需):事件结束时间,格式为 RFC3339attendees
(字符串):逗号分隔的参会者电子邮件地址列表
calendar_list_events
列出 Google Calendar 中即将发生的事件
参数:
time_min
(字符串):搜索的开始时间,格式为 RFC3339(默认:现在)time_max
(字符串):搜索的结束时间,格式为 RFC3339(默认:从现在起一周后)max_results
(数字):返回的最大事件数量(默认:10)
calendar_update_event
更新 Google Calendar 中现有的事件
参数:
event_id
(字符串) (必需):要更新的事件 IDsummary
(字符串):事件的新标题description
(字符串):事件的新描述start_time
(字符串):事件的新开始时间,格式为 RFC3339end_time
(字符串):事件的新结束时间,格式为 RFC3339attendees
(字符串):逗号分隔的新参会者电子邮件地址列表
calendar_respond_to_event
响应 Google Calendar 中的事件邀请
参数:
event_id
(字符串) (必需):要响应的事件 IDresponse
(字符串) (必需):您的响应(接受、拒绝或暂定)
confluence_search
搜索 Confluence
参数:
query
(字符串) (必需):Atlassian Confluence 查询语言 (CQL)
confluence_get_page
获取 Confluence 页面内容
参数:
page_id
(字符串) (必需):Confluence 页面 ID
confluence_create_page
创建新的 Confluence 页面
参数:
space_key
(字符串) (必需):页面将被创建的空间的键title
(字符串) (必需):页面标题content
(字符串) (必需):页面内容,存储格式 (XHTML)parent_id
(字符串):父页面的 ID(可选)
confluence_update_page
更新现有的 Confluence 页面
参数:
page_id
(字符串) (必需):要更新的页面 IDtitle
(字符串):页面的新标题(可选)content
(字符串):页面的新内容,存储格式 (XHTML)version_number
(字符串):用于乐观锁定的版本号(可选)
deepseek_reasoning
使用 Deepseek 的 AI 能力进行多步骤问题解决、批判性分析和战略决策支持的高级推理引擎
参数:
question
(字符串) (必需):需要深入分析和推理的结构化查询或问题陈述context
(字符串) (必需):定义查询在 MCP 生态系统中的操作背景和目的knowledge
(字符串):提供相关的聊天历史记录、知识库条目和结构化数据背景,以便 MCP 意识到推理
get_web_content
从给定的 HTTP/HTTPS URL 获取内容。此工具允许您从网页、API 或任何可访问的 HTTP 端点检索文本内容。返回原始内容作为文本。
参数:
url
(字符串) (必需):要获取内容的完整 HTTP/HTTPS URL(例如,https://example.com)
gchat_list_spaces
列出所有可用的 Google Chat 空间/房间
gchat_send_message
向 Google Chat 空间或直接消息发送消息
参数:
space_name
(字符串) (必需):要发送消息的空间名称message
(字符串) (必需):要发送的文本消息
ai_web_search
使用 Google AI Search 搜索网络。最佳工具用于实时信息更新
参数:
question
(字符串) (必需):要问的问题。应该是一个问题context
(字符串) (必需):问题的上下文/目的,有助于 Gemini 更好地理解问题
gitlab_list_projects
列出 GitLab 项目
参数:
group_id
(字符串) (必需):gitlab 组 IDsearch
(字符串):可以提供多个术语,用 + 或 %20 分隔,并且会按 AND 连接在一起。例如:one+two 将匹配子字符串 one 和 two(任意顺序)。
gitlab_get_project
获取 GitLab 项目详细信息
参数:
project_path
(字符串) (必需):项目/仓库路径
gitlab_list_mrs
列出合并请求
参数:
project_path
(字符串) (必需):项目/仓库路径state
(字符串) (默认:all):MR 状态(opened/closed/merged)
gitlab_get_mr_details
获取合并请求详细信息
参数:
project_path
(字符串) (必需):项目/仓库路径mr_iid
(字符串) (必需):合并请求 IID
gitlab_create_MR_note
在合并请求上创建注释
参数:
project_path
(字符串) (必需):项目/仓库路径mr_iid
(字符串) (必需):合并请求 IIDcomment
(字符串) (必需):注释文本
gitlab_get_file_content
从 GitLab 仓库获取文件内容
参数:
project_path
(字符串) (必需):项目/仓库路径file_path
(字符串) (必需):仓库中文件的路径ref
(字符串) (必需):分支名、标签或提交 SHA
gitlab_list_pipelines
列出 GitLab 项目的流水线
参数:
project_path
(字符串) (必需):项目/仓库路径status
(字符串) (默认:all):流水线状态(running/pending/success/failed/canceled/skipped/all)
gitlab_list_commits
列出 GitLab 项目在指定日期范围内的提交
参数:
project_path
(字符串) (必需):项目/仓库路径since
(字符串) (必需):开始日期(YYYY-MM-DD)until
(字符串):结束日期(YYYY-MM-DD)。如果未提供,默认为当前日期ref
(字符串) (必需):分支名、标签或提交 SHA
gitlab_get_commit_details
获取提交的详细信息
参数:
project_path
(字符串) (必需):项目/仓库路径commit_sha
(字符串) (必需):提交 SHA
gitlab_list_user_events
列出 GitLab 用户在指定日期范围内的事件
参数:
username
(字符串) (必需):GitLab 用户名since
(字符串) (必需):开始日期(YYYY-MM-DD)until
(字符串):结束日期(YYYY-MM-DD)。如果未提供,默认为当前日期
gitlab_list_group_users
列出 GitLab 组中的所有用户
参数:
group_id
(字符串) (必需):GitLab 组 ID
gitlab_create_mr
创建新的合并请求
参数:
project_path
(字符串) (必需):项目/仓库路径source_branch
(字符串) (必需):源分支名称target_branch
(字符串) (必需):目标分支名称title
(字符串) (必需):合并请求标题description
(字符串):合并请求描述
gmail_search
使用 Gmail 的搜索语法搜索邮件
参数:
query
(字符串) (必需):Gmail 搜索查询。遵循 Gmail 的搜索语法
gmail_move_to_spam
通过消息 ID 将特定邮件移动到垃圾邮件文件夹
参数:
message_ids
(字符串) (必需):要移动到垃圾邮件的逗号分隔的消息 ID 列表
gmail_create_filter
创建具有指定条件和操作的 Gmail 过滤器
参数:
from
(字符串):过滤来自此发件人的邮件to
(字符串):过滤发送给此收件人的邮件subject
(字符串):过滤主题为该主题的邮件query
(字符串):附加的搜索查询条件add_label
(布尔值):将标签添加到匹配的消息label_name
(字符串):要添加的标签名称(如果 add_label 为 true,则必填)mark_important
(布尔值):将匹配的消息标记为重要mark_read
(布尔值):将匹配的消息标记为已读archive
(布尔值):存档匹配的消息
gmail_list_filters
列出账户中的所有 Gmail 过滤器
gmail_list_labels
列出账户中的所有 Gmail 标签
gmail_delete_filter
通过其 ID 删除 Gmail 过滤器
参数:
filter_id
(字符串) (必需):要删除的过滤器的 ID
gmail_delete_label
通过其 ID 删除 Gmail 标签
参数:
label_id
(字符串) (必需):要删除的标签的 ID
jira_get_issue
检索特定 Jira 问题的详细信息,包括其状态、分配人、描述、子任务和可用的转换
参数:
issue_key
(字符串) (必需):Jira 问题的唯一标识符(例如,KP-2, PROJ-123)
jira_search_issue
使用 JQL (Jira Query Language) 搜索 Jira 问题。返回匹配问题的关键详细信息,如摘要、状态、分配人和优先级
参数:
jql
(字符串) (必需):JQL 查询字符串(例如,'project = KP AND status = "In Progress"')
jira_list_sprints
列出特定 Jira 看板的所有活动和未来冲刺,包括冲刺 ID、名称、状态和日期
参数:
board_id
(字符串) (必需):Jira 看板的数字 ID(可以在看板 URL 中找到)
jira_create_issue
创建具有指定详细信息的新 Jira 问题。返回创建问题的密钥、ID 和 URL
参数:
project_key
(字符串) (必需):将在其中创建问题的项目标识符(例如,KP, PROJ)summary
(字符串) (必需):问题的简短标题或标题description
(字符串) (必需):问题的详细说明issue_type
(字符串) (必需):要创建的问题类型(常见类型:Bug, Task, Story, Epic)
jira_update_issue
修改现有 Jira 问题的详细信息。支持部分更新 - 仅更改指定字段
参数:
issue_key
(字符串) (必需):要更新的问题的唯一标识符(例如,KP-2)summary
(字符串):问题的新标题(可选)description
(字符串):问题的新描述(可选)
jira_list_statuses
检索特定 Jira 项目的所有可用问题状态 ID 及其名称
参数:
project_key
(字符串) (必需):项目标识符(例如,KP, PROJ)
jira_transition_issue
使用有效转换 ID 使问题通过其工作流程转换。从 jira_get_issue 获取可用转换
参数:
issue_key
(字符串) (必需):要转换的问题(例如,KP-123)transition_id
(字符串) (必需):来自可用转换列表的转换 IDcomment
(字符串):随转换添加的可选注释
RAG_memory_index_content
将内容索引到内存中,可以插入或更新
参数:
collection
(字符串) (必需):内存集合名称filePath
(字符串) (必需):内容文件路径payload
(字符串) (必需):纯文本负载
RAG_memory_index_file
将本地文件索引到内存中
参数:
collection
(字符串) (必需):内存集合名称filePath
(字符串) (必需):要索引的本地文件路径
RAG_memory_create_collection
在内存中创建新的向量集合
参数:
collection
(字符串) (必需):内存集合名称
RAG_memory_delete_collection
删除内存中的向量集合
参数:
collection
(字符串) (必需):内存集合名称
RAG_memory_list_collections
列出内存中的所有向量集合
RAG_memory_search
基于查询在集合中搜索内存
参数:
collection
(字符串) (必需):内存集合名称query
(字符串) (必需):搜索查询,应为关键字
RAG_memory_delete_index_by_filepath
通过 filePath 删除向量索引
参数:
collection
(字符串) (必需):内存集合名称filePath
(字符串) (必需):要删除的本地文件路径
execute_comand_line_script
在用户的系统上安全执行命令行脚本,具有安全限制。支持沙盒执行、超时保护和输出捕获。支持跨平台脚本编写,并自动检测环境。
参数:
content
(字符串) (必需):interpreter
(字符串) (默认:/bin/sh):解释器二进制文件路径(例如 /bin/sh, /bin/bash, /usr/bin/python, cmd.exe)。针对允许列表进行验证以确保安全性working_dir
(字符串):执行目录路径(默认:用户主目录)。验证以防止未经授权访问系统位置
web_search
使用 Brave Search API 搜索网络
参数:
query
(字符串) (必需):要搜索的查询(最大 400 个字符,50 个单词)count
(数字) (默认:5):结果数量(1-20,默认 5)country
(字符串) (默认:ALL):国家代码
sequentialthinking
`用于动态和反思性问题解决的详细工具。
此工具通过灵活的思维过程帮助分析问题,该过程可以适应和发展。
每个想法都可以建立、质疑或修改先前的见解,随着理解的加深。
何时使用此工具:
- 将复杂问题分解成步骤
- 具有修订空间的规划和设计
- 可能需要调整方向的分析
- 最初可能不清楚全部范围的问题
- 需要多步骤解决方案的问题
- 需要在多个步骤中保持上下文的任务
- 需要过滤掉无关信息的情况
主要功能:
- 您可以根据进展调整 total_thoughts 的增减
- 您可以质疑或修改先前的想法
- 即使达到了看似终点的地方,也可以添加更多想法
- 您可以表达不确定性并探索替代方法
- 并非每个想法都需要线性构建 - 您可以分支或回溯
- 生成解决方案假设
- 基于 Chain of Thought 步骤验证假设
- 重复此过程直到满意
- 提供正确答案
参数说明:
- thought:您的当前思考步骤,可以包括:
- 常规分析步骤
- 修改先前的想法
- 对先前决定的质疑
- 关于需要更多分析的认识
- 方法的改变
- 假设生成
- 假设验证
- nextThoughtNeeded:如果需要更多思考,即使是在看似终点的地方
- thoughtNumber:当前序列编号(如果需要,可以超出初始总数)
- totalThoughts:当前估计的所需想法数量(可以增减)
- isRevision:布尔值,表示此想法是否修改了先前的思考
- revisesThought:如果 isRevision 为真,正在重新考虑哪个想法编号
- branchFromThought:如果分支,哪个想法编号是分支点
- branchId:当前分支的标识符(如果有)
- needsMoreThoughts:如果到达终点但意识到需要更多想法
您应该:
- 从对所需想法的初步估计开始,但准备好调整
- 不妨质疑或修改先前的想法
- 如果需要,即使在“结尾”处也不要犹豫添加更多想法
- 在存在不确定性时表达出来
- 标记修改先前想法或分支到新路径的想法
- 忽略与当前步骤无关的信息
- 在适当的时候生成解决方案假设
- 基于 Chain of Thought 步骤验证假设
- 重复此过程直到对解决方案满意
- 提供单一的、理想正确的答案作为最终输出
- 仅在真正完成并且达到满意的答案时将 nextThoughtNeeded 设置为 false`
参数:
thought
(字符串) (必需):您的当前思考步骤nextThoughtNeeded
(布尔值) (必需):是否需要另一个思考步骤thoughtNumber
(数字) (必需):当前思考编号totalThoughts
(数字) (必需):估计的总思考数量isRevision
(布尔值):是否修改了先前的思考revisesThought
(数字):正在重新考虑哪个想法编号branchFromThought
(数字):分支点的想法编号branchId
(字符串):分支标识符needsMoreThoughts
(布尔值):是否需要更多思考
tool_manager
管理 MCP 工具 - 启用或禁用工具
参数:
action
(字符串) (必需):要执行的操作:list, enable, disabletool_name
(字符串):要启用/禁用的工具名称
tool_use_plan
创建激活工具的使用计划以解决问题
参数:
request
(字符串) (必需):需要制定计划的要求context
(字符串) (必需):与要求相关的上下文
youtube_transcript
获取 YouTube 视频字幕
参数:
video_id
(字符串) (必需):YouTube 视频 ID
youtube_update_video
在 YouTube 上更新视频的标题和描述
参数:
video_id
(字符串) (必需):要更新的视频 IDtitle
(字符串) (必需):视频的新标题description
(字符串) (必需):视频的新描述keywords
(字符串) (必需):视频的逗号分隔关键词列表category
(字符串) (必需):视频的类别 ID。更多信息请参见 https://developers.google.com/youtube/v3/docs/videoCategories/list。
youtube_get_video_details
获取特定视频的详细信息(标题、描述等)
参数:
video_id
(字符串) (必需):视频的 ID
youtube_list_videos
列出由用户管理的 YouTube 视频
参数:
channel_id
(字符串) (必需):要列出视频的频道 IDmax_results
(数字) (必需):要返回的最大视频数量