🚀 集成 AI 搜索、RAG 和多服务整合(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,助力 AI 增强的开发工作流。源自 https://github.com/nguyenvanduocit/all-in-one-model-context-protocol
AIO-MCP 服务器
一个功能强大的模型上下文协议(MCP)服务器实现,集成了GitLab、Jira、Confluence、YouTube等服务。该服务器为开发工作流程提供AI驱动的搜索功能和各种实用工具。
先决条件
- Go 1.23.2或更高版本
- 所需服务的各种API密钥和令牌
安装
通过Smithery安装
要通过 Smithery 自动安装AIO-MCP服务器以用于Claude Desktop(将通过交互式CLI设置引导您):
bash
npx -y @smithery/cli install @athapong/aio-mcp --client claude
注意:Smithery将提示您输入所需的配置值,并自动处理环境设置
通过Go安装
要使用go install
命令安装到Go bin路径,需要确保正确配置了Go环境变量。以下是操作方法:
-
首先,确保您有一个正确设置的
GOPATH
环境变量,默认情况下,在类Unix系统上是$HOME/go
,在Windows上是%USERPROFILE%\go
。 -
go install
命令默认将二进制文件放置在$GOPATH/bin
目录中。确保此目录在系统的PATH
环境变量中。
以下是不同操作系统上的设置方法:
Linux/macOS:
bash
# 将这些行添加到您的 ~/.bashrc, ~/.zshrc 或等效的shell配置文件中
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
添加这些行后,重新加载您的shell配置:
bash
source ~/.bashrc # 或 ~/.zshrc
Windows (PowerShell):
powershell
# 设置环境变量
[Environment]::SetEnvironmentVariable("GOPATH", "$env:USERPROFILE\go", "User")
[Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$env:USERPROFILE\go\bin", "User")
Windows (命令提示符):
cmd
setx GOPATH "%USERPROFILE%\go"
setx PATH "%PATH%;%USERPROFILE%\go\bin"
设置这些变量后,可以通过以下方式验证它们是否正常工作:
bash
go env GOPATH
echo $PATH # 在Unix/Linux/macOS上
echo %PATH% # 在Windows CMD上
$env:PATH # 在Windows PowerShell上
现在当您运行go install
时,二进制文件将被安装到您的$GOPATH/bin
目录中,该目录已在您的PATH中,因此您可以从任何地方运行它们。
最后,安装服务器:
bash
go install github.com/athapong/aio-mcp@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=
OPENAI_EMBEDDING_MODEL=
DEEPSEEK_API_KEY=
QDRANT_PORT=
GOOGLE_TOKEN_FILE=
GOOGLE_CREDENTIALS_FILE=
QDRANT_API_KEY=
USE_OLLAMA_DEEPSEEK=
- 配置您的claude配置:
json{claude_desktop_config.json}
{
"mcpServers": {
"aio-mcp": {
"command": "aio-mcp",
"args": ["-env", "/path/to/.env"],
}
}
}
或者覆盖环境变量为
json
{
"mcpServers": {
"aio-mcp": {
"command": "aio-mcp",
"env": {
"ENABLE_TOOLS": "",
"OPENAI_BASE_URL": "",
"GOOGLE_AI_API_KEY": "",
"GITLAB_TOKEN": "",
"GITLAB_HOST": "",
"QDRANT_HOST": "",
"QDRANT_API_KEY": "",
"PROXY_URL": "",
"OPENAI_API_KEY": "",
"GOOGLE_TOKEN_FILE": "",
"GOOGLE_CREDENTIALS_FILE": "",
"ATLASSIAN_TOKEN": "",
"BRAVE_API_KEY": "",
"QDRANT_PORT": "",
"ATLASSIAN_HOST": "",
"ATLASSIAN_EMAIL": "",
"USE_OPENROUTER": "", // 如果想使用openrouter进行推理,则设置为"true",默认为false
"DEEPSEEK_API_KEY": "", // 如果想使用deepseek进行推理,请指定deepseek api key
"OPENROUTER_API_KEY": "", // 如果想使用openrouter进行推理,请指定openrouter api key
"DEEPSEEK_API_BASE": "", // 如果想使用deepseek进行推理,请指定deepseek api key
"USE_OLLAMA_DEEPSEEK": "", // 如果想使用本地ollama与deepseek,默认为false
"OLLAMA_URL": "" // 默认为http://localhost:11434
}
}
}
}
启用工具
在环境变量中有一个隐藏变量ENABLE_TOOLS
。这是一个逗号分隔的工具组列表,用于启用。如果未设置,所有工具都将启用。留空以启用所有工具。
以下是工具组列表:
gemini
: Gemini驱动的搜索fetch
: 获取工具brave_search
: Brave搜索工具google_maps
: Google Maps工具confluence
: Confluence工具youtube
: YouTube工具jira
: Jira工具gitlab
: GitLab工具script
: 脚本工具rag
: RAG工具deepseek
: Deepseek AI工具,包括推理和高级搜索,如果'USE_OLLAMA_DEEPSEEK'设置为true,默认ollama端点为http://localhost:11434,模型为deepseek-r1:8b
可用工具
calendar_create_event
在Google日历中创建新事件
参数:
summary
(字符串) (必填): 事件标题description
(字符串): 事件描述start_time
(字符串) (必填): 事件开始时间,格式为RFC3339(例如,2023-12-25T09:00:00Z)end_time
(字符串) (必填): 事件结束时间,格式为RFC3339attendees
(字符串): 参会者电子邮件地址的逗号分隔列表
calendar_list_events
列出即将到来的Google日历事件
参数:
time_min
(字符串): 搜索开始时间,格式为RFC3339(默认:现在)time_max
(字符串): 搜索结束时间,格式为RFC3339(默认:从现在起一周内)max_results
(数字): 返回的最大事件数(默认:10)
calendar_update_event
更新现有的Google日历事件
参数:
event_id
(字符串) (必填): 要更新的事件IDsummary
(字符串): 新的事件标题description
(字符串): 新的事件描述start_time
(字符串): 新的事件开始时间,格式为RFC3339end_time
(字符串): 新的事件结束时间,格式为RFC3339attendees
(字符串): 新参会者电子邮件地址的逗号分隔列表
calendar_respond_to_event
响应Google日历中的事件邀请
参数:
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
(字符串): 乐观锁定的版本号(可选)
confluence_compare_versions
比较两个版本的Confluence页面
参数:
page_id
(字符串) (必填): Confluence页面IDsource_version
(字符串) (必填): 源版本号target_version
(字符串) (必填): 目标版本号
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状态(打开/关闭/合并)
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): 流水线状态(运行中/挂起/成功/失败/取消/跳过/全部)
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
(字符串): 合并请求描述
gitlab_clone_repo
克隆或更新GitLab仓库到本地
参数:
project_path
(字符串) (必填): 项目/仓库路径ref
(字符串): 分支名称或标签(可选,默认为项目的默认分支)
gmail_search
使用Gmail的搜索语法在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查询语言)搜索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
(字符串) (必填): 纯文本有效载荷model
(字符串): 要使用的嵌入模型(默认:text-embedding-3-large)
RAG_memory_index_file
将本地文件索引到内存中
参数:
collection
(字符串) (必填): 内存集合名称filePath
(字符串) (必填): 要索引的本地文件路径
RAG_memory_create_collection
在内存中创建新的向量集合
参数:
collection
(字符串) (必填): 内存集合名称model
(字符串): 要使用的嵌入模型(默认:text-embedding-3-large)
RAG_memory_delete_collection
删除内存中的向量集合
参数:
collection
(字符串) (必填): 内存集合名称
RAG_memory_list_collections
列出内存中的所有向量集合
RAG_memory_search
根据查询搜索集合中的内存
参数:
collection
(字符串) (必填): 内存集合名称query
(字符串) (必填): 搜索查询,应为关键字model
(字符串): 要使用的嵌入模型(默认:text-embedding-3-large)
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
- 您可以质疑或修订之前的思维
- 即使在看似结束之后,也可以添加更多思维
- 可以表达不确定性并探索替代方法
- 并非每个思维都需要线性构建 - 您可以分支或回溯
- 生成解决方案假设
- 根据思维链步骤验证假设
- 重复该过程直到满意
- 提供正确的答案
参数解释:
- thought: 当前思考步骤,可以包括:
- 常规分析步骤
- 对之前思维的修订
- 对之前决策的问题
- 关于需要更多分析的发现
- 方法的变化
- 假设生成
- 假设验证
- next_thought_needed: 如果即使在看似结束时还需要更多思维步骤,则为True
- thought_number: 序列中的当前编号(如果需要,可以超出初始总数)
- total_thoughts: 当前估计所需的思维数量(可以向上或向下调整)
- is_revision: 一个布尔值,指示此思维是否修订了之前的思维
- revises_thought: 如果is_revision为true,则正在重新考虑哪个思维编号
- branch_from_thought: 如果分支,则哪个思维编号是分支点
- branch_id: 当前分支的标识符(如果有)
- needs_more_thoughts: 如果到达末尾但意识到需要更多思维
您应该:
- 从对所需思维的初步估计开始,但准备好进行调整
- 随时质疑或修订之前的思维
- 不要犹豫,在“结尾”时甚至可以添加更多思维
- 当存在不确定性时表达出来
- 标记修订以前思维或进入新路径的思维
- 忽略与当前步骤无关的信息
- 在适当的时候生成解决方案假设
- 根据思维链步骤验证假设
- 重复该过程直到对解决方案满意
- 提供一个最终的理想正确的答案
- 只有在真正完成并达到满意的答案时,才将next_thought_needed设置为false`
参数:
thought
(字符串) (必填): 您当前的思考步骤nextThoughtNeeded
(布尔值) (必填): 是否需要另一个思维步骤thoughtNumber
(数字) (必填): 当前思维编号totalThoughts
(数字) (必填): 估计所需的总思维数量isRevision
(布尔值): 此思维是否修订了之前的思维revisesThought
(数字): 正在重新考虑的思维编号branchFromThought
(数字): 分支点思维编号branchId
(字符串): 分支标识符needsMoreThoughts
(布尔值): 是否需要更多思维result
(字符串): 此思维的最终结果或结论summary
(字符串): 思维要点的简要总结
sequentialthinking_history
检索当前思维过程的思维历史
参数:
branchId
(字符串): 可选的分支ID以获取历史记录
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
(数字) (必填): 返回的最大视频数量

3d Printer Server
连接 MCP 到主要的 3D 打印机 API(Orca、Bambu、OctoPrint、Klipper、Duet、Repetier、Prusa、Creality)。控制打印、监控状态,并执行高级 STL 操作,如缩放、旋转、截面编辑和底座扩展。包括切片和可视化。
Abap Adt
一个服务器,它将模型上下文协议(MCP)与SAP ABAP系统连接起来,使像Cline这样的工具能够检索ABAP源代码、表结构和其他开发工件。
Ableton Live Server
MCP 服务器实现,用于控制 Ableton Live OSC
Ableton Mcp
通过支持双向通信系统来控制Ableton Live音乐制作软件,该系统支持音轨创建、MIDI编辑、播放控制、乐器加载和库浏览,适用于音乐创作和声音设计工作流程。