Nautobot MCP
Project description
Nautobot MCP
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.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a180951ddb9d16804650ef875426dbcb3c808fb3df70f59f153271bb7bb1649c
|
|
| MD5 |
cea28a4f6edd136059b6e3079e072428
|
|
| BLAKE2b-256 |
2108d0f2aac00cf211ccf6f40cdb57f0db2622594449bf9ecc9d79422cda4e1b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
878b8bdbdce583f7d1ad6fd67723990d1d2bddf5346f68381bad154d96ad4bef
|
|
| MD5 |
c7f308853836f7c65bad9fcee6f2c243
|
|
| BLAKE2b-256 |
504ac084019c66c85a37906a5aa1e0f0585f96ecda5003a955777b8ff2861d4b
|