【Nitan MCP】你的专属泥潭AI助手 (新增Google Cloud免费快速部署教程)

Introducing Nitan MCP

AI Agent火了有一阵子了,是时候用AI来更好的在泥潭网上冲浪了 :troll:

什么是MCP?

MCP即模型上下文协议(Model Context Protocol),是人工智能领域的“USB 接口”。

简而言之,当你有了一个MCP后,你就可以让你的大模型助手们有办法访问一些新的工具,比如访问泥潭。

Nitan MCP能做什么?

接入Nitan MCP之后,AI可以帮你:

- 搜索主题帖
- 查看主题帖的内容
- 查看通知
- 查看每日/周/月/年的帖子排行
- 查看热帖
- 查看某个用户的最近回帖
- 查看某个板块的最新帖子

更多功能还在开发中(其实是想不出来还有啥实用功能了 :yaoming:,你有什么需求可以告诉我)

这玩意是咋开发的?

泥潭基于Discourse框架,而Discourse官方在近期推出了Discourse MCP,很可惜,作为一个通用的框架,并不是很适配泥潭用户的实际需求,功能也十分简陋,还有的功能用了会出错,只能搜索帖子和查看帖子,也不能登录账户。

于是我基于这个撸了一个分支,新增了不少功能的同时,让大家可以登陆论坛,访问到专属于自己的消息(比如你的通知),项目地址如下。欢迎贡献代码(内含大量vibe coding屎山 :yaoming:)。同时在这里鸣谢@ LeeKuanYew 在开发中的建议和协助。

小伙伴们有空可以给repo点一个免费的star哦 :troll:,你们的支持是我开发的动力

我怎么才能用上呢?

1. 电脑本地部署

作为一个MCP服务器,这个项目是需要自己部署的,你可以直接部署在自己的电脑上,然后接入Claude Desktop等AI客户端,但这样出门就不好用上了。不过可以先试试,非常简单,5分钟搞定,也不要钱

Windows本地部署方式(Mac应该也一样)
  1. 首先得确保电脑上安装了Python。
  2. 下载Claude Desktop
  3. 进入Developer选项,打开配置文件
  4. 写入如下配置,保存
{
  "mcpServers": {
    "nitan": {
      "command": "npx",
      "args": [
        "-y",
        "@nitansde/mcp@latest"
      ],
      "env": {
        "NITAN_USERNAME": "YOUR_USERNAME",
        "NITAN_PASSWORD": "YOUR_PASSWORD"
      }
    }
  }
}
  1. 重启Claude Desktop
    现在就可以在connector里看到nitan mcp的详情啦
  2. 开始使用吧

2. NAS及Linux Server

我自己的部署方式是放在家里的NAS上,具体方式如下:

NAS及Linux Server本地部署方式
  1. Docker上部署mcphub (docker镜像地址),这是一个mcp管理平台,可以把不同的mcp统一管理,自动化部署,提供统一接口,外加令牌验证保证安全性。他们有教程,部署很简单。
  2. 在mcphub上安装并配置nitan-mcp。(这里是一键部署的)

如图显示,

Server Name: nitan (或者你喜欢的名字)
Server Type: STDIO (mcphub会把不同输入接口格式的mcp转换成统一的格式)
Command: npx (会自动安装我的npm包)
Arguments: -y @nitansde/mcp@latest(可以固定一个版本号手动升级)
想要手动升级这里就换成 “-y @nitansde/[email protected]”

Environment Variables:(可选,如果不想登陆的话就不用填)
NITAN_USERNAME 你的泥潭登录id
NITAN_PASSWORD 你的泥潭密码
TIME_ZONE 时区代码,默认用的服务器时间,docker里最好设置一下。比如“America/Los_Angeles”
  1. 点击保存,会自动安装 + 启动MCP服务器,如果报错的话,去边上的Log页面看看有啥错误,修不好可以发在帖子里给我瞧瞧
  2. 测试一下MCP服务器是否正常,可以在这里调用tool,能返回结果就行。
  3. 在mcphub里打开令牌功能,把令牌保存下来(可选,这样安全点)
  4. 如果之前没有配置,现在要把mcphub这个服务暴露在公网。可以用tailscale tunnel等方式增加安全性,这里就不细讲了,相信大家玩NAS的人都会操作的。
  5. 现在你的mcp服务的endpint 就是你的服务的url/mcp/nitan (或者其他名字)
  6. (以Poke为例)现在去给AI助手们配上MPC服务器的地址和令牌

    第一行写mcp的名字,第二行写你的mcp endpoint地址,第三行写第七步拿到的令牌,

9.然后跟AI聊天就行啦

3. 云服务器

对于没有NAS的朋友来说,就需要找一台云服务器啦。不过因为性能要求很低,只需要能上网就行,所以随便找个便宜的免费的云服务就行,部署方式和NAS类似。

我自己创建了一个Google Cloud的Free Tier的EC2,靠内置的Gemini CLI可以很简单的部署,教程如下

Google Clould + Gemini CLI远程部署方式(免费)
  1. 首先申请一个免费的EC2 micro服务器 教程
  2. 然后去GCP的控制台,放行13000端口(或者你喜欢的端口)的流量给之后的mcphub使用。(不会的话可以问问AI怎么搞)
  1. 现在开始安装环境,因为现在cloud shell现在内置了Gemini CLI,所以很多操作直接让AI代劳了。右上角这个图标打开cloudshell。

  2. 在网页上打开clould shell后,输入gemini启动gemini CLI 帮忙配置EC2的环境。

  3. 告诉gemini, install and run docker image samanhappy/mcphub with port 13000:3000 on VM <你的VM的名字>,然后一路点确认,gemini会帮你在EC2上安装好docker并下载好image (有的时候需要在命令行输入Y之类的确认生成ssh key,根据提示按ctrl + f就可以在这里focus然后输入)。这一步需要下载镜像,需要几分钟,比较慢。(这里我把服务器的13000端口映射到了docker的3000端口,你可以改成自己喜欢的端口)


  4. 访问一下mcphub,看看是否部署成功。上一步我放行了13000端口,所以访问的地址是,你的EC2 External IP:13000 (gemini CLI的运行结果的里应该也会告诉你地址)。里面内置了几个mcp,没什么用可以删掉。

  5. 云上部署所有人都能访问你这个端口,所以一定要再user management里把默认的账户和密码都改掉(admin和admin123),不然不安全,然后设置里打开 Enable Bearer Authentication

  6. (Optional) 免费的EC2只有1GB内存,可以让gemini帮你把swap虚拟内存提高到4GB,提高流畅性。【Nitan MCP】你的专属泥潭AI助手 (新增Google Cloud免费快速部署教程) - #402,来自 ayzg

之后的配置就和NAS版本一样了,前往NAS配置教程的第二步开始照着配置。

部署遇到什么问题的话请先仔细检查是否配置有问题,是否完全按照教程操作。往下翻一翻,看到常见问题section,根据错误日志找到对应的解决办法。不懂得地方可以问问AI。如果还是没找到就在本帖里搜一下,很多问题解答过很多次了。再不行的话请把完整的错误日志(不是只有最后几行)发过来。

关于端口

Poke支持通过ip地址:端口号访问mcp。所以如果云上部署在了13000端口,poke的地址就是ip:13000/mcp/nitan

如果不想暴露端口和真实ip,这里可以设置一个反向代理。把443端口的访问反向代理到13000。

一个比较简单的解决方案是安装tailscale,打开funnel功能来暴露13000端口的服务到公网(NAS也建议这么做)。这样比较安全,同时tailscale提供免费的域名 + https证书,数据也能安全传输。

如果Poke提示Funnel的url错误,可以试试这个格式

关于登录功能

不登录也能用,但是会有很多功能缺失(比如看不到某些板块,比如看不到自己的通知,比如访问太频繁可能会被403),所以建议大家都登陆使用。

登陆很简单,把自己的账户密码放到配置里就行。
(注:明文储存密码不好,但毕竟大家是自己部署的,我相信你们电脑环境都很安全吧 :yaoming:

注:如果你的泥潭账户开启了二步验证,请关闭。

AI助手呢?

MCP只是让AI能调用泥潭API,所以你还需要一个能支持MCP的大模型。比如说:

1. Poke

我其实是为了Poke专门开发这个的,因为Poke可以随时短信提示你设置好的任务,所以可以实现一些非常实用的功能!(参考后面的使用案例),而且Poke还免费!

2. Claude Desktop

MCP是为了Claude推广的协议,自然他们是支持的,具体请看他们的官方文档

前面我也写过部署的具体教程了。免费的plan也可以用MCP。

3. Perplexity

楼里的DP显示pro也可以用mcp,但不少DP表示perplexity请求速度太快会背泥潭封ip

4. 欢迎大家补充,应该挺多的

使用案例:

我自己是用NAS部署 + Poke的方案,现在我展示一些实用的功能。大家可以自行发挥

以下功能是Claude Desktop上演示的,但均可以通过Poke自动提醒:

  • 每天早上帮你总结一次昨天的帖子
  • 有人给你发消息的时候给你短信通知
  • 关注某用户的最新回帖

自动提醒

每日简报

帖子汇总(Daily Briefing)

可以告诉AI你的具体需求,比如什么时间段,热帖还是最新帖子,什么板块。

总结某一个帖子

获取某用户的最新资讯

搜索 + 综述


查看提醒

订阅精彩的话题/难绷的话题

prompt模版:

现在你可以用nitan mcp获取到最新的精彩话题和难绷的话题了。每天检查一次,当天如果有新的精彩的话题或者难绷的话题,帮我总结好内容并通知我,需要附上链接

AI相亲

常见问题

为什么配置好文件后Claude/Poke/mcphub会报错?

请查看日志,看看具体写的是什么错误原因。

日志里提示CSRF token错误是怎么回事?

说明因为种种原因没有成功绕过cloudflare的检查。没啥好办法,凑合用访问一些不需要登陆的功能吧。

日志里提示Python curl_cffi script produced no output!是怎么回事?

说明本地的python执行文件找不到,或者缺了依赖,根据日志里的提示自查一下。
如果python依赖是安装在conda/venv等虚拟环境里的,请把执行文件的路径通过参数传入
如下:
-y @nitansde/mcp@lastest --python_path /path/to/python/路径

mcphub报错Failed to connect: McpError: MCP error -32000:什么意思?

这是一个很通用的错误信息,等于什么都没说。为什么出错了请去找到mcphub左边的logs选单,里面有完整日志。不要只发一个这一段给我,发了也没有任何信息量。

版本更新

release 页面
对于@latest的用户,直接重新关闭再开启一下MCP服务器即可
对于指定版本号的用户,每次在mcphub的配置里修改成最新的版本号再保存即可。

v1.2.0
支持了两个新工具,可以获取到最新的精彩话题和难绷话题列表。

因为加了新的工具,所以需要在poke的connection里refresh一下nitan mcp connection以获取新的两个tool

使用场景:依靠Poke订阅,有新的话题被标记为精彩或者难绷时通知你 :yaoming:。让你不再错过泥潭的每一丝精彩。

历史更新

v1.1.1

  • 新增curl_cffi库支持
  • 强化了绕过Cloudflare的机制,现在云上IP也更容易登录成功了
  • 改善了Python依赖检查的log,增加了中文免得大家不爱看英文log :troll:
  • 整理完善了repo里的readme文档,修正部分错误

v1.1.0

TLDR:

  • 优化格式节省token
  • 搜索工具和筛选工具合并成一个,可以搜索时筛选话题,用户,时间,并支持排序
  • 搜索的结果直接显示回复内容而不只是只有标题,方便AI快速获取信息。
  • 禁用了一些没什么用的工具,减少AI错误率
  • 支持了时区设置,环境变量TIMEZONE。如果没有手动设置,就会使用服务器时间,所有post的时间都会按照这个时区调整,方便阅读。
  • 优化了读取帖子的性能,减少请求次数
搜索和工具输出的主要改进

#### 搜索工具增强

* 新增分类筛选支持 (例如中文名称:玩卡, 旅行, 理财等)
* 新增作者筛选 (@username)
* 新增日期范围筛选 (使用 YYYY-MM-DD 格式的 `after`/`before`)
* 新增排序方式支持 (relevance [相关性], likes [点赞数], latest [最新], views [浏览量], latest_topic [最新主题])
* 当提供了筛选条件时,查询 (query) 变为可选
* 移除了未使用的 `with_private` 参数
* 将默认 `max_results` (最大结果数) 增加到 50
* 搜索结果中新增 `blurb` (摘要) 和 `post_number` (帖子编号)
* 纯 JSON 输出 (不含 markdown 围栏标记)
* 将 `id` 重命名为 `topic_id`

#### 工具输出标准化

* `discourse_search`: 纯 JSON 输出,包含 `topic_id`, `post_number`, `blurb`
* `discourse_list_top_topics`: 纯 JSON 数组输出,包含分类名称和格式化的时间戳
* `discourse_list_hot_topics`: 格式与 `discourse_list_top_topics` 保持一致
* `discourse_list_notifications`: 纯 JSON 数组输出,带格式化内容
* `discourse_get_user_activity`: 使用分类名称替代分类 ID

#### 时间戳改进

* 新增 `TIMEZONE` 环境变量支持 (例如 America/New_York, Asia/Shanghai)
* 从所有时间戳中移除了秒 (统一为 YYYY-MM-DD HH:MM 格式)
* 在所有工具中应用了一致的时间格式

#### 原始内容解析

* 修复了 `discourse_read_topic` 以正确解析 `/raw/` 端口 (endpoint)
* 增加了逐行解析器,支持每页 100+ 篇帖子
* 无论是否使用 `username_filter`,均保持一致的输出格式

#### 工具管理

* 已禁用:`discourse_read_post`, `discourse_list_tags`, `discourse_get_user`, `discourse_filter_topics`
* 重命名:`discourse_list_user_posts` → `discourse_get_user_activity`

#### 其他改进

* 为 `discourse_list_notifications` (通知列表) 添加了回复内容
* 在所有工具中实现了带中文名称的分类映射
* 改进了错误信息和验证机制

v1.0.11
修复bug,支持Windows本地部署

v1.0.10
修复了读post的bug,目前默认允许每次读取30个回复,最多同时请求500个回复。
v1.0.9
第一个发布版本

386 个赞

我是没想到 泥潭还能有MCP :yaoming:

23 个赞

现在冲浪都要AI了吗

12 个赞

还没看懂,但是要点赞

4 个赞

一眼好东西

现在在外面还没法部署,先占个楼 :doge:

1 个赞

太nb了!mark一下我记录一下

以后只有摸鱼串是自己本人来逛 :doge:

2 个赞

先赞后看,感谢钛金大佬!

1 个赞

damn 厉害

poke感觉服务器炸了,不理我了,搞不出来使用案例 :troll:,明天再写

反正大概的idea就是:

  1. 短信自动提醒你有人给你回复了(我从来没有成功地在手机上搞清楚过泥潭的通知)
  2. 每天晚上总结一下泥潭今日热帖,看看有没有什么自己感兴趣的
  3. 追踪你深爱的某个用户,让他回帖后每次都通知你 :yaoming:
6 个赞

所以上marketplace吗?我觉得需要一键部署 :yaoming:

就是一键部署呀,npx会自动安装的。就mcphub需要自己部署一下

强啊。。。。

看走眼了 :yaoming:

感谢分享。

校长 我来了!

我的全年不落要有着落了吗 :yaoming:

隐藏自己profile的人应该看不到

钛牛了!

下一步,在telegram建立频道,实时通知精华热帖