mcpmc/pyproject.toml
Ryan Malloy 8e3cee4f18 Security hardening: Fix CORS configuration and add security documentation
- Replace wildcard CORS origins with restricted domain list
- Add comprehensive security patterns to .gitignore
- Create SECURITY.md with deployment security guidelines
- Restrict CORS methods and headers to minimum required
- Add security documentation for production deployment
2025-09-17 17:36:05 -06:00

68 lines
1.6 KiB
TOML

[project]
name = "mcpmc"
version = "1.0.0"
description = "MCPMC Expert System - Model Context Protocol Multi-Context Platform"
authors = [
{name = "MCPMC Team"}
]
requires-python = ">=3.13"
dependencies = [
"fastapi==0.116.1",
"fastmcp>=2.12.2",
"pydantic==2.11.7",
"sqlalchemy==2.0.43",
"procrastinate[psycopg2]>=3.5.2",
"asyncpg>=0.29.0",
"uvicorn[standard]>=0.32.1",
"python-multipart>=0.0.12",
"python-jose[cryptography]>=3.3.0",
"passlib[bcrypt]>=1.7.4",
"httpx>=0.28.1",
"aiosqlite>=0.20.0",
]
[project.scripts]
mcpmc = "mcpmc.mcpmc:main"
[dependency-groups]
dev = [
"pytest>=8.4.0",
"pytest-asyncio>=1.1.0",
"pytest-html>=4.1.0",
"pytest-cov>=4.0.0",
"ruff>=0.8.4",
"watchfiles>=0.21.0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/mcpmc"]
[tool.ruff]
line-length = 88
target-version = "py313"
[tool.ruff.lint]
select = ["E", "F", "I", "N", "W", "UP", "B", "C4", "ICN", "PIE", "T20", "RET"]
ignore = ["E501"]
[tool.pytest.ini_options]
addopts = [
"-v", "--tb=short",
"--html=reports/test_report.html", "--self-contained-html",
"--cov=src", "--cov-report=html:reports/coverage_html",
"--capture=no", "--log-cli-level=INFO",
"--log-cli-format=%(asctime)s [%(levelname)8s] %(name)s: %(message)s",
"--log-cli-date-format=%Y-%m-%d %H:%M:%S"
]
testpaths = ["src/backend/tests"]
markers = [
"unit: Unit tests",
"integration: Integration tests",
"smoke: Smoke tests for basic functionality",
"performance: Performance and benchmarking tests",
"agent: Expert agent system tests"
]