小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
8
最近更新:1个月前

🚀 集成 AI 搜索、RAG 和多服务整合(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,助力 AI 增强的开发工作流。源自 https://github.com/nguyenvanduocit/all-in-one-model-context-protocol

AIO-MCP 服务器

smithery badge
一个功能强大的模型上下文协议(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环境变量。以下是操作方法:

  1. 首先,确保您有一个正确设置的GOPATH环境变量,默认情况下,在类Unix系统上是$HOME/go,在Windows上是%USERPROFILE%\go

  2. 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
  1. 手动设置 - 创建一个包含您配置的.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=
  1. 配置您的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 (字符串) (必填): 事件结束时间,格式为RFC3339
  • attendees (字符串): 参会者电子邮件地址的逗号分隔列表

calendar_list_events

列出即将到来的Google日历事件

参数:

  • time_min (字符串): 搜索开始时间,格式为RFC3339(默认:现在)
  • time_max (字符串): 搜索结束时间,格式为RFC3339(默认:从现在起一周内)
  • max_results (数字): 返回的最大事件数(默认:10)

calendar_update_event

更新现有的Google日历事件

参数:

  • event_id (字符串) (必填): 要更新的事件ID
  • summary (字符串): 新的事件标题
  • description (字符串): 新的事件描述
  • start_time (字符串): 新的事件开始时间,格式为RFC3339
  • end_time (字符串): 新的事件结束时间,格式为RFC3339
  • attendees (字符串): 新参会者电子邮件地址的逗号分隔列表

calendar_respond_to_event

响应Google日历中的事件邀请

参数:

  • event_id (字符串) (必填): 要响应的事件ID
  • response (字符串) (必填): 您的响应(接受、拒绝或暂定)

搜索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 (字符串) (必填): 要更新的页面ID
  • title (字符串): 页面的新标题(可选)
  • content (字符串): 存储格式(XHTML)的页面新内容
  • version_number (字符串): 乐观锁定的版本号(可选)

confluence_compare_versions

比较两个版本的Confluence页面

参数:

  • page_id (字符串) (必填): Confluence页面ID
  • source_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 (字符串) (必填): 要发送的文本消息

使用Google AI Search进行网络搜索。最佳工具用于实时信息更新

参数:

  • question (字符串) (必填): 要问的问题。应该是一个问题
  • context (字符串) (必填): 问题的上下文/目的,有助于Gemini更好地理解问题

gitlab_list_projects

列出GitLab项目

参数:

  • group_id (字符串) (必填): GitLab组ID
  • search (字符串): 可以提供多个术语,用转义空格(+或%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 (字符串) (必填): 合并请求IID
  • comment (字符串) (必填): 注释文本

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的搜索语法在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 (字符串) (必填): 来自可用转换列表的转换ID
  • comment (字符串): 随转换添加的可选评论

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

列出内存中的所有向量集合

根据查询搜索集合中的内存

参数:

  • 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 (字符串): 执行目录路径(默认值: 用户主目录)。经过验证以防止未经授权访问系统位置

使用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: 如果到达末尾但意识到需要更多思维

您应该:

  1. 从对所需思维的初步估计开始,但准备好进行调整
  2. 随时质疑或修订之前的思维
  3. 不要犹豫,在“结尾”时甚至可以添加更多思维
  4. 当存在不确定性时表达出来
  5. 标记修订以前思维或进入新路径的思维
  6. 忽略与当前步骤无关的信息
  7. 在适当的时候生成解决方案假设
  8. 根据思维链步骤验证假设
  9. 重复该过程直到对解决方案满意
  10. 提供一个最终的理想正确的答案
  11. 只有在真正完成并达到满意的答案时,才将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、disable
  • tool_name (字符串): 要启用/禁用的工具名称

tool_use_plan

使用可用工具创建解决问题的计划

参数:

  • request (字符串) (必填): 要计划的请求
  • context (字符串) (必填): 与请求相关的上下文

youtube_transcript

获取YouTube视频字幕

参数:

  • video_id (字符串) (必填): YouTube视频ID

youtube_update_video

在YouTube上更新视频的标题和描述

参数:

  • video_id (字符串) (必填): 要更新的视频ID
  • title (字符串) (必填): 视频的新标题
  • 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 (字符串) (必填): 要列出视频的频道ID
  • max_results (数字) (必填): 返回的最大视频数量