pyproject.toml•3.5 kB
[project]
name = "aws-diagram-mcp-server"
version = "1.0.7"
description = "An MCP server that seamlessly creates diagrams using the Python diagrams package DSL"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"diagrams>=0.24.4",
"boto3>=1.37.27",
"mcp[cli]>=1.11.0",
"pydantic>=2.10.6",
"bandit>=1.7.5",
# Security fixes for CVEs
"setuptools>=78.1.1", # Fixes CVE-2025-47273
"starlette>=0.47.2", # Fixes CVE-2025-54121
"urllib3>=2.5.0", # Fixes CVE-2025-50181, CVE-2025-50182
]
license = {text = "Apache-2.0"}
license-files = ["LICENSE", "NOTICE" ]
authors = [
{name = "lukeburciu", email="31502276+lukeburciu@users.noreply.github.com"},
{name = "AWSLabs MCP", email="203918161+awslabs-mcp@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.scripts]
"aws-diagram-mcp-server" = "aws_diagram_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>=7.4.0",
"pytest-cov>=4.1.0",
"pytest-asyncio>=0.26.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"]
[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 = ["aws_diagram_mcp_server", "tests"]
exclude = ["**/__pycache__", "**/.venv", "**/node_modules", "**/dist", "**/build"]
typeCheckingMode = "basic"
reportMissingImports = false
reportUnusedExpression = false
reportArgumentType = false
reportAttributeAccessIssue = false
reportPrivateUsage = false
reportUnknownMemberType = false
reportUnknownVariableType = false
reportUnknownArgumentType = false
reportGeneralTypeIssues = false
[tool.commitizen]
name = "cz_conventional_commits"
version = "0.0.0"
tag_format = "v$version"
version_files = [
"pyproject.toml:version",
"aws_diagram_mcp_server/__init__.py:__version__"
]
update_changelog_on_bump = true
[tool.hatch.build.targets.wheel]
packages = ["aws_diagram_mcp_server"]
[tool.bandit]
# Skip specific issues
skips = ["B102"]
exclude_dirs = ["venv","tests"]
# Per-file skips
per_file_skips = { "aws_diagram_mcp_server/diagrams_tools.py" = ["B102"] }
[tool.pytest.ini_options]
testpaths = "tests"
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
markers = [
"asyncio: mark a test as an asyncio coroutine",
]
[tool.coverage.run]
source = ["aws_diagram_mcp_server"]