[project]
name = "awslabs.amazon-neptune-mcp-server"
version = "1.0.1"
description = "An Amazon Neptune MCP server that allows for fetching status, schema, and querying using openCypher, Gremlin, and SPARQL for Neptune Database and openCypher for Neptune Analytics."
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"boto3>=1.38.11",
"loguru>=0.7.0",
"mcp[cli]>=1.6.0",
"pydantic>=2.10.6",
]
license = {text = "Apache-2.0"}
license-files = ["LICENSE", "NOTICE" ]
authors = [
{name = "Amazon Web Services"},
{name = "AWSLabs MCP", email="203918161+awslabs-mcp@users.noreply.github.com"},
{name = "Amazon Web Services", email="githubusername@users.noreply.github.com"},
]
classifiers = [
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
[project.urls]
homepage = "https://awslabs.github.io/mcp/"
docs = "https://awslabs.github.io/mcp/servers/amazon-neptune-mcp-server/"
documentation = "https://awslabs.github.io/mcp/servers/amazon-neptune-mcp-server/"
repository = "https://github.com/awslabs/mcp.git"
changelog = "https://github.com/awslabs/mcp/blob/main/src/amazon-neptune-mcp-server/CHANGELOG.md"
[project.scripts]
"awslabs.amazon-neptune-mcp-server" = "awslabs.amazon_neptune_mcp_server.server:main"
[dependency-groups]
dev = [
"commitizen>=4.2.2",
"pre-commit>=4.1.0",
"ruff>=0.9.7",
"pyright>=1.1.398",
"pytest>=8.0.0",
"pytest-asyncio>=0.26.0",
"pytest-cov>=4.1.0",
"pytest-mock>=3.12.0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.metadata]
allow-direct-references = true
[tool.ruff]
line-length = 99
extend-include = ["*.ipynb"]
exclude = [
".venv",
"**/__pycache__",
"**/node_modules",
"**/dist",
"**/build",
"**/env",
"**/.ruff_cache",
"**/.venv",
"**/.ipynb_checkpoints"
]
force-exclude = true
[tool.ruff.lint]
exclude = ["__init__.py"]
select = ["C", "D", "E", "F", "I", "W"]
ignore = ["C901", "E501", "E741", "F402", "F823", "D100", "D106", "D205"]
[tool.ruff.lint.isort]
lines-after-imports = 2
no-sections = true
[tool.ruff.lint.per-file-ignores]
"**/*.ipynb" = ["F704"]
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.ruff.format]
quote-style = "single"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
docstring-code-format = true
[tool.pyright]
include = ["awslabs"]
exclude = ["**/__pycache__", "**/.venv", "**/node_modules", "**/dist", "**/build"]
[tool.commitizen]
name = "cz_conventional_commits"
version = "0.0.0"
tag_format = "v$version"
version_files = [
"pyproject.toml:version",
"awslabs/amazon_neptune_mcp_server/__init__.py:__version__"
]
update_changelog_on_bump = true
[tool.hatch.build.targets.wheel]
packages = ["awslabs"]
[tool.bandit]
exclude_dirs = ["venv", ".venv", "tests"]
[tool.pytest.ini_options]
python_files = "test_*.py"
python_classes = "Test*"
python_functions = "test_*"
testpaths = [ "tests"]
asyncio_mode = "auto"
markers = [
"live: marks tests that make live API calls (deselect with '-m \"not live\"')",
"asyncio: marks tests that use asyncio"
]
asyncio_default_fixture_loop_scope = "session"
[tool.coverage.report]
exclude_also = [
'pragma: no cover',
'if __name__ == .__main__.:\n main()',
]
[tool.coverage.run]
source = ["awslabs"]