mcpField
M
mikrotik

mikrotik

本地服务
github.com/marcelo-ochoa云与基础设施210 周前更新

关于 mikrotik

mikrotik 是用于只读访问 MikroTik 路由器的 MCP 服务,面向需要检查设备状态和网络信息的用户。它提供 MCP 资源、系统报告及安全审计,并支持 RouterOS 新旧登录方式。

主要功能

  1. 01连接并认证 MikroTik 路由器
  2. 02读取接口、桥接与路由资源
  3. 03生成系统状态和流量报告
  4. 04生成性能与安全审计报告
  5. 05支持 TCP 与 SSL/TLS 连接
  6. 06兼容 RouterOS 新旧登录方式

适用场景

  1. 01检查接口和路由表状态
  2. 02汇总路由器健康状况与流量
  3. 03审查防火墙配置及潜在风险

MCP 相关

该 MCP 服务通过资源公开接口、桥接、桥接端口和 IP 路由,并提供连接、读取 API 结果及生成报告的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"marcelo-ochoa-mikrotik": {
"command": "npx",
"args": [
"-y",
"@marcelo-ochoa/server-mikrotik"
],
"env": {
"MK_USER": "<MK_USER>",
"MK_PASSWORD": "<MK_PASSWORD>"
}
}
}
}
启动命令npx -y @marcelo-ochoa/server-mikrotik
需要配置的环境变量
MK_USERMikroTik username
MK_PASSWORD密钥MikroTik password

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@marcelo-ochoa/server-mikrotik1.0.6

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
hoststring是路由器 IP 地址
userstring是用户名
secureboolean否使用安全连接(TLS/SSL)
passwordstring是密码

详细介绍

MikroTik RouterOS API MCP 服务

一个只读 MCP 服务实现,用于通过 RouterOS API 与 MikroTik 路由器交互。

功能

  • 连接管理:连接并验证 MikroTik 路由器的身份。
  • 资源监控:通过 MCP 资源动态访问接口、网桥和路由表。
  • 协议支持:支持普通 TCP(8728)和安全 SSL/TLS(8729)。
  • 新旧版登录方式:支持 v6.43 之前和之后的 RouterOS 版本。

资源

此服务将 MikroTik 实体公开为 MCP 资源,以便直接检查:

  • 接口:mikrotik://interface/{name}
    • 示例:mikrotik://interface/ether1
  • 网桥:mikrotik://bridge/{name}
    • 示例:mikrotik://bridge/bridge1
  • 网桥端口:mikrotik://bridge/{bridge_name}/{interface_name}
    • 示例:mikrotik://bridge/bridge1/ether2
  • IP 路由:mikrotik://route/{id}
    • 示例:mikrotik://route/400AF317(注意:路由条目使用内部 ID)

工具

  1. mk-connect:连接到路由器。
    • host:路由器的 IP 地址。
    • user:用户名。
    • password:密码。
    • secure:(可选)使用 SSL/TLS。默认值为 false。

示例: mk-connect 192.168.88.1 admin mypassword

  1. mk-report:生成全面的系统报告。

    • 汇总系统资源、运行状况、routerboard 信息和接口流量统计信息(使用一次 monitor-traffic)。
  2. mk-get:返回包含 MikroTik API /print 命令结果的 JSON 数组。

    • sentence:API 路径(例如 /ip/route、/interface、/log)。
    • 服务会自动确保路径以 / 开头并以 /print 结尾。
  3. mk-awr:生成 MikroTik 的自动工作负载存储库(AWR)风格报告。

    • 包含性能指标、安全审计和建议。
    • 无需输入。

提示词

服务为常见任务提供了多个预定义提示词:

  • mk-connect:连接到 MikroTik:帮助你连接到路由器。
  • mk-report:系统报告:请求完整的系统状态和流量报告。
  • mk-get-route:路由表:专门请求当前 IP 路由表。
  • mk-get-interface:列出接口:专门请求所有已配置的接口。
  • mk-get-log:查看日志:请求最新的系统日志条目。
  • mk-awr:安全审计:启动对路由器的全面性能和安全审计。
配置

MikroTik 服务可以使用环境变量或 mk-connect 工具安全地管理凭据:

  • MK_USER:MikroTik 用户名(启动时提供主机地址则必需)
  • MK_PASSWORD:MikroTik 密码(启动时提供主机地址则必需)
启动参数

你可以选择通过命令行参数提供主机地址和安全设置:

  1. host:(可选)路由器的 IP 地址。
  2. secure:(可选)使用 SSL/TLS。默认值为 false。

如果提供了这些参数,服务将在启动时使用 MK_USER 和 MK_PASSWORD 自动尝试连接。

本地构建
cd src/mikrotik
npm install
npm run build
与 Claude Desktop 配合使用

将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "mikrotik": {
      "command": "npx",
      "args": [
        "-y",
        "@marcelo-ochoa/server-mikrotik",
        "192.168.88.1"
      ],
      "env": {
        "MK_USER": "ai_agent",
        "MK_PASSWORD": "ai_password"
      }
    }
  }
}

使用 Docker 的示例:

{
  "mcpServers": {
    "mikrotik": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "MK_USER=admin",
        "-e",
        "MK_PASSWORD=password",
        "mochoa/mcp-mikrotik",
        "192.168.88.1",
        "false"
      ]
    }
}

注意:参数和环境变量均为可选项。你可以稍后使用 mk-connect 进行连接。

演示

使用 mk-get 的信息:

  • interface
  • ip/address
  • ip/route
  • ip/route/rules
  • ip/firewall[address-list,filter,nat,mangle] 查找潜在安全风险和未使用的实体

查看 演示,了解如何与 Claude Desktop、Gemini CLI 和 Antigravity Code Editor 配合使用的示例。

MikroTik AWR 实际应用

请参阅 MikroTik AWR 实际应用,了解 mk-awr 工具为 MikroTik 路由器生成的自动工作负载存储库(AWR)风格报告示例,其中重点展示了性能指标和安全风险。

Docker

构建容器:

docker build -t mochoa/mcp-mikrotik -f src/mikrotik/Dockerfile .

运行容器:

docker run -i --rm -e MK_USER=admin -e MK_PASSWORD=mypassword mochoa/mcp-mikrotik 192.168.88.1

变更日志

请参阅变更日志,了解变更历史。

源码

与往常一样,此扩展的代码位于 GitHub,欢迎提出修改建议并参与贡献。

📜 许可证

对于新的贡献,本项目采用 Apache License 2.0 许可,现有代码则采用 MIT 许可。详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。