Skip to main content
Glama

hpe-networking-mcp — kit de herramientas MCP para HPE Networking

License Python MCP CI Docs Release Image

banner de hpe-networking-mcp que muestra 6.144 operaciones generadas, 6.728 herramientas backend y tres herramientas de router mínimas, con nueve superficies de plataforma y RAG local opcional

El banner refleja el catálogo backend actual: una amplia superficie de herramientas se mantiene disponible bajo demanda, mientras que el cliente MCP en sí solo ve tres herramientas de router por defecto.

Servidor Model Context Protocol (MCP) de bajo consumo de tokens para la automatización de HPE Networking: Aruba Central, HPE GreenLake Platform (GLP), ClearPass, Juniper Mist, Apstra, automatización de la migración de ArubaOS 8, EdgeConnect, HPE Aruba UXI y Axis Atmos Cloud.

MCP permite que un cliente de IA —Claude Code, Copilot, Cursor, VS Code o cualquier otro host compatible con MCP— acceda a un conjunto de herramientas común en lugar de un plugin específico por proveedor. hpe-networking-mcp es uno de esos servidores: apunta cualquier cliente MCP a él y expone un catálogo buscable de operaciones de redes de HPE detrás de una única superficie, ligera y de bajo consumo de tokens.

hpe-networking-mcp ofrece a los clientes de IA compatibles con MCP una forma de bajo consumo de tokens para buscar documentación de Aruba/HPE, consultar los detalles exactos de OpenAPI, inspeccionar el estado de Central, ejecutar flujos de trabajo de resolución de problemas, gestionar la configuración, llevar a cabo migraciones protegidas de ArubaOS 8 y utilizar operaciones protegidas de GreenLake Platform. Se basa en llamadas REST directas con httpx.

Aquí puede ver el recorrido visual completo de esta misma información —selector de audiencia, diagramas y flujo de seguridad de escritura— en el sitio hpe-networking-mcp GitHub Pages. Este README se mantiene intencionadamente breve; las guías canónicas viven en docs/.

Por qué importa el router

Apunte su cliente MCP a un servidor: src/hpe_networking_mcp/mcp_servers/tool_router.py. El perfil minimal recomendado mantiene la lista de herramientas visibles para el cliente en tres entradas mientras sigue permitiendo acceder al catálogo backend completo:

  1. find_tool — descubre la herramienta backend adecuada.

  2. invoke_read_tool — ejecuta llamadas de solo lectura.

  3. invoke_tool — ejecuta únicamente llamadas de escritura o destructivas intencionadas.

Related MCP server: Network AI Assistant

Para quién es

Eres...

Empieza por

Un usuario nuevo de MCP

El inicio rápido sin credenciales en cinco minutos que está debajo, y después Primeros pasos

Un operador de red de Aruba

Prompts de ejemplo y flujos de trabajo de producto

Una persona que contribuye a hpe-networking-mcp

Cómo funcionan MCP y RAG, Descripción de la arquitectura y Guía de contribución

Inicio rápido sin credenciales en cinco minutos

Verifica la instalación y arranca el servidor HTTP de MCP antes de añadir credenciales de Aruba Central o GreenLake Platform.

Opción A — extraer la imagen publicada (sin descargar el repositorio):

docker run -d --name hpe-networking-mcp \
  -p 127.0.0.1:8010:8010 \
  -e MCP_HOST=0.0.0.0 \
  -e MCP_ALLOWED_HOSTS='127.0.0.1:*,localhost:*' \
  -e MCP_ALLOWED_ORIGINS='http://127.0.0.1:*,http://localhost:*' \
  ghcr.io/secure-ssid/hpe-networking-mcp:latest

Cuando el arranque termine (cuestión de segundos), curl http://127.0.0.1:8010/livez responderá {"status":"ok"}. La publicación de bloqueo por bucle conver. mantiene el servidor fuera de tu LAN; la forma de permitidos con host:* es necesaria siempre que MCP_HOST no sea loopback. La imagen incluye el índice de especificaciones OpenAPI compilado durante el build; la clasificación de búsqueda semántica además necesita un ensamblado adicional de ingesta (--build-arg INSTALL_EXTRAS=ingestion, ver Producción deployment).

Opción B — compilar desde el código fuente (añade el asistente de asistente de configuración, diagnósticos de doctor y herramientas de índice locales):

git clone https://github.com/secure-ssid/hpe-networking-mcp.git
cd hpe-networking-mcp
python3 scripts/setup_wizard.py --yes --skip-credentials
uv run hpe-mcp-doctor
MCP_PORT=8010 bash scripts/run_http_router.sh

Resultados esperados:

  • El asistente imprime cada fase completada y termina con un resumen de configuración completa; no se realizan llamadas a Central/GLP. En hosts Windows, compila y ejecuta desde una shell con finales de línea LF (WSL2 o un checkout configurado): los checkouts con CRLF rompen los scripts de entrada dentro de los builds Docker.

  • doctor.py informa de las comprobaciones locales de dependencias, rutas de configuración e índice: todo lee OK o enumera qué corregir, sin llamar a ninguna API del proveedor.

  • El router HTTP imprime una línea Uvicorn running on http://127.0.0.1:8010 y sigue ejecutándose en primer plano.

Conecta cualquier cliente compatible con MCP a http://127.0.0.1:8010/mcp y, a continuación, prueba una llamada de descubrimiento sin credenciales:

find_tool("list Aruba Central devices")

Resultado esperado: las coincidencias ordenadas se leen directamente del índice de herramientas local que acaba de construir el asistente; cada una está anotada con su capacidad y estado de compuerta de escritura. No se contacta con ninguna API del proveedor.

Conectarlo en tu cliente

Apunta cualquier cliente compatible con MCP a http://127.0.0.1:8010/mcp (o una configuración stdout de hpe-mcp-router) y verá solo las tres herramientas de enrutador. Configuraciones listas para copiar y pegar para Claude, Pélop, Vesyap, Cursor y otros viven en Recetas de clientes; los ejemplos incluidos están en examples/mcp-clients/.

La búsqueda de documentación es una compilación local aparte

ask_docs y el resto de la superficie de RAG necesitan un corpus de texto que este proyecto deliberadamente no incluye. Ese corpus es documentación extraída de proveedores, y no republicarla es una decisión nuestra; consulta ingestion/source_manifest.json, que siempre ha dicho: "No commit scraped content". Constrúyelo tú mismo, bajo tu propio aceptación de los términos de cada proveedor:

uv run --extra ingestion python ingestion/ingest_docs.py

Presupuesta también el tiempo. El rastreo se mide en horas, y la primera consulta de RAG descarga además el modelo de incrustACIÓN nomic-embed-text-v1.5 (de ~250 MB) en tu caché de Hugging Face. Sin credenciales no es igual que sin conexión: lo anterior de inicio no requiere credenciales de proveedor, pero la construcción del corpus y la primera consulta en ambos casos necesitan acceso a la red.

Seguridad de escritura de un vistazo

  • find_tool solo busca en el catálogo local de herramientas; nunca llama a una API de proveedor.

  • invoke_read_tool bloquea cualquier herramienta backend que no esté marcada como solo lectura.

  • invoke_tool está deliberadamente marcada como destructive porque también puede ejecutar herramientas backend de escritura/destructivas — úsala solo cuando una escritura sea lo que se busca.

  • Usa dry_run=True primero, cuando se soporte; la ejecución real requiere entonces o confirm=True o que MCP lo pida, según el esquema de la herramienta.

  • Las escrituras son opt-in en todas las platafoformas, Central incluesta: con el perfil predeterminado HPE_MCP_ACCESS_PROFILE=custom una puerta de escritura de cada herramienta queda cerrada hasta que él la ajustado. Usa safe-read-only para bloquear toda escritura independientemente de las puertas de cada plataforma, o full-read-write para habilitar las escrituras normales en todas las plataformas cargadas.

  • El modo lectura/escritura completa no omite el modo dry-run, la confirmación, la intervención del MCP ni otros salvaguardados específicos, como la exclusiva puerta de deshacer de AOS8.

  • Las credenciales están en config/credentials.yaml o en variables de entorno, y nunca se confiesen.

| Variable | El valor por defecto | Effect | | ---------------------------- | ---------------------- | history--------------------------------------------------------------------------------------- | | HPE_MCP_ACCESS_PROFILE | custom | safe-read-only deniega todas las escrituras; full-read-write permite todas; custom usa las puertas por plataforma que aparecen abajo | | HPE_MCP_<PLATFORM>_WRITES | 0 | Establece 1 para exponer las herramientas de escritura y destructivas de esa plataforma. |

Las operaciones destructivas (reboot_device, disconnect_client) comparten la misma compuerta que las escrituras; no existe un nivel "operativo" separado que la evite.

Ver Tool router para el modelo completo de discovery / dispatch / write-safety.

Proyecto snapshot

Tool catalog

Perfiles no aditivos: 380 opciones fundamentales / 2,842 opcionales de solo reading / 5,822 opcionales de lectura-escritura; total backend de API REST/OpenAPI de plataforma: 6,711; Central Streaming de protocolo: 1; estado-desde salud del sitio multiplataforma: 1; índice backend completo: 6,728; direct-all: 6,736.

Motor de intentos (API de plataforma)

3,159 lectura / 165 diagnóstico / 2,545 escritura / 842 destructivas

RAG

392,471 fragmentos de texto, de proa a poesía, en LanceDB, extraídos de 30 fuentes con rastreo

Búsqueda estructural

2,734 endpoints / 6,363 esquemas / 31,432 campos / 104 avisos / 345 registros de ciclo de vida

Proveniente de API

Waste ReadMe registries, fuentes oficiales de Mist/Apstra, firmas editables de MMM y SNAXL, Axis con anclado SHA

Plataformas opcionales

ClearPass, Mist, Apstra, AOS8, EdgeConnect, UXI, Axis Atmos Cloud y las herramientas de diagramas design sin credenciales

Seguridad

Puertas de escritura por plataforma, dry-run + confirmación, controles HTTP de host/origen y bearer token, y config de live-test con credenciales.

Todas las marcas mencionadas y los componentes: OpenAPI, SNXXX, hpe-router.

Los recuentos completos por backend se encuentran en el Catálogo de herramientas. Consulta las notas de la versión 0.9.0 para conocer todo lo añadido en la última versión etiquetada y la matriz de brechas de capacidad para ver comparaciones reproducibles de herramientas/benchmarks.

Guías orientadas a tareas

Necesidad

Guía

Configuración completa, credenciales y conexión del cliente MCP

Primeros pasos

Configuración de cliente stdio o HTTP streamable para copiar/pegar

Recetas de cliente MCP

Modos del enrutador, conjuntos de herramientas y envío seguro en profundidad

Enrutador de herramientas

Prompts reales con las formas de llamada esperadas

Ejemplos de prompts

Activar ClearPass, Mist, Apstra, AOS8, EdgeConnect, UXI o Axis

Inicio de productos opcionales

Ruta de trabajo específica por producto con tipos de flujo

Flujos de trabajo por producto

Solucionar problemas de configuración, credenciales, HTTP o catálogo

Solución de problemas

Arquitectura, flujo de datos y diagramas de seguridad

Descripción general del sistema

Recuento de herramientas y cobertura de cada backend

Catálogo de herramientas

La vista visual completa basada en tareas

hpe-networking-mcp GitHub Pages

Todas las páginas de documentación, agrupadas por finalidad

docs/README.md

Migrar desde secure-ssid/centralmcp

MIGRATION.md

Contribuir, obtener soporte o reportar un problema de seguridad

CONTRIBUTING.md, SUPPORT.md, SECURITY.md

Historial de versiones

CHANGELOG.md

Conceptos esenciales de la configuración local

El perfil de cliente MCP predeterminado se mantiene ligero:

HPE_MCP_ROUTER_MODE=minimal
HPE_MCP_TOOLSETS=central,glp,rag

Activa los productos opcionales solo cuando sean necesarios:

HPE_MCP_ACCESS_PROFILE=custom
HPE_MCP_PRODUCTS=clearpass,mist,apstra,aos8,edgeconnect,uxi,axis,design
HPE_MCP_PRODUCT_ACCESS=read-only

Producto

Variables

ClearPass

CLEARPASS_BASE_URL, CLEARPASS_API_TOKEN

Juniper Mist

MIST_HOST, MIST_API_TOKEN

Apstra

APSTRA_BASE_URL, preferentemente APSTRA_USERNAME/APSTRA_PASSWORD, opcional APSTRA_API_TOKEN

ArubaOS 8

AOS8_BASE_URL, preferentemente AOS8_USERNAME/AOS8_PASSWORD, opcional AOS8_API_TOKEN, opcional AOS8_CLIENT_IP, opcional AOS8_SESSION_TTL_SECONDS

EdgeConnect

EDGECONNECT_BASE_URL, EDGECONNECT_API_TOKEN, opcional EDGECONNECT_AUTH_HEADER, EDGECONNECT_AI_SESSION_AUTHORIZATION específica del endpoint

HPE Aruba UXI

UXI_CLIENT_ID, UXI_CLIENT_SECRET, opcional UXI_BASE_URL, opcional UXI_TOKEN_URL

Axis Atmos Cloud

AXIS_BASE_URL, AXIS_API_TOKEN

Diagramas de diseño de red (Draw.io / Graphviz / NeXt)

ninguno requerido; opcional HPE_MCP_DIAGRAM_ICON_DIR

Consulta la matriz de productos opcionales para conocer el modelo completo de configuración y seguridad.

Para una sesión de confianza y con plena capacidad de escritura, usa python3 scripts/setup_wizard.py --access-profile full-read-write para que todos los controles heredados queden alineados, o usa el archivo autónomo examples/mcp-clients/stdio/full-read-write.mcp.json.

.claude/launch.json incluye un perfil de inicio mínimo correspondiente para hpe-networking-mcp para el uso diario. find_tool omite los esquemas JSON completos de forma predeterminada; solicita include_schema=true solo cuando un cliente necesite obtener la forma completa de los parámetros.

Compila o actualiza el índice de herramientas del enrutador y la base de datos de especificaciones de API. Ambos se derivan de las especificaciones OpenAPI incluidas en este repositorio, por lo que se reconstruyen de forma determinista y no necesitan scraping:

uv run python scripts/ingest_tools.py --products all

El corpus de prosa de RAG se construye por separado con ingestion/ingest_docs.py, como se describe en la guía de inicio anterior. No se distribuye como un recurso de la versión.

Consulta Primeros pasos para las credenciales, la selección de la región, las variables de entorno de productos opcionales y la ruta completa de ingesta/refresco.

Modo HTTP streamable

MCP_PORT=8010 bash scripts/run_http_router.sh

A continuación, apunta cualquier cliente compatible con MCP a http://127.0.0.1:8010/mcp. El servidor también ofrece los endpoints /livez, /readyz y /healthz. Las interfaces no loopback obligan a especificar MCP_ALLOWED_HOSTS/MCP_ALLOWED_ORIGINS y pueden protegerse con MCP_HTTP_BEARER_TOKEN. Consulta las Recetas de cliente MCP para ver configuraciones de stdio y HTTP listas para copiar y pegar.

Estructura del proyecto

src/hpe_networking_mcp/mcp_servers/     Low-token router + Central/GLP/RAG/optional-product servers
src/hpe_networking_mcp/pipeline/        httpx clients, 8-stage migration pipeline, SSID helpers
ingestion/       Docs/API scraping and LanceDB + SQLite index builders
docs/            Setup, router, architecture, product, and release guides
scripts/         Setup wizard, doctor wrapper, HTTP router helper, release validation
tests/           Unit, integration, and RAG eval coverage
config/          Credentials template; real credentials stay git-ignored
examples/        Tested, non-secret MCP client/prompt/runbook configuration examples
run_pipeline.py  Checkout wrapper for `hpe-mcp-run-pipeline`
run_ssid.py      Checkout wrapper for `hpe-mcp-run-ssid`

El mapa completo del repositorio, incluidas las rutas generadas o ignoradas por git, se encuentra en Descripción general del sistema.

Validación

uv run pytest tests/unit -q
uv run python scripts/validate_release.py --catalog-products all --strict-tool-index --min-tools 6711

--min-tools 6711 es el límite mínimo de compatibilidad de la API de la plataforma (las herramientas de la API de plataforma expuestas al proveedor, 6.711), no el total completo de backend registrados de 6.728, que también incluye la herramienta de Central Streaming solo de protocolo, el agregador de plataforma cruzada site-health, el diagnóstico local GLP preflight y las herramientas locales sin credenciales; la validación se supera al alcanzar el límite o superarlo. Consulta el Catálogo de herramientas para conocer ambos totales.

El asistente de versión ejecuta las pruebas unitarias, la evaluación opcional de RAG/API cuando existen índices, las verificación de límites del catálogo de herramientas y las comprobaciones de actualización del índice de herramientas local. Las pruebas unitarias también incluyen protecciones estáticas para el código activo de MCP/pipeline, los ejemplos de configuración de MCP de bajo token incorporados, los archivos de configuración de solo local, las rutas de la documentación del router y del conjunto de herramientas, las herramientas GET genéricas de solo lectura acotadas, los límites de lista de MCP por defecto, los límites de top_k de la búsqueda RAG y de la búsqueda general, las afirmaciones públicas sobre el número de herramientas, los docstrings que comunican el número de herramientas, las comprobaciones de hechos documentales del renderizado de RAG/índice, los enlaces e imágenes de Markdown locales rastreados, el sitemap y metadatos de robots de Pages, los argumentos de ejemplo documentados para el router, las tablas de nombres de herramientas de trabajo de flujo de productos y las tablas de variables de entorno de productos opcionales del asistente.

Proyectos relacionados y agradecimientos

hpe-networking-mcp es un kit de herramientas MCP independiente de HPE Networking, derivado delos proyectos oficiales del ecosistema MCP y del trabajo de la comunidad:

hpe-networking-mcp es un proyecto comunitario independiente. No es un producto oficial de HPE o HPE Aruba Networking y no cuenta con el respaldo ni la asistencia de HPE.

Licencia

MIT - consulta la licencia del repositorio. La metadata de API generada y las referencias de implementación ascendentes están documentadas en THIRD_PARTY_NOTICES.md.

Available Tools

3 tools
find_toolA
Read-onlyIdempotent

Find tools by query. Combines semantic search + tool-name keyword match.

Call this first when you need an action. The returned name is what you pass to invoke_read_tool for read-only tools or invoke_tool for writes. Results are deduplicated; exact METHOD /path or operationId matches are annotated match='exact' (including generated-only tools disabled by the current profile), semantic matches match='semantic', name-overlap matches match='keyword', and safety flags mirror backend ToolAnnotations. Results are compact by default; set include_schema=True only when you need the full JSON schema for a selected tool. Optional platform, server, normalized capability, curated/generated origin, and exact OpenAPI operation-ID filters apply to exact, keyword, and semantic matches.

Args: query: What you want to do. e.g. "create a VLAN", "disconnect a client". top_k: 1-10 results (default 5). include_schema: Include full JSON schemas in results. Defaults to False to keep MCP responses compact. platform: Filter by normalized platform, such as central, glp, mist, clearpass, or apstra. server: Filter by exact backend server name, such as central-monitoring. capability: Filter by read, diagnostic, write, or destructive. origin: Filter by curated or generated implementation. operation_id: Filter by an exact generated OpenAPI operationId.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo
originNo
serverNo
platformNo
capabilityNo
operation_idNo
include_schemaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even beyond the readOnly, openWorld, idempotent, and destructive annotations, the description discloses deduplication behavior, the exact/semantic/keyword match categories, inclusion of generated-only disabled tools, safety-flag provenance, and compact-by-default responses. This is substantial behavioral transparency and does not conflict with any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the most important instructions ('Call this first'), followed by the dispatch contract, match behavior, filters, and parameter documentation. Despite its length, the content is dense with useful detail and parallel in structure, making it well organized for an 8-parameter discovery tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters, multiple filter dimensions, sibling routing, and a rich output schema, the description is complete: it covers when to call it, what the results contain, how matches are labeled, how to control schema verbosity, and how to dispatch the selected tool. Nothing critical is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the Args section fully compensates. It defines all 8 parameters, giving query example usage, top_k range and default, include_schema trade-offs, platform/server examples, capability values, origin values, and operation_id meaning. The description therefore adds crucial semantics that the schema alone entirely lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific action ('Find tools by query') and explains the search mechanism ('semantic search + tool-name keyword match'). It distinguishes itself from the sibling invoke tools by stating that the returned `name` is the value to pass to invoke_read_tool or invoke_tool, so the purpose is unmistakably a discovery tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description is prescriptive: 'Call this first when you need an action.' It also tells the agent when to use include_schema ('only when you need the full JSON schema'), when to keep responses compact, and how to route a discovered tool to the correct sibling. It also explains the conditions under which filters should be applied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

invoke_read_toolA
Read-onlyIdempotent

Call a read-only Aruba tool by name (from find_tool).

This refuses tools that are not annotated read-only. Use invoke_tool only for write/destructive tools after explicit user intent.

Args: cursor: Opaque next_cursor value from a previous truncated response, to resume it from where it left off. Only ever returned by this tool for capability "read" tools -- it is process-local (invalidated by a server restart), integrity protected, time-limited, and bound to this exact tool name and these exact arguments. A malformed/tampered/expired/mismatched cursor returns an error and never reaches the backend.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
cursorNo
argumentsNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral detail beyond the annotations: it refuses non-read-only tools, and thoroughly explains cursor semantics including process-locality, integrity protection, time-limits, binding to tool name/arguments, and error behavior for invalid cursors. This goes well beyond the readOnlyHint/idempotentHint annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and usage guidance, followed by a structured 'Args' section that details cursor behavior. The cursor explanation is long but necessary and well-organized. Overall, it is appropriately concise without being under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a dispatcher tool with no output schema, the description covers the primary use case, restrictions, and error behavior for cursors. It could mention how arguments should be structured or what the return format looks like, but these are somewhat incidental given the tool's nature. It is sufficiently complete for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The cursor parameter is explained in great detail, which is crucial for its opaque nature. However, the 'arguments' parameter is not described at all beyond the schema, and 'name' is only implied as coming from find_tool. With 0% schema description coverage, the description partially compensates but leaves gaps for the arguments parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it calls a read-only Aruba tool by name, which is a specific verb-resource pairing. It distinguishes itself from the sibling invoke_tool by explicitly limiting to read-only tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this tool for read-only tools and to use invoke_tool for write/destructive tools after explicit user intent. This provides clear when-to-use and alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

invoke_toolA
Destructive

Call an Aruba tool by name (from find_tool). Arguments is a kwargs dict.

Example: invoke_tool("create_vlan", {"vlan_id": 200, "vlan_name": "Guest"})

Dispatches through the owning backend's MCPServer tool manager, so arguments get MCPServer validation/coercion and the router's request Context is forwarded — this is what lets the async, ctx-requiring destructive ops tools (reboot_device/port_bounce/poe_bounce/disconnect_client) reach their confirmation elicitation. (MCPServer injects ctx here and strips it from the published schema, so callers only pass name + arguments.)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
argumentsNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description reveals that arguments go through MCPServer validation/coercion, the router's request Context is forwarded, and destructive tools reach confirmation elicitation. This is rich behavioral detail that significantly helps an agent anticipate side effects and prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, followed by an example and then technical details. It is slightly dense but every sentence contributes value; the example and the explanation of ctx injection are both necessary for correct use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's generic nature and absence of an output schema, the description covers purpose, usage, and behavior thoroughly. It does not mention return values or error handling, but for a dynamic dispatcher these may be tool-specific and not appropriate to detail. Overall, it is sufficiently complete for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description compensates by explaining 'Arguments is a kwargs dict' and providing a working example. It clarifies that name comes from find_tool and that only name + arguments are passed. This adds meaningful semantics beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear, specific action: 'Call an Aruba tool by name (from find_tool).' It provides a concrete example (invoke_tool("create_vlan", {...})) and distinguishes itself from siblings by mentioning its role in dispatching destructive ops tools, which is not true of invoke_read_tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this after find_tool to call any tool, and it explains how the dispatch works. However, it does not explicitly mention when to prefer invoke_read_tool or provide exclusion criteria, so it stops short of full guidelines.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool has a clearly distinct role: find_tool for discovery, invoke_read_tool for read-only execution, and invoke_tool for write/destructive execution. No overlapping purposes or ambiguous boundaries.

Naming Consistency4/5

Names follow a consistent snake_case verb_noun pattern. However, 'invoke_tool' is slightly ambiguous as it implies general invocation but actually handles only write/destructive tools, while 'invoke_read_tool' explicitly names its read-only scope.

Tool Count4/5

With only three tools, the set is minimal but appropriate for a meta-server that discovers and dispatches a larger underlying tool surface. It is not overly thin given the wrapper purpose.

Completeness5/5

The three tools form a complete workflow: find a tool, invoke read-only, or invoke write/destructive. No essential meta-operation is missing for the stated purpose of acting as a gateway.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/secure-ssid/hpe-networking-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server