Mist MCP Server — New Org Automation
247
Important
This MCP server is purpose-built for **automating the initial configuration of a brand-new Mist organization**. It is not intended for general-purpose Mist management. A safeguard will be added to enforce this constraint.It requires a Mist Organization API Token with Super Admin privileges. User tokens and lower-privilege tokens are not supported.
For a general-purpose Mist MCP Server, refer to the Official Mist MCP Server.
MCP Server for automating the initial configuration of a brand-new Mist organization, designed for use with LLM applications like Claude Desktop and VS Code Copilot.
This server is intentionally narrow in scope:
The server exposes a focused set of tools grouped by workflow.
| Workflow | Tools | What they are used for |
|---|---|---|
| Account and navigation | mist_get_self, mist_get_org_or_site_info, mist_get_next_page, mist_get_constants | Resolve account details, discover IDs, follow pagination, and look up fixed Mist constants. |
| Device lookup | mist_search_device | Find devices by name, MAC, IP, serial, model, or other filters. |
| Configuration read | mist_get_configuration_objects, mist_get_configuration_object_schema | Inspect org or site configuration and discover valid schema fields before applying changes. |
| Configuration changes | mist_change_configuration_objects | Create, update, and delete supported configuration objects. |
| Events and audit | mist_search_events, mist_search_audit_logs | Investigate configuration events and audit history during the initial setup workflow. |
Requirements:
Install dependencies:
make init # Installs project dependencies and extracts the git submodule for mist_openapi
Run the server (STDIO mode, default):
uv run mistconfig-mcp
Options:
uv run mistconfig-mcp [OPTIONS]
OPTIONS:
-t, --transport MODE Transport mode: stdio (default) or http
--host HOST Only when `transport`==`http`, HTTP server host (default: 127.0.0.1)
-p, --port PORT Only when `transport`==`http`, HTTP server port (default: 8000)
-r, --response_format Only when `transport`==`http`, Response format: json (default) or string
-e, --env-file PATH Path to .env file
-d, --debug Enable debug output
-h, --help Show help message
TRANSPORT MODES:
stdio - Standard input/output (for Claude Desktop, VS Code)
http - HTTP server (for remote access)
Examples:
uv run mistconfig-mcp # Default: stdio mode
uv run mistconfig-mcp --debug # Enable debug output
uv run mistconfig-mcp --transport http --host 0.0.0.0 # HTTP on all interfaces
uv run mistconfig-mcp --env-file ~/.mist.env # Custom env file
Set environment variables directly or via a .env file. Requirements differ by transport mode:
| Variable | Required | Description |
|---|---|---|
| MIST_APITOKEN | Yes | Mist Organization API Token (Super Admin) |
| MIST_HOST | Yes | Mist API host (e.g. api.mist.com) |
| MIST_ENV_FILE | No | Path to .env file |
| MISTMCP_DEBUG | No | true/false (default: false) |
| Variable | Required | Description |
|---|---|---|
| MISTMCP_TRANSPORT_MODE | Yes | http |
| MISTMCP_HOST | No | HTTP bind address (default: 127.0.0.1) |
| MISTMCP_PORT | No | HTTP port (default: 8000) |
| MISTMCP_DEBUG | No | true/false (default: false) |
Note: In HTTP mode, Mist API credentials are provided by the client (e.g. Claude, VS Code) via HTTP headers or query parameters, not as environment variables.
Best for local usage with Claude Desktop or VS Code.
Configure the client (Claude Desktop, VS Code MCP extension):
{
"mcpServers": {
"mist-mcp": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/mistconfig-mcp",
"run",
"mistconfig-mcp"
],
"env": {
"MIST_APITOKEN": "your-org-superadmin-api-token",
"MIST_HOST": "api.mist.com"
}
}
}
}
Since most of the LLM Applications are not supporting the streamable-http transport mode natively, you can use the mcp-remote package to create a remote HTTP server that can be used by these applications.
Start the server:
uv run mistconfig-mcp --transport http --host 0.0.0.0
Configure the client (Claude Desktop, VS Code MCP extension):
{
"mcpServers": {
"mist-http": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://127.0.0.1:8000/mcp?cloud=api.mist.com",
"--header",
"Authorization:Bearer ${MIST_APITOKEN}",
"--transport",
"http-only"
],
"env": {
"MIST_APITOKEN": "your-api-token"
}
}
}
}
If your network uses SSL interception, add
"NODE_OPTIONS": "--use-system-ca"to theenvsection to trust the system CA certificates. It is also possible to add"NODE_TLS_REJECT_UNAUTHORIZED": "0"to disable TLS verification, but this is not recommended for production use.
MIT License. See LICENSE.
Thomas Munzer ([email protected]) GitHub: @tmunzer
Content type
Image
Digest
sha256:ab1e13451…
Size
132.1 MB
Last updated
4 months ago
docker pull tmunzer/mistconfig-mcp