This commit resolves critical parameter validation and type conversion issues that were preventing tools from working correctly with MCP clients. ## Fixed Issues: ### Parameter Validation & Type Conversion - Fixed Union[str, int] validation errors in ProcessTracingTools - Added comprehensive boolean parameter handling (strings, ints, None) - Resolved datetime import scoping in nested functions - Fixed async/await requirements for all MCP tools ### Tools Fixed (Key Examples): - process_tracing_process_monitor: Fixed duration parameter validation - asciinema_*: All boolean parameters now handle "true"/"false" strings - file_ops_*: Added 4 new directory management tools with safety checks - utility_generate_documentation: Converted from NotImplementedError to async - search_analysis_search_and_replace_batch: Fixed dry_run parameter blocking - network_api_*: Fixed headers JSON conversion and api_mock_server ### New Features: - Added comprehensive directory management tools (create, copy, move, remove) - Safety checks now allow /tmp operations for testing - All placeholder tools now return informative responses ### Documentation: - Added TOOL_NAMES.md with complete list of all 71 tools - Added TESTING_STRATEGY.md for FastMCP testing patterns - Added comprehensive test suites for all fixes All tools tested and verified working with proper parameter validation.
109 lines
2.9 KiB
TOML
109 lines
2.9 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",
|
|
"pillow>=10.0.0",
|
|
]
|
|
|
|
[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
|
|
# pyautogui removed - using PIL.ImageGrab for screenshots
|
|
"pillow>=10.0.0", # Image processing for screenshots
|
|
]
|
|
|
|
# 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"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"httpx>=0.28.1",
|
|
"mcp>=1.14.1",
|
|
]
|