[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"