Add MCP server implementation with 6 tools
Implement complete Model Context Protocol server providing 6 tools for documentation skill generation: - list_configs: List all available preset configurations - generate_config: Create new config files for any documentation site - validate_config: Validate config file structure and parameters - estimate_pages: Fast page count estimation before scraping - scrape_docs: Full documentation scraping and skill building - package_skill: Package skill directory into uploadable .zip Features: - Async/await architecture for efficient I/O operations - Full MCP protocol compliance - Comprehensive error handling and user-friendly messages - Integration with existing CLI tools (doc_scraper.py, etc.) - 25 unit tests with 100% pass rate 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -338,11 +338,19 @@ async def validate_config_tool(args: dict) -> list[TextContent]:
|
||||
|
||||
# Import validation function
|
||||
sys.path.insert(0, str(CLI_DIR))
|
||||
from doc_scraper import load_config, validate_config
|
||||
from doc_scraper import validate_config
|
||||
import json
|
||||
|
||||
try:
|
||||
config = load_config(config_path)
|
||||
errors = validate_config(config)
|
||||
# Load config manually to avoid sys.exit() calls
|
||||
if not Path(config_path).exists():
|
||||
return [TextContent(type="text", text=f"❌ Error: Config file not found: {config_path}")]
|
||||
|
||||
with open(config_path, 'r') as f:
|
||||
config = json.load(f)
|
||||
|
||||
# Validate config - returns (errors, warnings) tuple
|
||||
errors, warnings = validate_config(config)
|
||||
|
||||
if errors:
|
||||
result = f"❌ Config validation failed:\n\n"
|
||||
@@ -355,6 +363,11 @@ async def validate_config_tool(args: dict) -> list[TextContent]:
|
||||
result += f" Max pages: {config.get('max_pages', 'Not set')}\n"
|
||||
result += f" Rate limit: {config.get('rate_limit', 'Not set')}s\n"
|
||||
|
||||
if warnings:
|
||||
result += f"\n⚠️ Warnings:\n"
|
||||
for warning in warnings:
|
||||
result += f" • {warning}\n"
|
||||
|
||||
return [TextContent(type="text", text=result)]
|
||||
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user