enhanced-mcp-tools/pyproject.toml
Ryan Malloy 8ff3775562 🚀 Major FastMCP 2.12.3 upgrade with ComponentService and BulkToolCaller integration
This massive update transforms Enhanced MCP Tools into a comprehensive workflow orchestration platform:

**Core Upgrades:**
- Updated FastMCP from 2.8.1 to 2.12.3 (latest release)
- Updated MCP SDK from 1.9.4 to 1.14.1
- Updated 29+ dependencies for compatibility

**New Features:**
- ComponentService integration with progressive tool disclosure
- SecurityManager with SACRED TRUST safety framework enhancement
- BulkToolCaller for workflow orchestration and batch operations
- Enhanced CLI with stdio default and explicit HTTP mode (--http flag)

**Security Enhancements:**
- Progressive tool disclosure (SAFE/CAUTION/DESTRUCTIVE levels)
- Safe mode enabled by default
- Destructive tools require explicit confirmation
- Mandatory dry-run validation for bulk operations
- Centralized security management across all modules

**Architecture Improvements:**
- Enhanced MCPBase with ComponentService integration
- Tool executor registry for bulk operations
- Backward compatibility with legacy modules
- Graceful fallback for missing ComponentService features

**Tool Count Expansion:**
- Total tools: 64+ (up from 50+)
- Categories: 16 (up from 14)
- New SecurityManager: 5 tools
- New BulkOperations: 8 tools

**Files Added:**
- src/enhanced_mcp/security_manager.py - Comprehensive security management
- src/enhanced_mcp/bulk_operations.py - Workflow orchestration system
- examples/ - Comprehensive integration guides and examples

**Files Modified:**
- pyproject.toml - FastMCP 2.12.3 dependency update
- src/enhanced_mcp/mcp_server.py - ComponentService integration
- src/enhanced_mcp/base.py - Enhanced MCPBase with security framework
- Multiple modules updated for ComponentService compatibility

All features tested and verified working. Server maintains stdio default behavior
for MCP clients while providing powerful workflow orchestration capabilities.
2025-09-22 17:15:02 -06:00

100 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 = "Ryan Malloy", email = "ryan@supported.systems"},
]
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.12.3",
]
[tool.setuptools.packages.find]
where = ["src"]
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-tools = "enhanced_mcp.mcp_server:main"
[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]
"src/enhanced_mcp/*/base.py" = ["F403", "F405"]
"src/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"