返回市场
全栈式MCP

全栈式MCP

作者:athapong31 星标更新:2025-06-12

项目介绍

技术文档摘要

AIO-MCP 服务器

一个强大的模型上下文协议(MCP)服务器实现,集成了GitLab、Jira、Confluence、YouTube等服务。此服务器提供了AI驱动的搜索功能以及各种开发工作流工具。

预备条件

  • Go 1.23.2 或更高版本
  • 使用所需服务的各种API密钥和令牌

安装

通过Smithery安装

要通过Smithery自动安装AIO-MCP服务器(将引导您完成交互式CLI设置):

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:

# 将这些添加到您的~/.bashrc、~/.zshrc或等效shell配置文件中
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

添加这些行后,重新加载您的shell配置:

source ~/.bashrc  # 或~/.zshrc

Windows (PowerShell):

# 设置环境变量
[Environment]::SetEnvironmentVariable("GOPATH", "$env:USERPROFILE\go", "User")
[Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$env:USERPROFILE\go\bin", "User")

Windows (命令提示符):

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
  1. 手动设置 - 创建一个.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=
  1. 配置您的Claude桌面配置:
{
  "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服务器支持两种操作模式:

  1. 标准I/O模式(默认):服务器通过标准输入/输出进行通信,这是Claude桌面和其他MCP客户端使用的默认模式。

  2. SSE(服务器发送事件)模式:服务器作为HTTP服务器运行,支持实时通信的服务器发送事件。这对于基于Web的客户端或需要通过网络访问MCP服务器的情况非常有用。

启用SSE模式

您可以通过以下两种方式之一启用SSE模式:

  1. 命令行标志

    aio-mcp -sse -sse-addr ":8080" -sse-base-path "/mcp"
    
  2. 环境变量(在您的.env文件中):

    ENABLE_SSE=true
    SSE_ADDR=:8080
    SSE_BASE_PATH=/mcp
    

当启用SSE模式时,服务器将在指定地址启动一个HTTP服务器。服务器提供两个端点:

  • SSE端点:{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

可用工具

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_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 (字符串) (必需):要更新的页面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端点检索文本内容。返回原始文本内容。

参数:

gchat_list_spaces

列出所有可用的Google Chat空间/房间

gchat_send_message

向Google Chat空间或直接消息发送消息

参数:

  • space_name (字符串) (必需):要发送消息的空间名称
  • message (字符串) (必需):要发送的文本消息

ai_web_search

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

参数:

  • 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状态(opened/closed/merged)

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):流水线状态(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 (字符串):合并请求描述

gitlab_clone_repo

本地克隆或更新GitLab仓库

参数:

  • project_path (字符串) (必需):项目/仓库路径
  • ref (字符串):分支名或标签(可选,默认为项目的默认分支)

gmail_search

使用Gmail搜索语法在Gmail中搜索邮件

参数:

  • query (字符串) (必需):Gmail搜索查询。遵循Gmail的搜索语法

gmail_move_to_spam

根据消息ID将特定邮件移动到Gmail的垃圾邮件文件夹

参数:

  • 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 (字符串