enhanced-mcp-tools/pyproject.toml
Ryan Malloy 1d199a943d 🛡️ SACRED TRUST: Complete safety framework implementation & validation
 COMPREHENSIVE SAFETY FRAMEWORK:
• Package-level safety notices with SACRED TRUST language
• Server-level LLM safety protocols with specific refusal scenarios
• Class-level safety reminders for AI assistants
• Tool-level destructive operation warnings (🔴 DESTRUCTIVE markers)
• Visual safety system: 🔴🛡️🚨 markers throughout codebase
• Emergency logging infrastructure with proper escalation
• Default-safe operations (dry_run=True for destructive tools)

🔒 DESTRUCTIVE OPERATION PROTECTIONS:
• bulk_rename: LLM safety instructions + dry_run default
• search_and_replace_batch: Comprehensive safety warnings
• All destructive tools require preview before execution
• Clear REFUSE scenarios for AI assistants

📚 COMPREHENSIVE DOCUMENTATION:
• SACRED_TRUST_SAFETY.md: Complete safety philosophy & implementation guide
• IMPLEMENTATION_COMPLETE.md: Project completion status
• EMERGENCY_LOGGING_COMPLETE.md: Logging infrastructure details
• UV_BUILD_GUIDE.md: Modern Python project setup
• Multiple implementation guides and status docs

🔧 PROJECT MODERNIZATION:
• Migrated from setup.py/requirements.txt to pyproject.toml + uv
• Updated dependency management with uv.lock
• Enhanced test suite with comprehensive coverage
• Added examples and demo scripts

 VALIDATION COMPLETE: All SACRED_TRUST_SAFETY.md requirements implemented
🎯 Sacred Trust Status: PROTECTED
🚨 User Safety: PARAMOUNT
🔐 System Integrity: PRESERVED

The human trusts AI assistants to be guardians of their system and data.
This framework ensures that trust is honored through comprehensive safety measures.
2025-06-23 11:58:48 -06:00

99 lines
2.7 KiB
TOML

[build-system]
requires = ["setuptools>=45", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "enhanced-mcp-tools"
version = "1.0.0"
description = "Enhanced MCP tools server with comprehensive development utilities"
readme = "README.md"
requires-python = ">=3.10"
license = "MIT"
authors = [
{name = "Your Name", email = "your.email@example.com"},
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"Topic :: Software Development :: Tools",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
dependencies = [
"fastmcp>=2.8.1",
]
[tool.setuptools.packages.find]
include = ["enhanced_mcp*"]
exclude = ["tests*", "docs*", "examples*", "scripts*", "config*"]
[project.optional-dependencies]
# Core enhanced functionality (recommended)
enhanced = [
"aiofiles>=23.0.0", # Async file operations
"watchdog>=3.0.0", # File system monitoring
"psutil>=5.9.0", # Process and system monitoring
"requests>=2.28.0", # HTTP requests for Sneller and APIs
]
# All optional features
full = [
"enhanced-mcp-tools[enhanced]",
"rich>=13.0.0", # Enhanced terminal output
"pydantic>=2.0.0", # Data validation
]
dev = [
"enhanced-mcp-tools[full]",
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"pytest-cov>=4.0.0",
"black>=22.0.0",
"ruff>=0.1.0"
]
[project.scripts]
enhanced-mcp = "enhanced_mcp.mcp_server:run_server"
[tool.black]
line-length = 100
target-version = ['py38']
[tool.ruff]
line-length = 100
target-version = "py38"
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
]
ignore = [
"E501", # Line too long (handled by black)
"B008", # Do not perform function calls in argument defaults
"C901", # Too complex
"F403", # 'from .base import *' used; unable to detect undefined names
"F405", # May be undefined, or defined from star imports
]
# Additional ignore patterns for star imports in specific files
[tool.ruff.lint.per-file-ignores]
"enhanced_mcp/*/base.py" = ["F403", "F405"]
"enhanced_mcp/*" = ["F403", "F405"] # Allow star imports throughout the enhanced_mcp package
"tests/*" = ["E501", "F401", "F811", "F403", "F405"]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py", "*_test.py"]
asyncio_mode = "auto"