pyproject.toml•2.32 kB
[project]
name = "opentelemetry-documentation-mcp-server"
version = "0.1.0"
description = "A Model Context Protocol (MCP) server for OpenTelemetry Documentation"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
"markdownify>=1.1.0",
"mcp[cli]>=1.6.0",
"pydantic>=2.10.6",
"httpx>=0.27.0",
"loguru>=0.7.0",
"beautifulsoup4>=4.12.0",
]
license = {text = "Apache-2.0"}
authors = [
{name = "ryu1maniwa"},
]
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]
"opentelemetry-documentation-mcp-server" = "opentelemetry_documentation_mcp_server.server:main"
[dependency-groups]
dev = [
"ruff>=0.9.7",
"pyright>=1.1.398",
"pytest>=7.4.0",
"pytest-cov>=4.1.0",
"pytest-mock>=3.11.1",
"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.hatch.build.targets.wheel]
packages = ["opentelemetry_documentation_mcp_server"]
[tool.pytest.ini_options]
markers = [
"live: marks tests that make live API calls (deselect with '-m \"not live\"')",
"asyncio: marks tests that use asyncio"
]
asyncio_mode = "strict"
asyncio_default_fixture_loop_scope = "function"