一个强大的模型上下文协议(MCP)服务器实现,集成了GitLab、Jira、Confluence、YouTube等服务。此服务器提供了AI驱动的搜索功能以及各种开发工作流工具。
要通过Smithery自动安装AIO-MCP服务器(将引导您完成交互式CLI设置):
npx -y @smithery/cli install @athapong/aio-mcp --client claude
注意:Smithery会提示您输入所需的配置值,并自动处理环境设置
要设置go install命令以安装到Go的bin路径中,需要确保您的Go环境变量正确配置。以下是操作步骤:
首先,确保您的GOPATH环境变量已正确设置,默认情况下在类Unix系统上是$HOME/go,在Windows上是%USERPROFILE%\go。
go install命令默认将二进制文件放置在$GOPATH/bin目录下。确保该目录已在系统的PATH环境变量中。
以下是不同操作系统上的设置方法:
# 将这些添加到您的~/.bashrc、~/.zshrc或等效shell配置文件中
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
添加这些行后,重新加载您的shell配置:
source ~/.bashrc # 或~/.zshrc
# 设置环境变量
[Environment]::SetEnvironmentVariable("GOPATH", "$env:USERPROFILE\go", "User")
[Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$env:USERPROFILE\go\bin", "User")
setx GOPATH "%USERPROFILE%\go"
setx PATH "%PATH%;%USERPROFILE%\go\bin"
设置这些变量后,可以通过以下方式验证它们是否正常工作:
go env GOPATH
echo $PATH # 在Unix/Linux/macOS上
echo %PATH% # 在Windows CMD上
$env:PATH # 在Windows PowerShell上
现在,当您运行go install时,二进制文件将被安装到您的$GOPATH/bin目录中,该目录已在PATH中,因此您可以从任何地方运行它们。
最后,安装服务器:
go install github.com/athapong/aio-mcp@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=
OPENAI_EMBEDDING_MODEL=
DEEPSEEK_API_KEY=
QDRANT_PORT=
GOOGLE_TOKEN_FILE=
GOOGLE_CREDENTIALS_FILE=
QDRANT_API_KEY=
USE_OLLAMA_DEEPSEEK=
ENABLE_SSE=
SSE_ADDR=
SSE_BASE_PATH=
{
"mcpServers": {
"aio-mcp": {
"command": "aio-mcp",
"args": ["-env", "/path/to/.env", "-sse", "-sse-addr", ":8080", "-sse-base-path", "/mcp"],
}
}
}
{
"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来帮助AI进行`tool_use_plan`推理,请设置为"true",默认为false
"DEEPSEEK_API_KEY": "", // 如果您想使用deepseek来帮助AI进行`tool_use_plan`推理,请指定deepseek API密钥
"OPENROUTER_API_KEY": "", // 如果您想使用openrouter来帮助AI进行`tool_use_plan`推理,请指定openrouter API密钥
"DEEPSEEK_API_BASE": "", // 如果您想使用deepseek来帮助AI进行`tool_use_plan`推理,请指定deepseek API基础URL
"USE_OLLAMA_DEEPSEEK": "", // 如果您想使用本地ollama的deepseek,请设置为"true",默认为false
"OLLAMA_URL": "" // 默认为http://localhost:11434
}
}
}
}
AIO-MCP服务器支持两种操作模式:
标准I/O模式(默认):服务器通过标准输入/输出进行通信,这是Claude桌面和其他MCP客户端使用的默认模式。
SSE(服务器发送事件)模式:服务器作为HTTP服务器运行,支持实时通信的服务器发送事件。这对于基于Web的客户端或需要通过网络访问MCP服务器的情况非常有用。
您可以通过以下两种方式之一启用SSE模式:
命令行标志:
aio-mcp -sse -sse-addr ":8080" -sse-base-path "/mcp"
环境变量(在您的.env文件中):
ENABLE_SSE=true
SSE_ADDR=:8080
SSE_BASE_PATH=/mcp
当启用SSE模式时,服务器将在指定地址启动一个HTTP服务器。服务器提供两个端点:
{SSE_BASE_PATH}/sse(默认:/mcp/sse){SSE_BASE_PATH}/message(默认:/mcp/message)客户端可以连接到SSE端点接收服务器事件,并向消息端点发送消息。
有一个隐藏的环境变量ENABLE_TOOLS。它是一个逗号分隔的工具组列表。如果未设置,则所有工具都将启用。留空以启用所有工具。
以下是工具组列表:
gemini: Gemini驱动的搜索fetch: 获取工具brave_search: Brave搜索工具google_maps: Google地图工具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在Google日历中创建新事件
参数:
summary (字符串) (必需):事件标题description (字符串):事件描述start_time (字符串) (必需):事件开始时间,RFC3339格式(例如,2023-12-25T09:00:00Z)end_time (字符串) (必需):事件结束时间,RFC3339格式attendees (字符串):逗号分隔的与会者电子邮件地址列表列出Google日历中的即将发生的事件
参数:
time_min (字符串):搜索的开始时间,RFC3339格式(默认:现在)time_max (字符串):搜索的结束时间,RFC3339格式(默认:一周后)max_results (数字):返回的最大事件数(默认:10)更新Google日历中的现有事件
参数:
event_id (字符串) (必需):要更新的事件IDsummary (字符串):新的事件标题description (字符串):新的事件描述start_time (字符串):新的事件开始时间,RFC3339格式end_time (字符串):新的事件结束时间,RFC3339格式attendees (字符串):新的与会者电子邮件地址列表响应Google日历中的事件邀请
参数:
event_id (字符串) (必需):要响应的事件IDresponse (字符串) (必需):您的响应(接受、拒绝或待定)搜索Confluence
参数:
query (字符串) (必需):Atlassian Confluence查询语言(CQL)获取Confluence页面内容
参数:
page_id (字符串) (必需):Confluence页面ID创建新的Confluence页面
参数:
space_key (字符串) (必需):页面将创建的空间键title (字符串) (必需):页面标题content (字符串) (必需):页面内容,存储格式(XHTML)parent_id (字符串):父页面ID(可选)更新现有的Confluence页面
参数:
page_id (字符串) (必需):要更新的页面IDtitle (字符串):新的页面标题(可选)content (字符串):新的页面内容,存储格式(XHTML)version_number (字符串):乐观锁定的版本号(可选)比较Confluence页面的两个版本
参数:
page_id (字符串) (必需):Confluence页面IDsource_version (字符串) (必需):源版本号target_version (字符串) (必需):目标版本号使用Deepseek的AI能力进行多步问题解决、关键分析和战略决策支持的高级推理引擎
参数:
question (字符串) (必需):需要深入分析和推理的结构化查询或问题陈述context (字符串) (必需):定义查询在MCP生态系统中的操作上下文和目的knowledge (字符串):提供相关的聊天历史记录、知识库条目和结构化数据上下文,用于MCP感知推理从给定的HTTP/HTTPS URL获取内容。此工具允许您从网页、API或任何可访问的HTTP端点检索文本内容。返回原始文本内容。
参数:
url (字符串) (必需):要获取内容的完整HTTP/HTTPS URL(例如,https://example.com)列出所有可用的Google Chat空间/房间
向Google Chat空间或直接消息发送消息
参数:
space_name (字符串) (必需):要发送消息的空间名称message (字符串) (必需):要发送的文本消息使用Google AI搜索网络。最佳工具用于更新实时信息
参数:
question (字符串) (必需):要询问的问题。应该是问题context (字符串) (必需):问题的上下文/目的,有助于Gemini更好地理解问题列出GitLab项目
参数:
group_id (字符串) (必需):gitlab组IDsearch (字符串):可以提供多个术语,用转义空格(+或%20)分隔,并且将被AND在一起。例如:one+two将匹配子串one和two(顺序无关紧要)。获取GitLab项目详细信息
参数:
project_path (字符串) (必需):项目/仓库路径列出合并请求
参数:
project_path (字符串) (必需):项目/仓库路径state (字符串) (默认:all):MR状态(opened/closed/merged)获取合并请求详细信息
参数:
project_path (字符串) (必需):项目/仓库路径mr_iid (字符串) (必需):合并请求IID在合并请求上创建注释
参数:
project_path (字符串) (必需):项目/仓库路径mr_iid (字符串) (必需):合并请求IIDcomment (字符串) (必需):注释文本从GitLab仓库获取文件内容
参数:
project_path (字符串) (必需):项目/仓库路径file_path (字符串) (必需):仓库中的文件路径ref (字符串) (必需):分支名、标签或提交SHA列出GitLab项目的流水线
参数:
project_path (字符串) (必需):项目/仓库路径status (字符串) (默认:all):流水线状态(running/pending/success/failed/canceled/skipped/all)在日期范围内列出GitLab项目中的提交
参数:
project_path (字符串) (必需):项目/仓库路径since (字符串) (必需):起始日期(YYYY-MM-DD)until (字符串):结束日期(YYYY-MM-DD)。如果没有提供,默认为当前日期ref (字符串) (必需):分支名、标签或提交SHA获取提交的详细信息
参数:
project_path (字符串) (必需):项目/仓库路径commit_sha (字符串) (必需):提交SHA在日期范围内列出GitLab用户的事件
参数:
username (字符串) (必需):GitLab用户名since (字符串) (必需):起始日期(YYYY-MM-DD)until (字符串):结束日期(YYYY-MM-DD)。如果没有提供,默认为当前日期列出GitLab组中的所有用户
参数:
group_id (字符串) (必需):GitLab组ID创建新的合并请求
参数:
project_path (字符串) (必需):项目/仓库路径source_branch (字符串) (必需):源分支名target_branch (字符串) (必需):目标分支名title (字符串) (必需):合并请求标题description (字符串):合并请求描述本地克隆或更新GitLab仓库
参数:
project_path (字符串) (必需):项目/仓库路径ref (字符串):分支名或标签(可选,默认为项目的默认分支)使用Gmail搜索语法在Gmail中搜索邮件
参数:
query (字符串) (必需):Gmail搜索查询。遵循Gmail的搜索语法根据消息ID将特定邮件移动到Gmail的垃圾邮件文件夹
参数:
message_ids (字符串) (必需):要移动到垃圾邮件的消息ID的逗号分隔列表创建具有指定标准和操作的Gmail过滤器
参数:
from (字符串):过滤来自此发件人的邮件to (字符串):过滤发送至此收件人的邮件subject (字符串):过滤具有此主题的邮件query (字符串):附加搜索查询标准add_label (布尔值):将标签添加到匹配的消息label_name (字符串):要添加的标签名称(如果add_label为true则需要)mark_important (布尔值):将匹配的消息标记为重要mark_read (布尔值):将匹配的消息标记为已读archive (布尔值):归档匹配的消息列出帐户中的所有Gmail过滤器
列出帐户中的所有Gmail标签
通过其ID删除Gmail过滤器
参数:
filter_id (字符串) (必需):要删除的过滤器ID通过其ID删除Gmail标签
参数:
label_id (字符串) (必需):要删除的标签ID检索特定Jira问题的详细信息,包括其状态、分配人、描述、子任务和可用转换
参数:
issue_key (字符串) (必需):Jira问题的唯一标识符(例如,KP-2,PROJ-123)使用JQL(Jira查询语言)搜索Jira问题。返回匹配问题的关键细节,如摘要、状态、分配人和优先级
参数:
jql (字符串) (必需):JQL查询字符串(例如,'project = KP AND status = "In Progress"')列出特定Jira板的所有活动和未来冲刺,包括冲刺ID、名称、状态和日期
参数:
board_id (字符串) (必需):Jira板的数字ID(可以在板URL中找到)创建具有指定详细信息的新Jira问题。返回创建的问题的关键、ID和URL
参数:
project_key (字符串