Mist MCP Server
Reliable access to Juniper Mist from your AI tools, without writing code.
This project provides a production-grade MCP server that wraps the Mist API via mistapi, so Cursor and VS Code can call Mist safely through standard MCP tools.
Why this exists
MCP servers make API access simple and consistent for AI tools. This server centralizes connection and auth, validates configuration at startup, and exposes a tool registry so non-coders can use Mist through natural language.
Prerequisites
- Python 3.10+
- A Mist API token
Install
No manual install required for end users. The MCP runner bootstraps the local virtual environment on first run.
Configure
Create a .env file in this folder (see mist.env.example):
MIST_API_TOKEN=your_token_here
MIST_API_HOST=https://api.mist.com
MIST_API_TIMEOUT_SECONDS=30
Important: MIST_API_HOST must be the base host (no /api/v1). The server will call the Mist “self” endpoint at startup and exit immediately if the host or token is invalid.
Local use (Cursor)
- Open this project in Cursor.
- Make sure a
mcp.jsonfile exists at.cursor/mcp.json. This repo already
provides it, so you usually do not need to change anything.
- Use the configuration below:
{
"mcpServers": {
"mist": {
"command": "${workspaceFolder}/run-mcp.sh",
"args": [],
"envFile": "${workspaceFolder}/.env",
"transport": "stdio"
}
}
}
- Restart Cursor (or reload the window).
- Ask Cursor to call Mist tools, e.g. “list my orgs”.
Local use (VS Code)
- Open this project in VS Code.
- Make sure a
mcp.jsonfile exists at.vscode/mcp.json. This repo already
provides it, so you usually do not need to change anything.
- Reload the window and use your MCP client to call Mist tools.
Usage
- A tool registry is generated from the Mist SDK.
- Use
mist_search_toolsto find tools by keyword. - Use
mist_list_groupsto discover tool groups and filter search. - Use
mist_list_methodsto list methods in a group. - Use
mist_describe_toolto see parameters and details. - Use
mist_call_toolto execute by name with args/kwargs. - Regenerate the registry after SDK updates via
scripts/generate_tools.py.
Sponsored by Hamina
<a href="https://www.hamina.com/"> <img src="assets/hamina-logo.svg" alt="Hamina logo" width="240" height="50"/> </a>
Built while working at Hamina.
Development
pip install -e ".[dev]"
./.venv/bin/python scripts/generate_tools.py
pytest
ruff check .
ruff format .
mypy src
Contributing
We welcome good PRs. See CONTRIBUTING.md for guidelines.
License
Apache-2.0. See LICENSE.






