[project]
name = "thenvoi-mcp"
version = "1.1.0"
description = "Model Context Protocol (MCP) server for Thenvoi integration"
readme = "README.md"
authors = [{ name = "thenvoi" }]
requires-python = ">=3.11"
dependencies = [
"mcp[cli]>=1.2.0",
"pydantic-settings>=2.1.0",
"thenvoi-client-rest",
"uvicorn>=0.30.0", # Required for SSE transport mode
]
[project.optional-dependencies]
dev = [
"pytest>=8.0.0",
"pytest-asyncio>=0.23.0",
"pytest-cov>=4.1.0",
"pytest-mock>=3.12.0",
"python-dotenv>=1.0.0",
"respx>=0.20.0",
]
# LangGraph agent example dependencies
langgraph = [
"langchain-core>=0.3.0",
"langchain-mcp-adapters>=0.1.0",
"langchain-openai>=0.2.0",
"langgraph>=0.2.0",
"python-dotenv>=1.0.0",
]
# LangChain agent example dependencies
langchain = [
"langchain-core>=0.3.0",
"langchain-mcp-adapters>=0.1.0",
"langchain-openai>=0.2.0",
"langchain>=0.3.0",
"python-dotenv>=1.0.0",
]
# All examples dependencies (convenience group)
examples = [
"langchain-core>=0.3.0",
"langchain-mcp-adapters>=0.1.0",
"langchain-openai>=0.2.0",
"langchain>=0.3.0",
"langgraph>=0.2.0",
"python-dotenv>=1.0.0",
]
[project.scripts]
thenvoi-mcp = "thenvoi_mcp.server:run"
[tool.uv]
package = true
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
addopts = [
"--strict-markers",
"--cov=src/thenvoi_mcp",
"--cov-report=term-missing",
"--cov-report=html",
"--cov-fail-under=20",
]
[tool.coverage.run]
source = ["src/thenvoi_mcp"]
omit = ["*/tests/*", "*/__pycache__/*"]
[tool.coverage.report]
skip_empty = true
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise AssertionError",
"raise NotImplementedError",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
]
[build-system]
requires = ["uv_build>=0.8.22,<0.10.0"]
build-backend = "uv_build"
[dependency-groups]
dev = [
"pre-commit>=4.4.0",
"pydantic-settings>=2.1.0",
"ruff>=0.8.0",
"pyrefly>=0.2.0",
"commitizen>=3.13.0",
]
[tool.pyrefly]
search_path = ["src", "tests"]
project_excludes = ["tests/**"]
[tool.commitizen]
name = "cz_conventional_commits"
version = "1.0.0"
version_files = [
"pyproject.toml:version",
"src/thenvoi_mcp/__init__.py:__version__",
]
tag_format = "v$version"