pyproject.toml•1.74 kB
[build-system]
requires = ["hatchling>=1.25", "hatch-vcs>=0.4"]
build-backend = "hatchling.build"
[project]
name = "signnow-mcp-server"
dynamic = ["version"]
description = "A Model Context Protocol (MCP) server that provides SignNow API integration capabilities."
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
"fastmcp>=2,<3",
"uvicorn[standard]>=0.24",
"typer>=0.9",
"mcp[cli]>=1.10,<2",
"httpx[http2]>=0.25",
"pyjwt[crypto]>=2.8",
"cryptography>=42",
"starlette>=0.27",
"pydantic>=2.0",
"pydantic-settings>=2.0",
]
[project.scripts]
sn-mcp = "sn_mcp_server.cli:app"
[project.optional-dependencies]
smolagents = [
"smolagents>=1.20",
"mcpadapt>=0.1.11",
]
llamaindex = [
"llama-index-tools-mcp>=0.1.0",
"llama-index-core>=0.10.0",
"llama-index-llms-openai>=0.1.0",
"python-dotenv>=1.0.0",
]
langchain = [
"langchain>=0.1.0",
"langchain-openai>=0.1.0",
"langchain-mcp-adapters>=0.1.0",
"langchain-core>=0.1.0",
]
test = [
"pytest>=7.0",
"pytest-asyncio>=0.21",
"pytest-mock>=3.10",
"httpx>=0.25",
]
[tool.black]
target-version = ["py311"]
line-length = 200
[tool.ruff]
line-length = 200
lint.select = ["E","F","W","I","N","B","UP","S","ASYNC","ANN"]
lint.ignore = ["S101"] # assert allowed in tests
format.preview = true
[tool.mypy]
python_version = "3.11"
show_error_codes = true
strict = true
warn_unused_ignores = true
warn_redundant_casts = true
warn_return_any = true
disallow_untyped_defs = true
[tool.hatch.version]
source = "vcs"
tag-pattern = "^v?(?P<version>.*)$"
[tool.hatch.build.hooks.vcs]
version-file = "src/sn_mcp_server/_version.py"
[tool.hatch.build.targets.wheel]
packages = [
"src/sn_mcp_server",
"src/signnow_client",
]