mirror of
https://github.com/dtzp555-max/network-mcp-server.git
synced 2026-07-19 09:43:07 +00:00
MVP with zero-dependency SNMP backend for AI-powered network management: - get_snmp_value: query single OID - walk_snmp_tree: walk OID subtree - get_device_info: vendor auto-detection, uptime, location - get_interfaces: interface status with human-readable output - discover_devices: subnet SNMP discovery Tech: FastMCP + pysnmp-lextudio, Python 3.10+ Works with: Cisco, Juniper, Arista, UniFi, Fortinet, and any SNMP device 23 tests passing Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
58 lines
1.4 KiB
TOML
58 lines
1.4 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "network-mcp-server"
|
|
version = "0.1.0"
|
|
description = "MCP server for network device management via SNMP — query any vendor's devices with AI"
|
|
readme = "README.md"
|
|
license = {text = "MIT"}
|
|
requires-python = ">=3.10"
|
|
authors = [{name = "Tao Deng", email = "dtzp555@gmail.com"}]
|
|
keywords = ["mcp", "snmp", "network", "cisco", "juniper", "monitoring"]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: System Administrators",
|
|
"Topic :: System :: Networking :: Monitoring",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
]
|
|
|
|
dependencies = [
|
|
"fastmcp>=2.0.0",
|
|
"pysnmp-lextudio>=6.1.0",
|
|
"pydantic>=2.0",
|
|
"pyyaml>=6.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"pytest-asyncio>=0.23",
|
|
"ruff>=0.4",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/dtzp555-max/network-mcp-server"
|
|
Issues = "https://github.com/dtzp555-max/network-mcp-server/issues"
|
|
|
|
[project.scripts]
|
|
network-mcp = "network_mcp.server:main"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/network_mcp"]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py310"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "N", "W"]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = ["tests"]
|