mcpField
A
AIO-MCP Server

AIO-MCP Server

本地服务
github.com/athapong版本控制3672 周前更新

关于 AIO-MCP Server

AIO-MCP Server 是一个用 Go 编写的一体化 MCP 服务,集成了 GitLab、Jira、Confluence、YouTube 等多种服务,并提供 AI 搜索与 RAG 等工具。它面向需要在开发流程中统一调用这些服务的开发者。可通过 ENABLE_TOOLS 按工具组启用功能。

主要功能

  1. 01GitLab 项目、合并请求与流水线工具
  2. 02Jira 与 Confluence 页面查询和编辑
  3. 03Google 日历与 Gmail 搜索工具
  4. 04按工具组启用的 ENABLE_TOOLS 配置
  5. 05支持 stdio 与 SSE 两种运行模式

适用场景

  1. 01在 MCP 客户端中查看与评论 GitLab 合并请求
  2. 02通过 Confluence 查询与更新团队文档

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 GitLab、Confluence、Google 日历、Gmail 等领域的工具,并支持 stdio 和 SSE 连接方式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

AIO-MCP 服务

功能强大的 Model Context Protocol(MCP)服务实现,集成了 GitLab、Jira、Confluence、YouTube 等服务。该服务提供 AI 驱动的搜索功能,以及用于开发工作流的各种实用工具。

前置条件

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

安装

通过 Smithery 安装

通过 Smithery 自动为 Claude Desktop 安装 AIO-MCP Server(将引导你完成交互式命令行设置):

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:
# Add these to your ~/.bashrc, ~/.zshrc, or equivalent shell config file
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

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

source ~/.bashrc  # or ~/.zshrc
Windows (PowerShell):
# Set environment variables
[Environment]::SetEnvironmentVariable("GOPATH", "$env:USERPROFILE\go", "User")
[Environment]::SetEnvironmentVariable("PATH", "$env:PATH;$env:USERPROFILE\go\bin", "User")
Windows (Command Prompt):
setx GOPATH "%USERPROFILE%\go"
setx PATH "%PATH%;%USERPROFILE%\go\bin"

设置这些变量后,可以使用以下命令验证它们是否正常工作:

go env GOPATH
echo $PATH  # On Unix/Linux/macOS
echo %PATH%  # On Windows CMD
$env:PATH  # On 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": "", // "true" if you want to use openrouter for AI to help with reasoning on `tool_use_plan`, default is false
        "DEEPSEEK_API_KEY": "", // specify the deepseek api key if you want to use deepseek for AI to help with reasoning on `tool_use_plan`
        "OPENROUTER_API_KEY": "", // specify the openrouter api key if you want to use openrouter for AI to help with reasoning on `tool_use_plan`
        "DEEPSEEK_API_BASE": "", // specify the deepseek api key if you want to use deepseek for AI to help with reasoning on `tool_use_plan`
        "USE_OLLAMA_DEEPSEEK": "", // "true" if you want to use deepseek with local ollama, default is false
        "OLLAMA_URL": "" // default with http://localhost:11434
      }
    }
  }
}

服务模式

AIO-MCP Server 支持两种运行模式:

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

  2. SSE(Server-Sent Events)模式:服务以 HTTP 服务的形式运行,支持通过 Server-Sent Events 进行实时通信。此模式适用于基于 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:Fetch 工具
  • brave_search:Brave Search 工具
  • 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 Calendar 中创建新事件

参数:

  • summary(String)(必填):事件标题
  • description(String):事件描述
  • start_time(String)(必填):事件开始时间,采用 RFC3339 格式(例如:2023-12-25T09:00:00Z)
  • end_time(String)(必填):事件结束时间,采用 RFC3339 格式
  • attendees(String):以逗号分隔的参会者电子邮件地址列表
calendar_list_events

列出 Google Calendar 中即将发生的事件

参数:

  • time_min(String):搜索的开始时间,采用 RFC3339 格式(默认:现在)
  • time_max(String):搜索的结束时间,采用 RFC3339 格式(默认:从现在起 1 周)
  • max_results(Number):要返回的事件数量上限(默认:10)
calendar_update_event

更新 Google Calendar 中的现有事件

参数:

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

回复 Google Calendar 中的事件邀请

参数:

  • event_id(String)(必填):要回复的事件 ID
  • response(String)(必填):你的回复(accepted、declined 或 tentative)
confluence_search

搜索 Confluence

参数:

  • query(String)(必填):Atlassian Confluence 查询语言(CQL)
confluence_get_page

获取 Confluence 页面内容

参数:

  • page_id(String)(必填):Confluence 页面 ID
confluence_create_page

创建新的 Confluence 页面

参数:

  • space_key(String)(必填):要创建页面的空间键
  • title(String)(必填):页面标题
  • content(String)(必填):采用存储格式(XHTML)的页面内容
  • parent_id(String):父页面 ID(可选)
confluence_update_page

更新现有 Confluence 页面

参数:

  • page_id(String)(必填):要更新的页面 ID
  • title(String):页面的新标题(可选)
  • content(String):采用存储格式(XHTML)的页面新内容
  • version_number(String):用于乐观锁定的版本号(可选)
confluence_compare_versions

比较 Confluence 页面两个版本

参数:

  • page_id(String)(必填):Confluence 页面 ID
  • source_version(String)(必填):源版本号
  • target_version(String)(必填):目标版本号
deepseek_reasoning

使用 Deepseek 的 AI 能力提供高级推理引擎,用于多步问题求解、批判性分析和战略决策支持

参数:

  • question(String)(必填):需要深入分析和推理的结构化查询或问题陈述
  • context(String)(必填):定义查询在 MCP 生态系统中的运行上下文和目的
  • knowledge(String):提供相关聊天历史、知识库条目和结构化数据上下文,以支持具备 MCP 感知能力的推理
get_web_content

从给定的 HTTP/HTTPS URL 获取内容。此工具可从网页、API 或任何可访问的 HTTP 端点检索文本内容。返回原始文本内容。

参数:

gchat_list_spaces

列出所有可用的 Google Chat 空间/聊天室

gchat_send_message

向 Google Chat 空间或私信发送消息

参数:

  • space_name(String)(必填):要发送消息的空间名称
  • message(String)(必填):要发送的文本消息
ai_web_search

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

Arguments:

  • question(String)(必填):要提问的问题。应为一个问题
  • context(String)(必填):问题的背景/目的,帮助 Gemini 更好地理解问题
gitlab_list_projects

列出 GitLab 项目

Arguments:

  • group_id(String)(必填):GitLab 群组 ID
  • search(String):可以提供多个搜索词,使用转义空格、+ 或 %20 分隔;这些词将按 AND 条件组合。例如,one+two 将匹配包含 one 和 two 子串的内容(顺序不限)。
gitlab_get_project

获取 GitLab 项目详情

Arguments:

  • project_path(String)(必填):项目/仓库路径
gitlab_list_mrs

列出合并请求

Arguments:

  • project_path(String)(必填):项目/仓库路径
  • state(String)(默认值:all):MR 状态(opened/closed/merged)
gitlab_get_mr_details

获取合并请求详情

Arguments:

  • project_path(String)(必填):项目/仓库路径
  • mr_iid(String)(必填):合并请求 IID
gitlab_create_MR_note

在合并请求上创建评论

Arguments:

  • project_path(String)(必填):项目/仓库路径
  • mr_iid(String)(必填):合并请求 IID
  • comment(String)(必填):评论文本
gitlab_get_file_content

从 GitLab 仓库获取文件内容

Arguments:

  • project_path(String)(必填):项目/仓库路径
  • file_path(String)(必填):仓库中文件的路径
  • ref(String)(必填):分支名称、标签或提交 SHA
gitlab_list_pipelines

列出 GitLab 项目的流水线

Arguments:

  • project_path(String)(必填):项目/仓库路径
  • status(String)(默认值:all):流水线状态(running/pending/success/failed/canceled/skipped/all)
gitlab_list_commits

列出 GitLab 项目在指定日期范围内的提交

Arguments:

  • project_path(String)(必填):项目/仓库路径
  • since(String)(必填):开始日期(YYYY-MM-DD)
  • until(String):结束日期(YYYY-MM-DD)。如果未提供,则默认为当前日期
  • ref(String)(必填):分支名称、标签或提交 SHA
gitlab_get_commit_details

获取提交详情

Arguments:

  • project_path(String)(必填):项目/仓库路径
  • commit_sha(String)(必填):提交 SHA
gitlab_list_user_events

列出 GitLab 用户在指定日期范围内的事件

Arguments:

  • username(String)(必填):GitLab 用户名
  • since(String)(必填):开始日期(YYYY-MM-DD)
  • until(String):结束日期(YYYY-MM-DD)。如果未提供,则默认为当前日期
gitlab_list_group_users

列出 GitLab 群组中的所有用户

Arguments:

  • group_id(String)(必填):GitLab 群组 ID
gitlab_create_mr

创建新的合并请求

Arguments:

  • project_path(String)(必填):项目/仓库路径
  • source_branch(String)(必填):源分支名称
  • target_branch(String)(必填):目标分支名称
  • title(String)(必填):合并请求标题
  • description(String):合并请求说明
gitlab_clone_repo

在本地克隆或更新 GitLab 仓库

Arguments:

  • project_path(String)(必填):项目/仓库路径
  • ref(String):分支名称或标签(可选,默认使用项目的默认分支)
gmail_search

使用 Gmail 的搜索语法搜索 Gmail 邮件

Arguments:

  • query(String)(必填):Gmail 搜索查询。请遵循 Gmail 的搜索语法
gmail_move_to_spam

根据邮件 ID 将指定邮件移至 Gmail 垃圾邮件文件夹

Arguments:

  • message_ids(String)(必填):要移至垃圾邮件文件夹的邮件 ID 列表,以逗号分隔
gmail_create_filter

根据指定条件和操作创建 Gmail 过滤器

Arguments:

  • from(String):过滤来自此发件人的邮件
  • to(String):过滤发给此收件人的邮件
  • subject(String):过滤主题为此内容的邮件
  • query(String):其他搜索条件
  • add_label(Boolean):为匹配的邮件添加标签
  • label_name(String):要添加的标签名称(当 add_label 为 true 时必填)
  • mark_important(Boolean):将匹配的邮件标记为重要
  • mark_read(Boolean):将匹配的邮件标记为已读
  • archive(Boolean):归档匹配的邮件
gmail_list_filters

列出帐户中的所有 Gmail 过滤器

gmail_list_labels

列出帐户中的所有 Gmail 标签

gmail_delete_filter

根据 ID 删除 Gmail 过滤器

Arguments:

  • filter_id(String)(必填):要删除的过滤器 ID
gmail_delete_label

根据 ID 删除 Gmail 标签

Arguments:

  • label_id(String)(必填):要删除的标签 ID
jira_get_issue

检索特定 Jira 问题的详细信息,包括其状态、经办人、描述、子任务和可用的转换

Arguments:

  • issue_key(String)(必填):Jira 问题的唯一标识符(例如,KP-2、PROJ-123)
jira_search_issue

使用 JQL(Jira 查询语言)搜索 Jira 问题。返回匹配问题的摘要、状态、经办人和优先级等关键详情

Arguments:

  • jql(String)(必填):JQL 查询字符串(例如,'project = KP AND status = "In Progress"')
jira_list_sprints

列出特定 Jira 看板的所有进行中和未来冲刺,包括冲刺 ID、名称、状态和日期

Arguments:

  • board_id(String)(必填):Jira 看板的数字 ID(可在看板 URL 中找到)
jira_create_issue

根据指定详情创建新的 Jira 问题。返回所创建问题的键、ID 和 URL

Arguments:

  • project_key(String)(必填):要创建问题的项目标识符(例如,KP、PROJ)
  • summary(String)(必填):问题的简短标题
  • description(String)(必填):问题的详细说明
  • issue_type(String)(必填):要创建的问题类型(常见类型:Bug、Task、Story、Epic)
jira_update_issue

修改现有 Jira 问题的详情。支持部分更新——仅更改指定字段

Arguments:

  • issue_key(String)(必填):要更新的问题的唯一标识符(例如,KP-2)
  • summary(String):问题的新标题(可选)
  • description(String):问题的新描述(可选)
jira_list_statuses

检索特定 Jira 项目中所有可用的问题状态 ID 及其名称

Arguments:

  • project_key(String)(必填):项目标识符(例如,KP、PROJ)
jira_transition_issue

使用有效的转换 ID 让问题流转至工作流中的下一状态。可通过 jira_get_issue 获取可用的转换

Arguments:

  • issue_key(String)(必填):要转换状态的问题(例如,KP-123)
  • transition_id(String)(必填):可用转换列表中的转换 ID
  • comment(String):转换时添加的可选备注
RAG_memory_index_content

将内容索引到记忆中,可插入或更新

Arguments:

  • collection(String)(必填):记忆集合名称
  • filePath(String)(必填):内容文件路径
  • payload(String)(必填):纯文本内容
  • model(String):要使用的嵌入模型(默认值:text-embedding-3-large)
RAG_memory_index_file

将本地文件索引到记忆中

Arguments:

  • collection(String)(必填):记忆集合名称
  • filePath(String)(必填):要索引的本地文件路径
RAG_memory_create_collection

在记忆中创建新的向量集合

Arguments:

  • collection(String)(必填):记忆集合名称
  • model(String):要使用的嵌入模型(默认值:text-embedding-3-large)
RAG_memory_delete_collection

删除内存中的向量集合

参数:

  • collection(String)(必填):内存集合名称
RAG_memory_list_collections

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

RAG_memory_search

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

参数:

  • collection(String)(必填):内存集合名称
  • query(String)(必填):搜索查询,应为关键词
  • model(String):要使用的嵌入模型(默认:text-embedding-3-large)
RAG_memory_delete_index_by_filepath

根据 filePath 删除向量索引

参数:

  • collection(String)(必填):内存集合名称
  • filePath(String)(必填):要删除的本地文件路径
execute_comand_line_script

在用户的系统上安全执行命令行脚本,并施加安全限制。具备沙盒执行、超时保护和输出捕获功能。支持跨平台脚本编写,并自动检测环境。

参数:

  • content(String)(必填):
  • interpreter(String)(默认:/bin/sh):解释器二进制文件的路径(例如 /bin/sh、/bin/bash、/usr/bin/python、cmd.exe)。出于安全考虑,会根据允许列表进行验证
  • working_dir(String):执行目录路径(默认:用户主目录)。经过验证,以防止未经授权访问系统位置
web_search

使用 Brave Search API 搜索网页

参数:

  • query(String)(必填):要搜索的查询内容(最多 400 个字符、50 个单词)
  • count(Number)(默认:5):结果数量(1-20,默认 5)
  • country(String)(默认: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:如果在接近终点时意识到还需要更多思考,则为 true

你应该:

  1. 先初步估算所需的思考步骤数,但准备好随时调整
  2. 可以质疑或修正之前的思考
  3. 如有需要,不要犹豫,即使在“结束”后也要添加更多思考
  4. 在存在不确定性时表达出来
  5. 标记修正之前思考或分支到新路径的步骤
  6. 忽略与当前步骤无关的信息
  7. 适时生成解决方案假设
  8. 根据思维链步骤验证假设
  9. 重复此过程,直到对解决方案满意为止
  10. 将最终结果作为单一且尽可能正确的答案提供
  11. 只有在真正完成并得出满意答案后,才将 next_thought_needed 设为 false`

参数:

  • thought (String) (必填):当前思考步骤
  • nextThoughtNeeded (Boolean) (必填):是否需要继续进行思考步骤
  • thoughtNumber (Number) (必填):当前思考步骤编号
  • totalThoughts (Number) (必填):估计所需的思考步骤总数
  • isRevision (Boolean):此步骤是否修正了之前的思考
  • revisesThought (Number):正在重新考虑的思考步骤编号
  • branchFromThought (Number):分支点对应的思考步骤编号
  • branchId (String):分支标识符
  • needsMoreThoughts (Boolean):是否需要更多思考
  • result (String):此思考步骤的最终结果或结论
  • summary (String):对该思考步骤要点的简要总结
sequentialthinking_history

获取当前思考过程的思考历史

参数:

  • branchId (String):可选的分支 ID,用于获取历史记录
tool_manager

管理 MCP 工具 - 启用或禁用工具

参数:

  • action (String) (必填):要执行的操作:list、enable、disable
  • tool_name (String):要启用或禁用的工具名称
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(数字)(必填):返回的视频数量上限

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。