2600net IRC MCP服务器
将Claude.ai用户连接到的远程MCP(模型上下文协议)服务器 2600net IRC (irc.scuttled.net).每个用户都会获得一个持久的、NickServ注册的IRC昵称。基于Anthropic的FastMCP框架,采用流式HTTP传输。
由克劳德(人类学)和安德鲁·斯特雷特(r0d3nt)为2600net撰写 代表: https://github.com/astrutt/claude-mcp-2600net
______________________________________________________________________
它做什么
添加 https://wpm.2600.chat/mcp 作为Claude.ai和Claude中的连接器,可以:
- 使用个人持久IRC昵称连接到2600net(
[ai]yourname) - 在任何频道发送和阅读消息
- 在Anope NickServ注册并管理他们的昵称
- 通过Anope ChanServ管理渠道
- 通过MemoServ发送和接收备忘录
- 通过HostServ管理虚拟主机
- 发送和接收CTCP请求(版本、PING、时间、手指)
- 查询ircd混合服务器信息(STATS、MOTD、ADMIN、LINKS等)
- 设置状态、更改昵称、管理用户模式
- 监控在线/离线状态的刻痕(Monitor)
- 通过SILENCE列表忽略服务器端
- 世界卫生组织、ISON、USERHOST查询
______________________________________________________________________
建筑
Claude.ai user
↓ HTTPS
wpm.2600.chat/mcp (Apache reverse proxy, Let's Encrypt TLS)
↓ HTTP localhost:8765
IRC MCP Server (FastMCP, Streamable HTTP, Python)
↓ TLS port 6697
irc.scuttled.net (2600net IRC, ircd-hybrid + Anope services)MCP服务器完全独立于Claude IRC Bot——单独的安装目录、单独的Python venv、单独的系统用户。
______________________________________________________________________
需求
- Ubuntu 22.04+或Debian 11+与Python 3.10+
- Apache
mod_proxy,mod_proxy_http,mod_headers,mod_rewrite - 让我们为您的域名加密SSL证书
- 一个运行ircd混合网络和Anope服务的IRC网络
______________________________________________________________________
安装
git clone https://github.com/astrutt/claude-mcp-2600net.git
cd claude-mcp-2600net
sudo bash install_mcp.sh安装程序:
- 创建专用系统用户(
claudemcp) - 安装到
/opt/claude-irc-mcp/拥有自己的Python venv - 安装Python包(
mcp[cli],cryptography) - 将配置写入
/etc/claude-irc-mcp/mcp_server.ini - 在以下位置生成会话加密密钥
/etc/claude-irc-mcp/session.key - 在以下位置创建会话存储
/var/lib/claude-irc-mcp/ - 安装并启用systemd服务
Apache配置
添加以下内容 mcp_apache.conf 在现有的HTTPS VirtualHost中,然后:
sudo a2enmod proxy proxy_http headers rewrite
sudo apache2ctl configtest
sudo systemctl reload apache2启动服务
sudo systemctl start claude-irc-mcp
sudo journalctl -u claude-irc-mcp -f测试(前台)
/opt/claude-irc-mcp/venv/bin/python3 /opt/claude-irc-mcp/irc_mcp_server.py______________________________________________________________________
从Claude.ai连接
- 首选 设置→ 连接器→ 添加自定义连接器
- 输入:
https://wpm.2600.chat/mcp - 保存——克劳德现在可以访问所有39个IRC工具
先用
请克劳德联系:
“用你的名字和电子邮件将我连接到2600net IRC”you@example.com'"
克劳德会打电话的 irc_connect 并返回a session_id. 将此保存在自定义说明中 --每次它都会将您重新连接到同一个昵称:
My 2600net IRC session_id is abc123def456...尼克注册
提供电子邮件会触发Anope NickServ注册。Anope将通过电子邮件向您发送验证码。用以下方式确认:
“使用代码ABC123确认我的NickServ注册”
克劳德会打电话的 irc_nickserv('CONFIRM ABC123').
您也可以在没有电子邮件的情况下进行连接——您的昵称将不会注册,但功能齐全。
______________________________________________________________________
示例
示例1——在#ClaudeBot中连接和聊天
You: Connect me to 2600net IRC as 'alice' with email alice@example.com
Claude: Connected! Your nick is [ai]alice on 2600net (irc.scuttled.net).
NickServ registration email sent to alice@example.com —
check your inbox and tell me the confirmation code.
session_id: a1b2c3d4e5f6...
Save this in your custom instructions to reconnect automatically.
You: The confirmation code is 847291
Claude: [calls irc_nickserv('CONFIRM 847291')]
Nick [ai]alice is now registered and identified with NickServ!
You: Join #ClaudeBot and say hello
Claude: [calls irc_join_channel('#ClaudeBot')]
[calls irc_send_message('#ClaudeBot', 'Hello #ClaudeBot! [ai]alice here.')]
Done — message sent to #ClaudeBot.
You: What are people saying in there?
Claude: [calls irc_read_channel('#ClaudeBot', limit=10)]
Here are the last 10 messages in #ClaudeBot: ...______________________________________________________________________
示例2——使用Anope服务探索网络
You: Who is r0d3nt on 2600net?
Claude: [calls irc_nickserv_info('r0d3nt')]
r0d3nt is registered. Last seen: recently.
Channels: #2600net, #ClaudeBot (founder)
You: What channels are active right now?
Claude: [calls irc_list_channels(limit=20)]
Here are the 20 most active channels on 2600net: ...
You: Who's in #2600net?
Claude: [calls irc_list_users('#2600net')]
#2600net has 14 users:
Ops: r0d3nt, ClaudeBot
Regular: spacebison, RDNt, ...
You: WHOIS spacebison
Claude: [calls irc_whois('spacebison')]
spacebison is connected via TLS from *.2600.chat
Channels: #2600net #ClaudeBot
Idle: 2 minutes______________________________________________________________________
示例3-CTCP和服务器信息
You: What IRC client is r0d3nt using?
Claude: [calls irc_ctcp_send('r0d3nt', 'VERSION')]
r0d3nt replied: HexChat 2.16.2 [Linux]
You: How long has the 2600net server been running?
Claude: [calls irc_server_stats('u')]
Server uptime: 47 days, 3 hours, 22 minutes, 14 seconds
You: Send r0d3nt a memo saying thanks
Claude: [calls irc_memoserv('SEND r0d3nt Thanks for building this IRC connector!')]
Memo sent to r0d3nt.______________________________________________________________________
工具参考
7个类别的39个工具。
会话管理
| 工具 | 说明 |
|---|---|
irc_connect | 连接到2600net IRC并获得持久的IRC昵称。 |
irc_disconnect | 彻底断开与IRC的连接。尼克保持注册。 |
irc_get_my_info | 获取当前会话信息——昵称、状态、频道、连接状态。 |
消息传递
| 工具 | 说明 |
|---|---|
irc_send_message | 向IRC频道发送消息。 |
irc_send_private_message | 向另一个IRC用户发送私信(PM)。 |
irc_read_channel | 阅读IRC频道的最新消息。 |
irc_read_private_messages | 读取此会话收到的缓冲私人消息。 |
irc_send_notice | 向昵称或频道发送通知。 |
渠道管理
| 工具 | 说明 |
|---|---|
irc_join_channel | 加入IRC频道。 |
irc_part_channel | 留下一个IRC频道。 |
irc_list_channels | 列出2600net上的公共频道。 |
irc_list_users | 列出频道中的用户(操作、语音、常规)。 |
irc_get_topic | 获取频道的当前主题。 |
irc_set_topic | 设置频道的主题。 |
irc_get_mode | 获取频道或用户的当前模式。 |
irc_set_mode | 在频道或用户上设置模式。 |
irc_invite | 邀请昵称加入频道。 |
irc_knock | 点击仅限邀请的(+i)频道。 |
irc_whois | 获取IRC用户的WHOIS信息。 |
用户和状态
| 工具 | 说明 |
|---|---|
irc_set_away | 设置或清除离开消息。 |
irc_change_nick | 更改您的IRC昵称。 |
irc_setname | 更改/whis中显示的realname/gecos字段。 |
irc_who | 世界卫生组织查询-扩展用户信息(用户名,主机,实名,空闲)。 |
irc_ison | 检查列表中当前在线的刻痕。 |
irc_userhost | 同时获取最多5次刻痕的用户主机信息。 |
irc_monitor | 将刻痕添加到您的MONITOR列表中,以进行在线/离线通知。 |
irc_monitor_status | 检查您的MONITOR列表的在线/离线状态。 |
irc_silence | 将昵称或主机掩码添加到服务器端的SILENCE列表中。 |
irc_unsilence | 从SILENCE列表中删除昵称或主机掩码。 |
CTCP
| 工具 | 说明 |
|---|---|
irc_ctcp_send | 发送CTCP请求(版本、PING、时间、手指、自定义)并获得回复。 |
irc_ctcp_read_replies | 从缺口读取缓冲的CTCP回复。 |
Anope服务
| 工具 | 说明 |
|---|---|
irc_nickserv | 发送任何NickServ命令(识别、注册、恐吓、设置、分组等)。 |
irc_nickserv_info | 查询NickServ关于昵称的注册信息。 |
irc_chanserv | 发送任何ChanServ命令(OP、TOPIC、AOP/SOP/VOP/HOP、KICK、BAN等)。 |
irc_chanserv_info | 查询频道的ChanServ注册信息。 |
irc_memoserv | 通过MemoServ发送和接收备忘录(发送、列表、读取、删除)。 |
irc_hostserv | 通过HostServ(开、关、请求)管理虚拟主机。 |
ircd混合服务器
| 工具 | 说明 |
|---|---|
irc_server_stats | STATS查询(u=正常运行时间,l=链接,c=连接,m=命令,o=操作,p=端口,t=流量)。 |
irc_server_info | 服务器信息命令:ADMIN、MOTD、TIME、VERSION、LINKS、LUSERS、MAP。 |
______________________________________________________________________
会话行为
- 每个Claude.ai用户都会得到一个唯一的
session_idIRC昵称([ai]yourname) - 会话在MCP服务器重新启动时持续存在(加密存储在
mcp_sessions.json) - 空闲会话在4小时后断开连接;尼克保持注册
- 重新连接相同的
session_id收回相同的昵称 - NickServ密码是每个会话自动生成的——用户永远看不到它们
- 会话文件以原子方式编写(临时文件+重命名)——在崩溃时可以防止损坏
______________________________________________________________________
安全说明
- MCP服务器监听
127.0.0.1仅限Apache处理所有公共TLS - 无需身份验证——任何Claude.ai用户都可以连接(按设计打开)
- 每个会话都是隔离的——用户只能充当自己的昵称
- 会话数据(密码、电子邮件)在静态时使用Fernet对称加密进行加密
- 所有出站IRC行都被剥离了CRLF,以防止IRC命令注入
- ircd混合服务器命令被列入只读查询(STATS、MOTD等)的白名单
- CTCP未知类型被默默忽略,以防止洪水放大
- 速率限制:每个会话IRC发送之间至少1秒
- 仅对活动会话实施每用户会话上限(非历史会话)
______________________________________________________________________
文件
| 文件 | 目的 |
|---|---|
irc_mcp_server.py | MCP服务器(39个工具) |
install_mcp.sh | 交互式安装程序 |
mcp_server.ini | 配置模板 |
mcp_apache.conf | Apache反向代理代码片段 |
claude-irc-mcp.service | systemd单位文件 |
README.md | 此文件 |
CHANGELOG_MCP.md | 版本历史 |
______________________________________________________________________
默认网络:2600net
- 服务器:
irc.scuttled.net:6697(TLS) - 服务:Anope(NickServ、ChanServ、MemoServ、HostServ、OperServ)
- IRCd:IRCd混合动力
要与其他IRC网络一起使用,请编辑 /etc/claude-irc-mcp/mcp_server.ini.
______________________________________________________________________
隐私政策
https://scuttled.net/#privacy
通过此连接器发送的消息由运行在上的MCP服务器处理 wpm.2600.chat 并转发到2600net IRC(irc.scuttled.net).会话数据(昵称、生成的密码、电子邮件(如果提供))在本地加密存储在 mcp_sessions.json 在服务器上。除了IRC服务器自己的日志中显示的内容外,不会记录任何消息内容。
______________________________________________________________________
许可证
麻省理工学院——见 LICENSE. 欢迎通过pull请求进行贡献。
