返回市场
麦克佩-数据中心

麦克佩-数据中心

作者:fringemonkey2 星标更新:2025-10-30

项目介绍

🚀 NetBox MCP Server v1.0

一个强大且精心设计的Python MCP(模型上下文协议)服务器,用于访问NetBox基础设施,旨在教授新程序员并支持生产使用。

🎯 特性

核心功能

  • NetBox API集成 - 完整访问设备、虚拟机、IP地址和VLAN
  • HashiCorp Vault集成 - 使用AppRole身份验证即时生成令牌
  • PostgreSQL状态置信度 - 查询模块引用确定性模式
  • MCP工具 - 全面的基础设施管理工具集

高级功能

  • 结构化JSON协议 - 组件之间的清晰通信
  • 性能优化 - 连接池、缓存、重试策略
  • LLM优化 - 令牌估算、响应格式化、流式传输

🧪 测试套件

100%测试成功率 - 所有测试通过,测试套件简化

测试覆盖范围

  • ✅ 核心MCP服务器功能
  • ✅ 结构化JSON协议
  • ✅ 端到端工作流程
  • ✅ 性能优化
  • ✅ 工具功能(主机、虚拟机、IP地址、VLAN)
  • ✅ 错误处理和边界情况

🚀 快速开始

前提条件

  • Python 3.12+
  • NetBox实例
  • HashiCorp Vault
  • PostgreSQL数据库

安装

# 克隆仓库
git clone https://github.com/fringemonkey/mcp-dc.git
cd mcp-dc

# 安装依赖
pip install -r requirements.txt
pip install -r requirements-dev.txt

# 运行测试
python -m pytest tests/ -v

配置

设置环境变量:

export NETBOX_URL="http://your-netbox-instance"
export VAULT_ADDR="http://your-vault-instance"
export VAULT_TOKEN="your-vault-token"
export POSTGRES_HOST="localhost"
export POSTGRES_DB="mcp_state"
export POSTGRES_USER="mcp_user"
export POSTGRES_PASSWORD="mcp_password"

🛠️ 开发

运行测试

# 运行所有测试
python -m pytest tests/ -v

# 运行特定测试类别
python -m pytest tests/ -m unit
python -m pytest tests/ -m integration
python -m pytest tests/ -m performance

# 运行带有覆盖率报告
python -m pytest tests/ --cov=src --cov-report=html

代码质量

# 格式化代码
black src/ tests/
isort src/ tests/

# 检查代码
flake8 src/ tests/
mypy src/

# 安全检查
bandit -r src/
safety check

📁 项目结构

mcp-dc/
├── src/                          # 源代码
│   ├── server.py                 # 主MCP服务器
│   ├── netbox_client.py          # NetBox API客户端
│   ├── vault_client.py           # Vault认证
│   ├── state_confidence.py       # PostgreSQL客户端
│   ├── structured_protocol.py    # JSON协议
│   ├── llm_optimizer.py         # LLM优化
│   ├── llm_mcp_server.py        # LLM MCP服务器
│   ├── structured_mcp_server.py # 结构化MCP服务器
│   └── tools/                    # MCP工具
│       ├── hosts.py
│       ├── virtual_machines.py
│       ├── ip_addresses.py
│       └── vlans.py
├── tests/                        # 测试套件
│   ├── test_server.py
│   ├── test_llm_optimization.py
│   ├── test_simple_performance.py
│   └── test_structured_protocol.py
├── examples/                     # 示例脚本
├── scripts/                      # 实用脚本
├── docs/                         # 文档
└── .devcontainer/               # 开发容器

🔧 MCP工具

主机管理

  • list_hosts - 列出所有设备
  • get_host - 获取特定设备详细信息
  • search_hosts - 按条件搜索设备

虚拟机管理

  • list_vms - 列出所有虚拟机
  • get_vm - 获取特定虚拟机详细信息
  • list_vm_interfaces - 列出虚拟机接口

IP地址管理

  • list_ips - 列出所有IP地址
  • get_ip - 获取特定IP详细信息
  • search_ips - 搜索IP地址

VLAN管理

  • list_vlans - 列出所有VLAN
  • get_vlan - 获取特定VLAN详细信息
  • list_vlan_ips - 列出VLAN中的IP地址

🎓 教育价值

该项目旨在教授:

  • MCP协议 - 模型上下文协议实现
  • API集成 - NetBox、Vault、PostgreSQL集成
  • 测试策略 - 单元测试、集成测试、性能测试
  • 代码质量 - 代码检查、格式化、安全实践
  • 持续集成/持续部署 - GitHub Actions、自动化测试
  • 文档 - 完整的README和代码注释

🚀 性能

  • 连接池 - 高效HTTP连接
  • 缓存 - 基于TTL的响应缓存
  • 重试策略 - 失败时指数退避
  • 内存效率 - 优化的数据结构
  • 并发操作 - 异步/等待模式

🔒 安全

  • Vault集成 - 安全令牌管理
  • 输入验证 - 参数净化
  • 错误处理 - 安全错误响应
  • 安全扫描 - Bandit和Safety检查

📊 监控

  • 指标收集 - 性能和使用指标
  • 日志记录 - 分层结构化日志
  • 健康检查 - 服务可用性监控
  • 状态置信度 - 数据可靠性评分

🤝 贡献

  1. 叉出仓库
  2. 创建功能分支
  3. 进行更改
  4. 为新功能添加测试
  5. 确保所有测试通过
  6. 提交拉取请求

📄 许可证

本项目采用MIT许可证 - 查看LICENSE文件以获取详细信息。

🎉 致谢

  • NetBox团队提供的优秀基础设施管理平台
  • HashiCorp提供的Vault安全解决方案
  • PostgreSQL社区提供的强大数据库
  • MCP协议贡献者

已准备好进行生产部署! 🚀

版本1.0 - 零测试失败,全面功能,生产就绪