Skip to main content

Nautobot MCP

Project description

Nautobot MCP

Nautobot Python License

This Nautobot app integrates the MCP (Model Context Protocol) server with Nautobot, providing AI-ready tools and interfaces for network automation and management.

Overview

Nautobot MCP enables AI assistants or applications to interact with your network data through a standardized protocol. The app runs an MCP server alongside Nautobot that exposes tools which can be used by AI systems.

https://modelcontextprotocol.io/introduction

Installation

1. Install the package

pip install nautobot-mcp

2. Add to INSTALLED_APPS in your Nautobot configuration

# In your nautobot_config.py
PLUGINS = [
    "nautobot_mcp",
    # ... other plugins
]

3. Configuration

Configure the app through Nautobot's configuration system:

# In your nautobot_config.py
PLUGINS_CONFIG = {
    "nautobot_mcp": {
        "MCP_PORT": 8005,  # MCP server port
        "MCP_HOST": "0.0.0.0",  # Default is 0.0.0.0
        "MCP_CUSTOM_TOOLS_DIR": "/path/to/your/custom/tools",  # Directory for custom tools
        "MCP_LOAD_CORE_TOOLS": False,  # Load built-in tools
    },
}

4. Run nautobot post upgrade

nautobot-server post_upgrade

Custom Tools

You can create your own custom tools by defining Python functions in the directory specified in MCP_CUSTOM_TOOLS_DIR.

Example custom tool:

# In /path/to/your/custom/tools/my_tools.py

def some_tool(param1: str, param2: str) -> dict:
    """Some tool description"""
    # Your implementation here
    return {"result": f"Tool result for {param1} and {param2}"}

The MCP server will automatically discover and register all function-based tools in the specified directory.

Deployment Options

Method 1: Manual Start

You can start the MCP server manually:

nautobot-server start_mcp_server

Method 2: Systemd Service (Recommended for Production)

Create a systemd service file at /etc/systemd/system/nautobot-mcp.service:

[Unit]
Description=Nautobot MCP Server
After=network-online.target
Wants=network-online.target

[Service]
User=nautobot
Group=nautobot
WorkingDirectory=/opt/nautobot
ExecStart=/opt/nautobot/venv/bin/nautobot-server start_mcp_server
Restart=on-failure
RestartSec=30
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Then enable and start the service:

sudo systemctl daemon-reload
sudo systemctl enable --now nautobot-mcp.service

Viewing Available Tools

You can view all registered tools in the Nautobot web interface at:

https://your-nautobot-server/plugins/nautobot-mcp/tools/

This page shows all available tools, their descriptions, module paths, and parameter specifications.

Tools

TODO

  • Add a way to route tool execution to a specific Nautobot worker.
  • Enhance the tool view in the Nautobot web interface to show tool usage statistics.
  • Create a docker container to run the MCP server.
  • Add tests.

License

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nautobot_mcp-0.1.2.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nautobot_mcp-0.1.2-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file nautobot_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: nautobot_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for nautobot_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 a180951ddb9d16804650ef875426dbcb3c808fb3df70f59f153271bb7bb1649c
MD5 cea28a4f6edd136059b6e3079e072428
BLAKE2b-256 2108d0f2aac00cf211ccf6f40cdb57f0db2622594449bf9ecc9d79422cda4e1b

See more details on using hashes here.

File details

Details for the file nautobot_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: nautobot_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for nautobot_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 878b8bdbdce583f7d1ad6fd67723990d1d2bddf5346f68381bad154d96ad4bef
MD5 c7f308853836f7c65bad9fcee6f2c243
BLAKE2b-256 504ac084019c66c85a37906a5aa1e0f0585f96ecda5003a955777b8ff2861d4b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page