MCP Nautobot
   
Nautobot网络自动化平台的模型上下文协议(MCP)服务器。该项目允许AI助手与您的Nautobot实例交互,提供对网络库存数据的访问。
免责声明: 该项目与Anthropic、Claude或Nautobot没有正式关联。它是Nautobot集成的模型上下文协议的独立实现。
特性
- 异步API:使用现代异步Python构建
- MCP兼容:与Claude和其他兼容MCP的AI助手配合使用
- Nautobot集成:直接查询您的网络库存数据
- 站点信息:检索详细的站点位置数据
- 设备详细信息:访问设备规格和配置
- 网络拓扑:可视化网络连接和关系
- 基于角色的访问:按用户角色控制数据访问
- 灵活的配置:可定制的数据展示
需求
- Python 3.10+
- 具有API访问权限的Nautobot实例
- 具有适当权限的Nautobot API令牌
安装
# 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配置
复制示例环境文件并使用您的设置进行更新:
cp .env.example .env
# Edit .env with your favorite editor环境变量
| 变量 | 必填 | 描述 | 默认值 |
|---|---|---|---|
NAUTOBOT_URL | 是 | Nautobot实例的URL | 无 |
NAUTOBOT_TOKEN | 是 | 具有读取权限的API令牌 | 无 |
MCP_PORT | 无 | MCP服务器监听端口 | 8000 |
MCP_HOST | 否 | MCP服务器要绑定到的主机 | 127.0.0.1 |
LOG_LEVEL | 否 | 日志记录级别(调试、信息、警告、错误) | 信息 |
⚠️ 安全说明:永远不要承诺你的 .env 文件到版本控制。它包含敏感的API令牌。有关高级配置选项,请参阅 docs/CONFIGURATION.md.
用法
运行服务器
# Start the MCP server
python -m mcp_nautobot.server
# Or using the provided CLI
mcp-nautobot-server服务器将于启动http://127.0.0.1:8000默认情况下。
与Claude Desktop集成
- 打开克劳德桌面,导航到“设置”>“工具”>“配置自定义工具”
- 添加具有以下详细信息的新工具:
- 名字:Nautobot网络数据 - 描述:从Nautobot访问网络清单数据 - 架构类型:MCP - 端点URL: http://127.0.0.1:8000(或您的自定义主机/端口)
- 保存并测试连接
现在,您可以向Claude询问有关网络库存的问题:
- “我们在美国西部地区有哪些网站?”
- “显示芝加哥数据中心的所有设备”
- “列出我们网络中的所有Cisco交换机”
- “亚特兰大核心路由器的IP地址是什么?”
开发者指南
测试
# Install development dependencies
uv pip install -e ".[dev]"
# Run tests
pytest
# Run tests with coverage
pytest --cov=mcp_nautobot代码样式和Linting
本项目遵循PEP 8指南,并使用黑色和isort进行格式化。
# Format code
black mcp_nautobot tests
isort mcp_nautobot tests
# Lint code
flake8 mcp_nautobot tests
mypy mcp_nautobot路线图
- 设备配置检索:访问正在运行的设备配置
- 拓扑可视化:生成网络图和图表
- 多租户支持:增强的基于角色的访问控制
- 电路信息:有关广域网电路和提供商的数据
- 性能数据:历史绩效指标集成
贡献
欢迎投稿!请查看我们的 贡献指南 开始吧。
如果您遇到任何问题或有功能要求,请 打开一个问题.
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
## Troubleshooting
If you encounter issues, check the [Troubleshooting Guide](docs/TROUBLESHOOTING.md) or open an issue on GitHub.