[project] name = "secobserve-mcp" version = "0.2.2" description = "MCP server for SecObserve: triage findings, import scan reports and SBOMs, generate VEX." readme = "README.md" requires-python = ">=3.11" license = "MIT" license-files = ["LICENSE"] authors = [{ name = "nh4ttruong" }] keywords = [ "mcp", "model-context-protocol", "mcp-server", "secobserve", "vulnerability-management", "sbom", "vex", "cyclonedx", "devsecops", "appsec", "security", "ai-agent", "llm", ] classifiers = [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Intended Audience :: Information Technology", "Operating System :: OS Independent", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Security", "Topic :: Software Development :: Quality Assurance", "Typing :: Typed", ] dependencies = [ "mcp>=2.2,<3", "httpx>=0.27", "pydantic>=2.7", "starlette>=0.27", ] [project.urls] Homepage = "https://github.com/nh4ttruong/secobserve-mcp" Repository = "https://github.com/nh4ttruong/secobserve-mcp" Documentation = "https://github.com/nh4ttruong/secobserve-mcp#readme" Issues = "https://github.com/nh4ttruong/secobserve-mcp/issues" Changelog = "https://github.com/nh4ttruong/secobserve-mcp/blob/main/CHANGELOG.md" "MCP Registry" = "https://registry.modelcontextprotocol.io/?search=secobserve" [project.scripts] secobserve-mcp = "secobserve_mcp.__main__:main" [project.optional-dependencies] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "respx>=0.21", "mypy>=1.10", "ruff>=0.5", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/secobserve_mcp"] [tool.ruff] line-length = 120 target-version = "py311" [tool.mypy] python_version = "3.11" strict = true warn_return_any = false [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"]