juniper-mist-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@juniper-mist-mcpshow alarms for acme_corp"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Juniper Mist MCP Server
⚠️ Juniper now offers an official MCP server for Mist.
Juniper has released their own MCP server at https://mcp.ai.juniper.net/mcp/mist with native integration for Claude Desktop.
We recommend using the official upstream server instead of this project. See the Juniper Mist MCP documentation for setup instructions.
This community project remains available for use cases that require multi-org MSP routing, write tools, or HTTP transport — features not yet covered by the upstream server. However, for standard single-org monitoring and troubleshooting, the official server is the better choice going forward.
MCP server for managing Juniper Mist networks with AI assistants. Monitor, troubleshoot, and configure customer networks through natural language — built for MSPs managing multiple organizations across regions.
Input: Natural language via Claude Desktop (or any MCP client) Output: Device stats, client data, alarms, WLAN configs, inventory, and more
AI Assistant ──▶ MCP Server ──▶ Juniper Mist API
(Claude, etc.) (multi-org (US, EU, GC1, GC2,
routing) APAC regions)Installation
Option 1: Install from PyPI (recommended)
pip install juniper-mist-mcpOption 2: Install with pipx (isolated environment)
pipx install juniper-mist-mcpVerify installation
juniper-mist-mcp --helpRelated MCP server: domotz-mcp
Setup
1. Get a Mist API Token
Log in to the Mist portal at https://admin.mist.com
Navigate to Organization → Settings → API Tokens
Create a new API token with appropriate scope
2. Configure Organizations
Create a .env file with your organization credentials:
# US-based org (default region)
MIST_TOKEN_acme_corp=your_token_here
# EU-based org
MIST_TOKEN_euro_client=your_token_here
MIST_REGION_euro_client=api.eu.mist.com
# Government org
MIST_TOKEN_gov_agency=your_token_here
MIST_REGION_gov_agency=api.gc1.mist.comEach org needs a MIST_TOKEN_<ORGNAME> variable. Region is optional — defaults to US (api.mist.com).
Supported Regions
Region | Endpoint |
US (default) |
|
EU |
|
Government Cloud 1 |
|
Government Cloud 2 |
|
Asia Pacific |
|
Usage
Run in stdio mode (Claude Desktop)
# Read-only mode (default — 10 tools)
juniper-mist-mcp
# With write tools enabled (14 tools)
juniper-mist-mcp --enable-write-toolsRun in HTTP mode (centralized deployment)
# Default port 8000
juniper-mist-mcp --transport=http
# Custom host and port
juniper-mist-mcp --transport=http --host=0.0.0.0 --port=8080
# HTTP + write tools
juniper-mist-mcp --transport=http --port=8080 --enable-write-toolsConfigure Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"juniper-mist": {
"command": "juniper-mist-mcp",
"env": {
"MIST_TOKEN_acme_corp": "your_token_here",
"MIST_REGION_acme_corp": "api.mist.com"
}
}
}
}Or if using a .env file alongside the install:
{
"mcpServers": {
"juniper-mist": {
"command": "juniper-mist-mcp",
"args": ["--env-file", "/path/to/your/.env"]
}
}
}Verify it works
In your AI assistant, ask it to list organizations. The mist_list_orgs tool should return your configured orgs:
[
{"name": "acme_corp", "region": "api.mist.com", "has_token": true},
{"name": "euro_client", "region": "api.eu.mist.com", "has_token": true}
]Available Tools
Read Tools (always available)
Tool | What it does |
| List configured customer orgs and regions |
| AP, switch, and gateway statistics |
| Service Level Experience metrics (throughput, latency, coverage) |
| Wireless client connection and bandwidth data |
| Infrastructure, security, and Marvis AI alarms |
| Config changes, user activities, system alerts |
| WLAN/SSID profiles and security settings |
| Radio frequency templates (channel, power, band) |
| Device inventory with type/status/site filters |
| Generated CLI config commands for a device |
Write Tools (opt-in with --enable-write-tools)
Tool | What it does |
| Modify WLAN/SSID configurations |
| Create, update, or delete 802.1X NAC rules |
| Manage WXLAN microsegmentation policies |
| Create, update, or delete security policies |
Every tool takes an org parameter to route to the right customer org and region.
Safety Model
Four layers prevent accidental network changes:
Read-only by default — write tools aren't registered unless you opt in
CLI flag — must explicitly pass
--enable-write-toolsMCP annotations — read tools tagged
readOnlyHint, write tools taggeddestructiveHintso the AI asks for confirmationPre-flight validation — UUID format checks and required field validation before any API call
CLI Reference
Flag | Description | Default |
| Enable 4 write tools for network modification | Disabled |
| Transport protocol: |
|
| Host for HTTP transport |
|
| Port for HTTP transport |
|
| Path to |
|
Troubleshooting
Error | Fix |
| Create a |
| Check |
| Use a supported region endpoint (see table above) |
| Token is invalid or expired — regenerate in Mist portal |
Write tools not appearing | Start server with |
Contributing
Build from source
git clone https://github.com/vahagn-madatyan/juniper-mist-mcp.git
cd juniper-mist-mcp
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
# Install with dev dependencies
pip install -e ".[dev]"
# Run from source
python -m mist_mcp.server --helpRun tests
pytest tests/ -v
pytest tests/ -v --tb=short
pytest tests/test_config.py -vProject structure
mist_mcp/
├── __init__.py # Package version
├── __main__.py # Module entry point
├── server.py # MCP server, tool definitions, CLI
├── config.py # .env loader, org routing, region validation
└── session.py # Mist API session managementArchitecture
FastMCP — MCP server framework handling tool registration, lifespan, and transport
mistapi SDK — Juniper Mist Python SDK for all API calls
Multi-tenant routing — each tool call includes an
orgparameter; the server maintains separate authenticated sessions per orgConditional tool registration — write tools are only registered when
--enable-write-toolsis passed, usingmcp.add_tool()with MCP annotations
Making a release
Releases are published to PyPI automatically via GitHub Actions when a version tag is pushed:
# Update version in pyproject.toml and mist_mcp/__init__.py
# Commit the version bump
git tag v0.2.0
git push origin v0.2.0The CI pipeline builds the distribution, runs tests, publishes to TestPyPI on every push, and publishes to PyPI on tags matching v*.
License
Available Tools
10 toolsmist_get_alarmsARead-only
Get alarms for an organization.
Returns alarms from the specified organization, including infrastructure, security, and Marvis AI-driven detections.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End time (ISO 8601 format or duration string). | |
| org | Yes | Organization name (must be configured in .env). | |
| limit | No | Maximum number of alarms to return (default: 100). | |
| start | No | Start time (ISO 8601 format or duration string like "1d"). | |
| status | No | Alarm status filter - "acked" for acknowledged, "unacked" for unacknowledged. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not contradict the readOnlyHint annotation (it states 'Returns alarms', a read operation). However, it adds no additional behavioral context beyond what the annotation already provides, such as rate limits, authorization needs, or possible side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no redundant words. It gets straight to the point without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a full input schema and an output schema, the description is adequate. It covers the high-level purpose and resource type, but does not explain return values (handled by output schema) or provide usage context like time range handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema already documents all parameters fully. The description adds no extra meaning or context for parameters; it only broadly describes the resource type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get'), resource ('alarms'), and scope ('for an organization'). It also specifies the types of alarms (infrastructure, security, Marvis AI-driven detections), which distinguishes it from sibling tools like mist_get_device_stats or mist_get_sle_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or usage context beyond the brief resource description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mist_get_client_statsBRead-only
Get client statistics for an organization.
Returns statistics for wireless clients in the specified organization, including connection details, bandwidth, and session information.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | Organization name (must be configured in .env). | |
| limit | No | Maximum number of clients to return (default: 100). | |
| duration | No | Time range for stats (default: "1d"). Options: "1h", "6h", "12h", "1d", "1w", "30d". | 1d |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description confirms a read operation. The description adds some context about the type of data returned (connection details, bandwidth, session info), but does not disclose other behavioral traits such as pagination or rate limits. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action. Every word adds value, with no redundant information. Highly efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a sufficient overview for a read-only tool with a well-documented input schema and an output schema (not shown but present). It could mention that the limit parameter controls pagination, but overall it is adequate for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add any additional meaning beyond the schema's parameter descriptions, which already detail the purpose of org, limit, and duration. No extra semantic value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves client statistics for an organization, specifying the resource (wireless clients) and the type of data (connection details, bandwidth, session info). While it doesn't explicitly differentiate from sibling tools like mist_get_device_stats, the focus on clients is sufficient for purpose clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like mist_get_device_stats or mist_get_sle_summary. The description only states the function without providing context on prerequisites, scope, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mist_get_device_config_cmdARead-only
Get generated CLI configuration commands for a device.
Returns the generated CLI configuration for a specific device in a Mist site. The configuration includes the complete device-specific commands needed to configure the device based on its settings and policies.
Note: site_id and device_id are Mist IDs (UUIDs), not names. You can obtain site_id from mist_get_site_events or by listing sites, and device_id from mist_get_inventory.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | Organization name (must be configured in .env). | |
| sort | No | Sort order for the configuration output. Options: "name", "type", "mac". | |
| site_id | Yes | Mist site ID (UUID) - must be a valid Mist site ID. | |
| device_id | Yes | Mist device ID (UUID) - must be a valid device ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not contradict the readOnlyHint annotation, but it adds minimal behavioral context beyond stating the output is 'generated' and 'complete'. No disclosure of performance, error behavior, or prerequisites is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a short opening sentence defines the purpose, followed by a brief explanation of the output. The note about IDs is efficiently placed. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and moderate complexity (4 parameters, 3 required), the description adequately covers purpose and ID guidance. It lacks explicit error conditions or prerequisites, but overall it is complete enough for an agent to use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by clarifying that site_id and device_id are UUIDs (not names) and referencing how to obtain them from other tools. This aids the agent beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'generated CLI configuration commands', specifying the action and output. It distinguishes from sibling tools that retrieve stats or summaries, ensuring the agent knows this tool returns configuration commands.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing CLI configuration for a device and provides guidance on obtaining site_id and device_id. However, it does not explicitly mention when not to use this tool or compare it to alternatives like mist_get_device_stats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mist_get_device_statsBRead-only
Get device statistics for an organization.
Returns statistics for all devices in the specified organization, including APs, switches, gateways, and other network devices.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | Organization name (must be configured in .env). | |
| duration | No | Time range for stats (default: "1d"). Options: "1h", "6h", "12h", "1d", "1w", "30d". | 1d |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=true, indicating a safe read operation. The description repeats this implicitly ('Get') but adds no further behavioral details like pagination, rate limits, authorization needs, or whether stats are real-time or aggregated. With annotations covering the core safety trait, the description adds minimal incremental transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first sentence states primary purpose, second elaborates on scope. No redundant or vague phrasing. Every sentence earns its place, making it highly efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, read-only, has output schema), the description covers the essentials. The existence of an output schema reduces the need to detail return values. Minor improvement would be to hint at common use cases or frequency of updates, but current level is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters (org, duration) fully described including type, defaults, and options. The description does not enhance parameter understanding beyond the schema; it only reiterates that results cover all devices. Per guidelines, baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves device statistics for an organization, specifying the resource ('device statistics') and verb ('Get'). It lists device types (APs, switches, gateways) which partially distinguishes it from sibling tools like mist_get_client_stats or mist_get_sle_summary. However, 'statistics' remains vague; more specificity about metrics would raise clarity to a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as mist_get_sle_summary or mist_get_client_stats. It does not mention prerequisites, context, or conditions for invocation. The agent must infer usage solely from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mist_get_inventoryARead-only
Search device inventory in an organization.
Returns devices from the organization inventory that match the specified filters. Supports filtering by device type, status, site, and name.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | Organization name (must be configured in .env). | |
| name | No | Partial name match filter. | |
| type | No | Device type filter - "ap" (access point), "gateway", or "switch". | |
| limit | No | Maximum number of devices to return (default: 100). | |
| offset | No | Pagination offset (default: 0). | |
| status | No | Device status filter - "online", "offline", or "provisioned". | |
| site_id | No | Filter by specific site ID (UUID). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description is consistent. Adds context beyond annotations: prerequisite (org must be configured in .env) and pagination via limit/offset. No mention of authorization or rate limits, but sufficient for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core purpose, no fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, return values are covered. Description includes purpose, filters, and prerequisite hint. No major missing aspects for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters have descriptions). Description merely repeats 'filters by device type, status, site, and name', adding no meaning beyond schema. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Search' and resource 'device inventory', clearly distinguishing from siblings like mist_list_orgs (lists orgs) and mist_get_device_stats (gets stats for a device).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for inventory queries with filtering, but does not explicitly exclude alternatives like mist_get_device_stats for individual device stats. Clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mist_get_rf_templatesARead-only
List RF templates in an organization.
Returns all RF (Radio Frequency) templates configured in the specified organization, including channel, transmit power, and band settings.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | Organization name (must be configured in .env). | |
| page | No | Page number for pagination (default: 1). | |
| limit | No | Maximum number of RF templates to return (default: 100). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds value by specifying that the tool returns channel, transmit power, and band settings, but does not disclose additional behavioral traits like pagination or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and contains no extraneous information. Every sentence is necessary and effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, output schema present, readOnly annotation), the description adequately covers what the tool does and what it returns. The pagination details are available in the schema, and the description complements this by summarizing the output content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters (org, page, limit). The description does not add further semantic guidance beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'RF templates', and specifies the scope 'in an organization'. It distinguishes itself from sibling tools like mist_list_orgs and mist_get_device_stats by focusing solely on RF templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (to list RF templates), but does not explicitly mention when not to use it or compare to alternatives. Since it's a specific list operation, the usage is implicitly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mist_get_site_eventsARead-only
Get events for an organization or site.
Returns system events from the specified organization or site, including configuration changes, user activities, and system alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End time (ISO 8601 format or duration string). | |
| org | Yes | Organization name (must be configured in .env). | |
| limit | No | Maximum number of events to return (default: 100). | |
| start | No | Start time (ISO 8601 format or duration string like "1d"). | |
| site_id | No | Optional site ID to filter events to a specific site. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description aligns as a read operation. It adds value by specifying the types of events returned (configuration changes, user activities, system alerts) and the flexibility of filtering by site_id. This extra context helps the agent understand what data to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and contains no redundant or superfluous information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and full parameter documentation, the description is largely complete. It outlines the resource type and scope. It could mention pagination or time range constraints, but those are covered in the schema. Lacks a brief note about ordering or rate limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter descriptions are already present. The tool description does not add any additional semantic meaning beyond what the schema provides. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves events for an organization or site, specifying the resource (events) and scope (org/site). It mentions event types (configuration changes, user activities, system alerts). However, it does not differentiate from sibling tools like mist_get_alarms or mist_get_device_stats, which might also retrieve event-like data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or contrasting use cases with sibling tools. The agent has no context to decide if this is the right tool for a specific event-related query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mist_get_sle_summaryARead-only
Get Service Level Experience (SLE) summary for a site.
Returns the SLE summary for a specific site, including metrics for throughput, latency, coverage, and capacity.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | Organization name (must be configured in .env). | |
| site_id | Yes | Mist site ID (UUID). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read. The description adds no further behavioral context (e.g., time bounds, caching, pagination). It merely restates what the tool returns, which is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and includes key metrics. Every word adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present (as indicated by context), the description sufficiently covers the return type (SLE summary with listed metrics). It could optionally mention additional details like time range, but is otherwise complete for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes parameters adequately (org, site_id). The description does not add extra meaning beyond stating 'for a site', which is redundant given the site_id parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get) and resource (SLE summary for a specific site), listing specific metrics (throughput, latency, coverage, capacity). It distinguishes itself from sibling tools like mist_get_device_stats and mist_get_client_stats by focusing on SLE summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when SLE summary is needed) but provides no explicit guidance on when not to use it or alternatives. It does not differentiate from sibling tools in terms of usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mist_list_orgsARead-only
List configured customer organizations and their Mist regions.
Returns a list of organizations from the configuration, including the organization name, region, and whether a token is present.
Returns: List of dicts with keys: name, region, has_token.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, which the description does not contradict. The description adds value by specifying the return format (list of dicts with keys: name, region, has_token), which goes beyond the annotation to clarify output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the main action in the first sentence and supplementary details in a separate paragraph. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and the presence of an output schema (implied by context signals), the description fully covers the tool's purpose and return format, making it complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100% (none). The description adds no parameter info since none exist, achieving the baseline score of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List configured customer organizations and their Mist regions.' The verb 'list' and resource 'customer organizations' are specific, and it distinguishes from sibling tools (e.g., device stats, alarms) by focusing on organization listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (listing orgs before other operations) but lacks explicit guidance on when to use this tool vs siblings or when not to use it. No alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mist_list_wlansARead-only
List WLAN profiles in an organization.
Returns all WLAN profiles (SSIDs) configured in the specified organization, including security settings, broadcasting configuration, and access policies.
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | Organization name (must be configured in .env). | |
| page | No | Page number for pagination (default: 1). | |
| limit | No | Maximum number of WLANs to return (default: 100). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond the readOnlyHint annotation by listing the types of data returned (security settings, broadcasting configuration, access policies). It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear, front-loaded sentences with no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and clear parameter descriptions, the description is mostly complete. However, it could explicitly mention pagination behavior, which is partially covered by the schema but not in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for org, page, and limit. The description does not add new meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists WLAN profiles (SSIDs) in an organization and specifies the returned details (security, broadcasting, access policies). However, it does not differentiate from sibling tools like mist_get_device_stats or mist_list_orgs, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not provide context for when to call this function or when to prefer a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.1.0- First observed
mist_get_alarms - First observed
mist_get_client_stats - First observed
mist_get_device_config_cmd - First observed
mist_get_device_stats - First observed
mist_get_inventory - First observed
mist_get_rf_templates - First observed
mist_get_site_events - First observed
mist_get_sle_summary - First observed
mist_list_orgs - First observed
mist_list_wlans
TDQS
Scored across 10 tools
Each tool targets a distinct Mist resource or metric (organizations, device stats, SLE summary, client stats, RF templates, alarms, site events, WLANs, inventory, device config). There is no functional overlap or ambiguity between tools.
All tools follow a consistent 'mist_[verb]_[noun]' pattern in snake_case. Two use 'list' for enumeration and eight use 'get' for specific data, maintaining a clear and predictable naming convention.
Ten tools is an appropriate scope for a Mist network management MCP server. It covers key read-only operations without being excessive or too minimal.
The tool set is entirely read-only, lacking create, update, or delete operations. Additionally, basic entity listings like sites or detailed device endpoints are missing, which limits full lifecycle coverage for the Mist domain.
Maintenance
Related MCP Connectors
- mttrlyOAuthcom.mttrly
AI-powered incident management and server monitoring via MCP.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for Juniper networks, enabling AI assistants to execute CLI commands, manage configuration, perform upgrades, and run diagnostics on Junos devices via STDIO transport.24Apache 2.0
- AlicenseAqualityAmaintenanceMCP server for Domotz network monitoring and management. Enables AI assistants to query network devices, alerts, and topology via the Domotz API.218 npmApache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for network operations that lets AI assistants interact with Cisco/Juniper network devices through safe, well-defined tools like compliance audits and configuration backups.MIT
- AlicenseAqualityDmaintenanceMCP server enabling AI assistants to interact with your LogicMonitor, providing 125 tools for comprehensive monitoring and management operations.7049 npm12AGPL 3.0