Introducing Nitan MCP
AI Agent火了有一阵子了,是时候用AI来更好的在泥潭网上冲浪了
。
什么是MCP?
MCP即模型上下文协议(Model Context Protocol),是人工智能领域的“USB 接口”。
简而言之,当你有了一个MCP后,你就可以让你的大模型助手们有办法访问一些新的工具,比如访问泥潭。
Nitan MCP能做什么?
接入Nitan MCP之后,AI可以帮你:
- 搜索主题帖
- 查看主题帖的内容
- 查看通知
- 查看每日/周/月/年的帖子排行
- 查看热帖
- 查看某个用户的最近回帖
- 查看某个板块的最新帖子
更多功能还在开发中(其实是想不出来还有啥实用功能了
,你有什么需求可以告诉我)
这玩意是咋开发的?
泥潭基于Discourse框架,而Discourse官方在近期推出了Discourse MCP,很可惜,作为一个通用的框架,并不是很适配泥潭用户的实际需求,功能也十分简陋,还有的功能用了会出错,只能搜索帖子和查看帖子,也不能登录账户。
于是我基于这个撸了一个分支,新增了不少功能的同时,让大家可以登陆论坛,访问到专属于自己的消息(比如你的通知),项目地址如下。欢迎贡献代码(内含大量vibe coding屎山
)。同时在这里鸣谢@ LeeKuanYew 在开发中的建议和协助。
小伙伴们有空可以给repo点一个免费的star哦
,你们的支持是我开发的动力
我怎么才能用上呢?
1. 电脑本地部署
作为一个MCP服务器,这个项目是需要自己部署的,你可以直接部署在自己的电脑上,然后接入Claude Desktop等AI客户端,但这样出门就不好用上了。不过可以先试试,非常简单,5分钟搞定,也不要钱
Windows本地部署方式(Mac应该也一样)
- 首先得确保电脑上安装了Python。
- 下载Claude Desktop
- 进入Developer选项,打开配置文件
- 写入如下配置,保存
{
"mcpServers": {
"nitan": {
"command": "npx",
"args": [
"-y",
"@nitansde/mcp@latest"
],
"env": {
"NITAN_USERNAME": "YOUR_USERNAME",
"NITAN_PASSWORD": "YOUR_PASSWORD"
}
}
}
}
- 重启Claude Desktop
现在就可以在connector里看到nitan mcp的详情啦
- 开始使用吧
2. NAS及Linux Server
我自己的部署方式是放在家里的NAS上,具体方式如下:
NAS及Linux Server本地部署方式
- Docker上部署mcphub (docker镜像地址),这是一个mcp管理平台,可以把不同的mcp统一管理,自动化部署,提供统一接口,外加令牌验证保证安全性。他们有教程,部署很简单。
- 在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”
- 点击保存,会自动安装 + 启动MCP服务器,如果报错的话,去边上的Log页面看看有啥错误,修不好可以发在帖子里给我瞧瞧
- 测试一下MCP服务器是否正常,可以在这里调用tool,能返回结果就行。
- 在mcphub里打开令牌功能,把令牌保存下来(可选,这样安全点)
- 如果之前没有配置,现在要把mcphub这个服务暴露在公网。可以用tailscale tunnel等方式增加安全性,这里就不细讲了,相信大家玩NAS的人都会操作的。
- 现在你的mcp服务的endpint 就是你的服务的url/mcp/nitan (或者其他名字)
- (以Poke为例)现在去给AI助手们配上MPC服务器的地址和令牌
第一行写mcp的名字,第二行写你的mcp endpoint地址,第三行写第七步拿到的令牌,
9.然后跟AI聊天就行啦
3. 云服务器
对于没有NAS的朋友来说,就需要找一台云服务器啦。不过因为性能要求很低,只需要能上网就行,所以随便找个便宜的免费的云服务就行,部署方式和NAS类似。
我自己创建了一个Google Cloud的Free Tier的EC2,靠内置的Gemini CLI可以很简单的部署,教程如下
Google Clould + Gemini CLI远程部署方式(免费)
- 首先申请一个免费的EC2 micro服务器 教程
- 然后去GCP的控制台,放行13000端口(或者你喜欢的端口)的流量给之后的mcphub使用。(不会的话可以问问AI怎么搞)
- 进入VNC Network - Firewall - create a firewall rule
- 照着填
- 然后进EC2的详情页面,edit,添加上一步创建好的13000端口的network tag
-
现在开始安装环境,因为现在cloud shell现在内置了Gemini CLI,所以很多操作直接让AI代劳了。右上角这个图标打开cloudshell。
-
在网页上打开clould shell后,输入gemini启动gemini CLI 帮忙配置EC2的环境。
-
告诉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端口,你可以改成自己喜欢的端口)
-
访问一下mcphub,看看是否部署成功。上一步我放行了13000端口,所以访问的地址是,你的EC2 External IP:13000 (gemini CLI的运行结果的里应该也会告诉你地址)。里面内置了几个mcp,没什么用可以删掉。
-
云上部署所有人都能访问你这个端口,所以一定要再user management里把默认的账户和密码都改掉(admin和admin123),不然不安全,然后设置里打开 Enable Bearer Authentication
-
(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),所以建议大家都登陆使用。
登陆很简单,把自己的账户密码放到配置里就行。
(注:明文储存密码不好,但毕竟大家是自己部署的,我相信你们电脑环境都很安全吧
)
注:如果你的泥潭账户开启了二步验证,请关闭。
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订阅,有新的话题被标记为精彩或者难绷时通知你
。让你不再错过泥潭的每一丝精彩。
历史更新
v1.1.1
- 新增curl_cffi库支持
- 强化了绕过Cloudflare的机制,现在云上IP也更容易登录成功了
- 改善了Python依赖检查的log,增加了中文免得大家不爱看英文log

- 整理完善了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
第一个发布版本






















