[project]
name = "gNMIBuddy"
version = "0.1.0"
description = "An opinionated tool that retrieves essential network information from devices using gNMI and OpenConfig models. Designed primarily for LLMs with Model Context Protocol (MCP) integration, it also provides a full CLI for direct use."
readme = "README.md"
requires-python = ">=3.13"
authors = [
{name = "jillesca", email = "76405615+jillesca@users.noreply.github.com"}
]
license = "BSD-3-Clause"
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: System Administrators",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.13",
"Topic :: System :: Networking",
"Topic :: System :: Systems Administration",
]
dependencies = [
"click>=8.1.8",
"mcp[cli]>=1.6.0",
"networkx>=3.4.2",
"pydantic-settings>=2.9.1",
"pygnmi>=0.8.15",
"pyyaml>=6.0.1",
]
[project.scripts]
gnmibuddy = "gnmibuddy:main"
gnmibuddy-mcp = "mcp_server:main"
[project.urls]
Homepage = "https://github.com/jillesca/gNMIBuddy"
Repository = "https://github.com/jillesca/gNMIBuddy"
Issues = "https://github.com/jillesca/gNMIBuddy/issues"
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["."]
include = ["src*"]
[tool.setuptools]
py-modules = ["gnmibuddy", "mcp_server", "api"]
[dependency-groups]
dev = [
"pytest>=8.3.5",
"pytest-mock>=3.14.0",
]
[tool.pytest.ini_options]
markers = [
"unit: Unit tests",
"schema: Schema validation tests"
]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_classes = ["Test*"]
python_functions = ["test_*"]
addopts = "-v --tb=short"