MikroTik WiFi Users

MikroTik WiFi Users

MCP server for querying connected WiFi devices from MikroTik RouterOS, enriched with DHCP leases and ARP table entries.

Category
Visit Server

README

MikroTik WiFi Users

REST API and MCP server for querying connected WiFi devices from MikroTik RouterOS.

Connects to RouterOS via its REST API, enriches device data with DHCP leases and ARP table entries, and exposes everything through a FastAPI REST API and an MCP (Model Context Protocol) SSE endpoint.

Features

  • List connected WiFi devices with signal strength, data rates, and traffic stats
  • Enrich device data with hostnames and IPs from DHCP leases and ARP table
  • Filter devices by wireless interface
  • Default (compact) and detailed response modes
  • Paginated device listing - It's easy to get too much devices now
  • WiFi interface listing - Great if you have multiple APs and manage them through CAPsMAN
  • RouterOS system information - good for fast checks without opening app
  • MCP server with SSE transport (compatible with Open WebUI, Claude Code, etc.)
  • Separate API key authentication for REST and MCP endpoints

Requirements

  • Python 3.13+
  • uv package manager
  • MikroTik RouterOS device with WiFiWave2 and REST API enabled (port 80/443)

Setup

# Clone and install
git clone <repo-url>
cd mikrotik-wifi-users
uv sync

# Configure
cp .env.example .env
# Edit .env with your RouterOS credentials and API keys

Environment variables

Variable Description Default
ROUTEROS_HOST RouterOS device IP/hostname localhost
ROUTEROS_PORT REST API port 80
ROUTEROS_USER RouterOS username admin
ROUTEROS_PASSWORD RouterOS password
ROUTEROS_SSL Enable HTTPS false
API_KEY Bearer token for REST endpoints
MCP_API_KEY Bearer token for MCP endpoints
LOG_LEVEL Logging level INFO
DEBUG Enable debug mode false

Usage

Run locally

uv run uvicorn app.main:app --host 0.0.0.0 --port 8000

Run with Docker

docker compose up -d --build

The API listens on 127.0.0.1:8490 by default.

API endpoints

All endpoints except /health require a Bearer token in the Authorization header.

Method Path Description
GET /health Health check (public)
GET /devices List connected devices
GET /devices/{mac} Get device by MAC address
GET /interfaces/wifi List WiFi interfaces
GET /system/info RouterOS system information
GET /docs Swagger UI (public)

Query parameters for /devices

  • interface — filter by interface name (e.g. cap-wifi1)
  • detailed — include all fields (true/false, default false)
  • page — page number (default 1)
  • page_size — items per page (default 50)

MCP

The MCP server is available at /mcp/sse using SSE transport. Authenticate with MCP_API_KEY as a Bearer token.

Claude Code

Add to your MCP config:

{
  "mcpServers": {
    "mikrotik-wifi": {
      "type": "sse",
      "url": "http://localhost:8490/mcp/sse",
      "headers": {
        "Authorization": "Bearer <your-mcp-api-key>"
      }
    }
  }
}

Available MCP tools

  • list_devices — list connected devices (supports interface filter and detailed flag)
  • get_device — get device details by MAC address
  • list_wifi_interfaces — list WiFi interfaces
  • get_system_info — get RouterOS system information
  • health_check — check API and RouterOS connectivity

Security

Warning: By default, the connection to RouterOS uses plain HTTP (ROUTEROS_SSL=false). This transmits credentials and data in cleartext over the network. In production or untrusted networks, enable HTTPS by setting ROUTEROS_SSL=true and configuring a valid TLS certificate on your RouterOS device. See the MikroTik TLS documentation for setup instructions.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured