JUHE API Marketplace
aiopnet avatar
MCP Server

MCP Nautobot Server

A Model Context Protocol server that integrates with Nautobot to provide network automation and infrastructure data to AI assistants like Claude, allowing them to query and interact with network Source of Truth systems.

1
GitHub Stars
8/23/2025
Last Updated
No Configuration
Please check the documentation below.

README Documentation

MCP-Nautobot

A Model Context Protocol (MCP) server for Nautobot network automation platform. This project allows AI assistants to interact with your Nautobot instance, providing access to network inventory data.

Disclaimer: This project is not officially affiliated with Anthropic, Claude, or Nautobot. It is an independent implementation of the Model Context Protocol for Nautobot integration.

Features

  • Asynchronous API: Built with modern async Python
  • MCP Compatible: Works with Claude and other MCP-compatible AI assistants
  • Nautobot Integration: Query your network inventory data directly
  • Site Information: Retrieve detailed site location data
  • Device Details: Access device specifications and configurations
  • Network Topology: Visualize network connections and relationships
  • Role-based Access: Control data access by user role
  • Flexible Configuration: Customizable data presentation

Requirements

  • Python 3.10+
  • Nautobot instance with API access
  • Nautobot API token with appropriate permissions

Installation

# Clone the repository
git clone https://github.com/aiopnet/mcp-nautobot.git
cd mcp-nautobot

# Create and activate a virtual environment
# If uv is not installed, follow instructions at: https://github.com/astral-sh/uv
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
uv pip install -e .  # Requires pip 21.3+ for editable installs with pyproject.toml

Configuration

Copy the example environment file and update it with your settings:

cp .env.example .env
# Edit .env with your favorite editor

Environment Variables

VariableRequiredDescriptionDefault
NAUTOBOT_URLYesURL of your Nautobot instanceNone
NAUTOBOT_TOKENYesAPI token with read permissionsNone
MCP_PORTNoPort for the MCP server to listen on8000
MCP_HOSTNoHost for the MCP server to bind to127.0.0.1
LOG_LEVELNoLogging level (DEBUG, INFO, WARNING, ERROR)INFO

⚠️ Security Note: Never commit your .env file to version control. It contains sensitive API tokens.

For advanced configuration options, see docs/CONFIGURATION.md.

Usage

Running the Server

# Start the MCP server
python -m mcp_nautobot.server

# Or using the provided CLI
mcp-nautobot-server

The server will start on http://127.0.0.1:8000 by default.

Integrating with Claude Desktop

  1. Open Claude Desktop and navigate to Settings > Tools > Configure Custom Tools
  2. Add a new tool with the following details:
    • Name: Nautobot Network Data
    • Description: Access network inventory data from Nautobot
    • Schema Type: MCP
    • Endpoint URL: http://127.0.0.1:8000 (or your custom host/port)
  3. Save and test the connection

Now you can ask Claude questions about your network inventory:

  • "What sites do we have in the US West region?"
  • "Show me all devices in the Chicago datacenter"
  • "List all Cisco switches in our network"
  • "What's the IP address of the core router in Atlanta?"

Developer Guide

Testing

# Install development dependencies
uv pip install -e ".[dev]"

# Run tests
pytest

# Run tests with coverage
pytest --cov=mcp_nautobot

Code Style and Linting

This project follows PEP 8 guidelines and uses Black and isort for formatting.

# Format code
black mcp_nautobot tests
isort mcp_nautobot tests

# Lint code
flake8 mcp_nautobot tests
mypy mcp_nautobot

Roadmap

  • Device Configuration Retrieval: Access running device configurations
  • Topology Visualization: Generate network maps and diagrams
  • Multi-tenant Support: Enhanced role-based access control
  • Circuit Information: Data about WAN circuits and providers
  • Performance Data: Historical performance metrics integration

Contributing

Contributions are welcome! Please check out our Contributing Guide to get started.

If you encounter any issues or have feature requests, please open an issue.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements


## Troubleshooting

If you encounter issues, check the [Troubleshooting Guide](docs/TROUBLESHOOTING.md) or open an issue on GitHub.

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source