Apstra MCP Server

Apstra MCP Server

Enables natural language management of Juniper Apstra datacenter networks, including blueprints, virtual networks, connectivity templates, and deployment.

Category
Visit Server

README

Apstra MCP Server

A Model Context Protocol (MCP) server that provides tools for interacting with Juniper Apstra Fabric Manager APIs. Enables Claude and other MCP clients to manage datacenter network infrastructure through natural language commands.

Features

  • Blueprint Management: Create, retrieve, and delete blueprint configurations
  • Infrastructure Queries: Get rack, routing zone, and system information
  • Network Provisioning: Create virtual networks with advanced configuration options and remote gateways
  • Connectivity Templates: Manage connectivity templates and application endpoint assignments
  • Policy Management: Apply and remove connectivity template policies from application endpoints
  • Configuration Management: Check deployment status and deploy configurations
  • Protocol Monitoring: Monitor BGP and other protocol sessions
  • Anomaly Detection: Retrieve and analyze blueprint anomalies
  • Native Streaming Support: Real-time updates with Server-Sent Events

Quick Start

Local Usage (stdio)

# Create config file
cp apstra_config_sample.json apstra_config.json
# Edit with your Apstra server details

# Run with stdio transport
python3 apstra_mcp.py -t stdio -f apstra_config.json

Network Deployment (Streamable HTTP)

Docker (Recommended)

# Clone and configure
git clone <this-repo>
cd apstra-mcp-server
cp apstra_config_sample.json apstra_config.json
# Edit config with your Apstra details

# Start HTTP streaming server
docker-compose up -d

Direct Python

# Install dependencies
pip install -r requirements.txt

# Start streamable HTTP server
python3 apstra_mcp.py -t streamable-http -H 0.0.0.0 -p 8080 -f apstra_config.json

Installation

Prerequisites

  • Python 3.7+
  • Access to Juniper Apstra server
  • Valid Apstra credentials

Dependencies

pip install -r requirements.txt

Available Tools (21 total)

Health & Status Tools (2 tools)

  • health() - Server health check and Apstra connectivity status
  • formatting_guidelines() - Get formatting guidelines for network data presentation

Query Tools (12 tools)

  • get_bp() - Get blueprint information
  • get_racks(blueprint_id) - Get rack information
  • get_rz(blueprint_id) - Get routing zones
  • get_vn(blueprint_id) - Get virtual networks
  • get_ct(blueprint_id) - Get connectivity templates
  • get_app_ep(blueprint_id) - Get application endpoints for connectivity templates
  • get_system_info(blueprint_id) - Get system/device information
  • get_protocol_sessions(blueprint_id) - Get protocol sessions
  • get_anomalies(blueprint_id) - Get blueprint anomalies
  • get_remote_gw(blueprint_id) - Get remote gateways
  • get_diff_status(blueprint_id) - Get deployment diff status
  • get_templates() - Get available templates

Management Tools (3 tools)

  • deploy(blueprint_id, description, staging_version) - Deploy configurations
  • delete_blueprint(blueprint_id) - Delete blueprints
  • apply_ct_policies(blueprint_id, application_points) - Apply/remove connectivity template policies to application endpoints

Create Tools (4 tools)

  • create_vn(blueprint_id, security_zone_id, vn_name, virtual_gateway_ipv4, ipv4_subnet, ...) - Create virtual networks with advanced configuration options
  • create_remote_gw(blueprint_id, gw_ip, gw_asn, gw_name, local_gw_nodes, ...) - Create remote gateways
  • create_datacenter_blueprint(blueprint_name, template_id) - Create datacenter blueprints
  • create_freeform_blueprint(blueprint_name) - Create freeform blueprints

Security Model

stdio Transport (Default)

  • Secure by default with no network exposure
  • Uses configuration file credentials
  • Ideal for Claude Desktop integration

streamable-http Transport

  • Network-accessible with native FastMCP streaming capabilities
  • Automatic SSE upgrades for real-time updates
  • Single container deployment

Claude Desktop Configuration

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "apstra": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "fastmcp,httpx",
        "python3",
        "/path/to/apstra_mcp.py",
        "-f",
        "/path/to/apstra_config.json"
      ]
    }
  }
}

Update the paths to match your installation directory.

Usage Examples

With Claude Desktop

  • "Show me all blueprints in the system"
  • "Create a virtual network called 'web-tier' with gateway 192.168.1.1 and subnet 192.168.1.0/24"
  • "Get all connectivity templates in blueprint X"
  • "Apply connectivity template policy Y to interface Z"
  • "Show me application endpoints for connectivity templates"
  • "Deploy the staging configuration"
  • "Check for any anomalies in blueprint X"

Streaming HTTP Client

The server exposes native FastMCP endpoints on /mcp/* with automatic SSE upgrades for streaming responses.

Architecture

  • FastMCP Framework: Native transport system with automatic SSE streaming
  • Config-based Authentication: Simple stateless operation with direct Apstra API auth
  • Single Container: HTTP server on port 8080 with streamable-http transport

Documentation

  • DEPLOYMENT.md - Complete deployment guide with examples
  • CLAUDE.md - Technical implementation details and development guide

Troubleshooting

  • Authentication fails: Check credentials and server connectivity
  • Tools not appearing: Verify server startup in Claude Desktop logs
  • Transport errors: Ensure FastMCP version compatibility
  • Docker issues: Check docker-compose logs

License

This project is provided as-is for educational and demonstration purposes.


Blog Post: MCP for Datacenter Networks

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured