通过 Discourse 内置的 MCP 服务器将您的 AI 应用连接到社区

Discourse 现在内置了 MCP 服务器,因此你可以让心仪的 AI 应用帮你查找主题、跟进讨论,或为你的社区活动生成报告。

MCP(Model Context Protocol,模型上下文协议)是一种让 AI 应用使用其他服务提供的工具的方式。Discourse 提供了这些工具,你只需使用 Discourse 账户登录并批准其请求的访问权限,即可将你的应用连接起来。:slight_smile:

该服务器作为你的 Discourse 站点的一部分运行。存在一个独立的 discourse-mcp 包,那是一个你需要在本地安装并运行的工具——它对于这项新功能并非必需。你可以直接连接到你的社区新的内置服务器,而无需设置本地开发环境。向下滚动查看一下 :backhand_index_pointing_right:t2:

你可以用它做什么?

你可以搜索和阅读主题,浏览分类和标签,查看用户资料和活动,以及检查你的书签和通知。如果启用了写入权限,你的应用还可以创建主题、回复、编辑帖子、保存草稿和上传文件。私信(PM)拥有独立的读取和写入权限。

例如,你可以这样询问:

  • “查找关于设置 SSO 的讨论,并总结人们尝试过的方案。请附上主题的链接。”
  • “阅读这个主题并给我解释一下(ELI5)”
  • “找到我保存的草稿,帮我看看我停在哪里了”

当相应的插件和 MCP 工具启用时,还有用于聊天、事件、表情回应、已解决主题和主题投票的工具。

一个很棒的功能是支持审核和站点设置。拥有相应权限的工作人员可以检查审核队列、阅读标记背后的详细信息、查看帖子修订版本以及查询用户的审核历史。管理员还可以查找站点设置并更新受支持的设置。

谁可以访问什么?

作为管理员,你可以选择你的站点公开哪些工具,以及每个组可以向应用授予哪些权限。读取和写入权限是分开的,因此你可以允许搜索和阅读,而不允许进行更改。

用户登录 Discourse 并批准应用请求的访问权限。该应用将以该用户的正常 Discourse 权限行事,并在授予它的访问范围内运行。

:warning: 授予应用读取内容的权限,并不会让用户访问他们原本无法看到的内容。 无论允许用户拥有哪些 MCP 范围,所有典型的应用权限仍然适用。再说一遍:被授予私信范围的用户将无法在应用中看到他们原本无法看到的私信。站点设置工具需要管理员账户,且秘密设置的值不会暴露。

你可以从 MCP 管理页面审查已连接的应用和授权、撤销访问权限、阻止客户端以及检查工具活动。用户也可以在 偏好设置 → 安全 → MCP 应用 下撤销他们自己的连接。

设置

MCP 服务器默认是禁用的。在包含此功能的 Discourse 版本上:

  1. 前往 /admin/config/mcp 并在 设置 中启用 mcp_server_enabled
  2. 功能 中,启用你希望你的站点公开的工具。新工具在明确启用之前是禁用的。
  3. 访问 中,选择哪些组可以连接以及它们可以授予哪些权限。管理员组已预先注册;根据需要添加其他组。
  4. 使用 概览 上显示的服务器端点连接你的 AI 应用,通常是 https://your-community.example/mcp
  5. 登录 Discourse 并批准请求的访问权限。

你的应用需要支持通过 Streamable HTTP 和 OAuth 进行的远程 MCP。一些应用可以自动识别自己。如果你的应用需要预注册的客户端,请使用 OAuth 客户端 → 添加 OAuth 客户端 并在你的应用中输入匹配的客户端详细信息。该表单包含常见应用的预设。

mcp_oauth_client_id_metadata_policy 设置控制应用是否可以通过客户端元数据 URL 识别自己。你可以允许任何域名、将此限制为批准的域名,或要求使用预注册的客户端。

这里有一个完整的录屏 [1],展示了如何将 ChatGPT 连接到 Meta 的 MCP 服务器(仅管理员可用) :video_camera:

试一试 :woman_technologist:t2:

告诉我们你正在使用哪个应用,以及哪些工具可以改进!

这里还有更多工作正在进行中:

  • 更多的范围 / 工具
  • 我们正在探索为知名应用(如 ChatGPT、Claude 等)创建官方插件。

  1. 部分片段已加速 ↩︎

8 个赞

这太棒了。我从项目最初在代码仓库中发布起就一直关注着它。它的发布时机正好赶上我在尝试使用之前的客户端通过代理来实现类似功能时遇到了一些问题(很可能源于我的知识不足)。

我会使用它,并在进行一些测试后,分享它在 Pi(一种轻量级运行环境,适合那些希望自主选择使用哪些组件、不使用哪些组件,并保持一切轻量化的用户)上的运行效果和表现。

为工作人员启用服务器功能将带来非凡的可能性,否则这些功能将难以实现。

祝贺团队!


我想知道是否有计划向用户开放内置的 Meta MCP 服务器?

我有一些工作流程、提示词以及通用使用技巧,可能对社区有所帮助,而使用 MCP 服务器可以简化发布所有这些内容所需的时间。

2 个赞

(帖子已被作者删除)