eos-mcp
This MCP server provides an interface to manage Arista EOS network devices via eAPI. Key capabilities include:
Server Status: Check server health and configuration with
health_check(no device connection required).Device Inventory: List registered devices with optional tag filtering (
get_router_list).Device Facts: Retrieve detailed facts (model, serial, EOS version, uptime, memory) for single or multiple devices in parallel (
get_device_facts,get_device_facts_batch); quick connectivity check withget_version.Command Execution: Run enable-mode commands on single devices (
run_command,run_commands) or across multiple devices in parallel (run_command_batch,run_commands_batch).Configuration Management: Fetch running-config (
get_config), view diffs against rollback checkpoints (get_config_diff), push configs via named sessions with dry-run and commit-timer (push_config), and manage sessions (list_config_sessions,confirm_config_session,abort_config_session).Diagnostics: Collect full
show tech-supportoutput (collect_tech_support) for deep troubleshooting.Health Monitoring: Run
daily_brieffor a comprehensive health report across devices, checking environment, errdisabled interfaces, uptime, MLAG status, and recent syslog alerts with severity ratings.
Click on "Install 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., "@eos-mcpshow running config on switch1.example.com"
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.
eos-mcp
English | 日本語
MCP server for Arista EOS device operations via eAPI.
Exposes EOS show commands, running-config retrieval, configuration push (via configure session with commit timer), and tech-support collection to MCP-compatible AI assistants.
Installation
pip install eos-mcpRelated MCP server: Network MCP Lab
Configuration
Copy config.ini.example to ~/.config/eos-mcp/config.ini and fill in credentials:
[DEFAULT]
username = admin
password = yourpassword
transport = https
verify = false
[switch1.example.com]
tags = main,dc1
[switch2.example.com]
tags = main,dc1Config file discovery order:
EOS_MCP_CONFIGenvironment variable./config.ini(current directory)~/.config/eos-mcp/config.ini
(Individual MCP tool calls may also override the path via a config_path
parameter.)
Usage
# Verify config and list devices
eos-mcp --check
# Test connectivity to a specific host
eos-mcp --check --check-host switch1.example.com
# Start MCP server (stdio transport)
eos-mcpTools
Tool | Description |
| Report server version and config status (lightweight; does NOT connect to devices) |
| List registered devices (optional tag filter) |
| Return structured facts for one device (model, serial, EOS version, uptime, memory) |
| Return device facts for multiple devices in parallel |
| Return EOS version string (quick connectivity check) |
| Run a single enable-mode command on one device |
| Run multiple enable-mode commands on one device |
| Run an enable-mode command on multiple devices in parallel |
| Run multiple enable-mode commands on multiple devices in parallel |
| Retrieve running-config |
| Show config diff vs rollback checkpoint |
| List configure sessions and their state |
| Push config via configure session (dry_run=True by default) |
| Confirm a pending commit timer session |
| Abort a pending session |
| Collect show tech-support output |
| Health check (environment, errdisabled, uptime, MLAG, recent syslog alerts) across multiple devices |
Development
Live smoke test
Unit tests check logic against fixtures; they cannot tell you that a tool has
stopped returning real data. scripts/smoke_test.py runs every registered
tool against the configured devices and fails on empty, malformed or error
answers:
# uses the same inventory file as the server (EOS_MCP_CONFIG)
uv run python scripts/smoke_test.py
uv run python scripts/smoke_test.py --only facts --tracebackRead-only.
push_config,confirm_config_sessionandabort_config_sessionare skipped by name, and a test enforces that.collect_tech_supportis skipped too — it changes nothing, but it is minutes of device CPU for an answer no assertion would read. The command-running tools are exercised withshow version: they accept enable-mode commands in general, and a smoke test must not be the thing that types one that matters.No payloads in the report. Tool names and statuses only; error text is redacted too, since every error here is prefixed with the device it came from and the payloads are configuration.
Nothing estate-specific in the specs. The device the per-host tools need is discovered at run time from the configured inventory, and skipped when it is empty. Two tests keep it that way: one refuses those parameters as literals, the other bans anything address-shaped anywhere in the file, because this repository is public.
Every probe refuses the
Error (<host>): ...line these tools return in place of raising — otherwise an unreachable device would read as a successful call.CI enforces the cheap half: a tool registered without a probe spec fails the build (
tests/test_smoke_probes.py), so adding a tool forces the question "how would we know it works?".scripts/smoke_harness.pyis the engine and holds no EOS knowledge: it is kept identical across the servers that share it, so fix engine bugs once and sync the file rather than patching this copy.
Requirements
Python >= 3.10
Arista EOS with eAPI enabled (
management api http-commands)Network access to port 443 (HTTPS) on target devices
License
Apache-2.0
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityCmaintenanceA Python-based MCP server that enables querying Cisco's Meraki Dashboard API to discover, monitor, and manage Meraki environments.2241MIT
- Flicense-qualityDmaintenanceMCP server for executing show commands and managing Cisco IOS-XE network devices via async SSH using Scrapli.5
- FlicenseAqualityBmaintenanceA local MCP server for interacting with a network lab, supporting read-only and configuration tools for devices like Arista EOS switches.6
- -license-quality-maintenanceEnables querying and interacting with Arista CloudVision via MCP, supporting both HTTP and gRPC connections.6
Related MCP Connectors
A basic MCP server to operate on the Postman API.
MCP server for Appcircle mobile CI/CD platform.
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/shigechika/eos-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server