MikroTik WiFi Users
MCP server for querying connected WiFi devices from MikroTik RouterOS, enriched with DHCP leases and ARP table entries.
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, defaultfalse)page— page number (default1)page_size— items per page (default50)
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 (supportsinterfacefilter anddetailedflag)get_device— get device details by MAC addresslist_wifi_interfaces— list WiFi interfacesget_system_info— get RouterOS system informationhealth_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 settingROUTEROS_SSL=trueand configuring a valid TLS certificate on your RouterOS device. See the MikroTik TLS documentation for setup instructions.
License
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.