[project]
name = "nebulagraph-mcp-server"
description = "A Model Context Protocol server providing tools to access NebulaGraph for usage by LLMs"
readme = "README.md"
requires-python = ">=3.12"
license = { text = "Apache-2.0" }
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
]
dependencies = ["mcp>=1.0.0", "nebula3-python>=3.8.0", "python-dotenv>=1.0.1"]
dynamic = ["version"]
[build-system]
requires = ["hatchling", "hatch-vcs>=0.3.0"]
build-backend = "hatchling.build"
[dependency-groups]
dev = [
"pytest>=8.3.5",
"pytest-asyncio>=0.25.3",
"ruff>=0.7.3",
"llama-index>=0.12.22",
"llama-index-llms-openai-like>=0.3.4",
"llama-index-tools-mcp>=0.1.0",
]
[project.scripts]
nebulagraph-mcp-server = "nebulagraph_mcp_server:main"
[tool.hatch.version]
source = "vcs"
fallback-version = "0.0.0"
[tool.hatch.build.targets.sdist]
only-include = ["src/", "examples/", "tests/"]
[tool.ruff]
line-length = 88
src = ["src"]
exclude = ["tests/fixtures"]
target-version = "py312"
[tool.ruff.lint]
extend-select = [
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"PGH", # pygrep-hooks
"RUF", # ruff
"W", # pycodestyle
"YTT", # flake8-2020
]
extend-ignore = ["B018", "B019", "B905"]
[tool.ruff.lint.mccabe]
max-complexity = 10