一个提供原始TCP套接字访问的模型上下文协议(MCP)服务器,使AI模型能够通过原始TCP套接字直接与网络服务交互。支持多并发连接、响应数据缓冲以及触发自动响应。
许多网络服务和物联网设备使用原始TCP协议进行通信,这些协议未被现有的基于HTTP的MCP服务器覆盖。TcpSocketMCP实现了以下功能:
这满足了社区成员对低级网络访问的需求,特别是在工业自动化、物联网开发和网络安全测试场景中。
查询设备以确定其类型
向设备发送数据
来自TCP交互的样本输出
# 使用pip安装
pip install TcpSocketMCP
# 使用uv安装(推荐)
uv add TcpSocketMCP
# 添加到Claude Code(推荐)
claude mcp add rawtcp -- uvx TcpSocketMCP
在您的Claude Desktop配置文件中添加服务器:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"tcp-socket": {
"command": "TcpSocketMCP",
"env": {}
}
}
}
{
"mcpServers": {
"tcp-socket": {
"command": "python",
"args": ["/path/to/tcp-socket-mcp/run.py"],
"env": {}
}
}
}
# 克隆仓库
git clone https://github.com/kaseyk/tcp-socket-mcp.git
cd tcp-socket-mcp
# 使用uv安装(推荐)
uv pip install -e .
# 或者使用pip安装
pip install -e .
# 直接运行服务器
python run.py
# 或者使用命令
TcpSocketMCP
一旦通过MCP配置,以下工具将对AI模型可用:
打开到任何主机端口的TCP连接
connection_idconnection_idtcp_connect("example.com", 80)通过已建立的连接发送数据
utf-8,hex(建议用于二进制),base64"48656C6C6F"表示"Hello""0D0A"表示CRLF从连接缓冲区读取接收的数据
index/countutf-8,hex,base64关闭连接并释放资源
为模式匹配设置自动响应
$1,$2)在一个原子操作中结合连接和发送
connection_id用于进一步操作# 连接到服务
conn_id = tcp_connect("example.com", 80)
# 发送数据(建议使用十六进制编码)
tcp_send(conn_id, "474554202F20485454502F312E310D0A", encoding="hex") # GET / HTTP/1.1\r\n
# 读取响应(可能需要等待数据)
response = tcp_read_buffer(conn_id)
# 清理
tcp_disconnect(conn_id)
# 预注册IRC PING/PONG触发器
tcp_set_trigger("irc-conn", "ping-handler", "^PING :(.+)", "PONG :$1\r\n")
# 使用预注册触发器连接
tcp_connect("irc.server.com", 6667, connection_id="irc-conn")
# PING响应现在会自动发生!
# 使用十六进制编码进行精确字节控制
tcp_send(conn_id, "0001000400000001", encoding="hex") # 二进制协议头
# 以十六进制格式读取响应以便分析
response = tcp_read_buffer(conn_id, format="hex")
许多文本协议(HTTP、SMTP、IRC)需要特定的行尾。使用十六进制编码可以避免JSON转义问题:
# 常见的十六进制序列:
# 0D0A = \r\n (CRLF) - HTTP、SMTP、IRC
# 0A = \n (LF) - Unix行尾
# 0D0A0D0A = \r\n\r\n - HTTP头部终止符
# 00 = 空字节 - 二进制协议
tcp_buffer_info检查数据TcpSocketMCP通过全面测试维持企业级质量:
# 安装测试依赖项
uv pip install -e .
uv pip install pytest pytest-asyncio pytest-cov
# 运行完整的测试套件并生成覆盖率报告
uv run pytest tests/ --cov=src/TcpSocketMCP --cov-report=term-missing
# 快速测试运行
uv run pytest
参见TESTING.md以获取全面的测试文档。
MIT