AI-powered legacy web application analysis and documentation generation via MCP
Project description
Legacy Web MCP Server
Legacy Web MCP Server implements the Model Context Protocol (MCP) to power automated discovery and analysis of legacy web applications. This AI-powered tool helps development teams automatically crawl websites, analyze site structure, and generate comprehensive documentation artifacts for modernization planning.
🚀 Now available on PyPI! Install and run globally with uvx legacy-web-mcp
Getting Started
Quick Start
For Most Users (Recommended)
# Install uvx (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Run the MCP server directly from PyPI
uvx legacy-web-mcp
That's it! The server is ready for MCP connections.
Detailed Installation Steps
Step 1: Install uvx
The Legacy Web MCP Server uses uvx for isolation and easy installation. Install it if you haven't already:
On macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
On Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Verify Installation:
uvx --version
Step 2: Install Legacy Web MCP Server
Option A: Direct Execution (Recommended)
# Run directly from PyPI - no installation required
uvx legacy-web-mcp
Option B: Global Installation
# Install globally and run
uvx install legacy-web-mcp
legacy-web-mcp
Option C: Specific Version
# Install specific version
uvx --from legacy-web-mcp==0.1.1 legacy-web-mcp
Step 3: Verify Installation
# Check version
uvx legacy-web-mcp --version
# Show help
uvx legacy-web-mcp --help
# Test server startup (Ctrl+C to stop)
uvx legacy-web-mcp
Claude Desktop Configuration
Step 1: Locate Configuration File
📍 Find your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json - Linux:
~/.config/claude-desktop/config.json
Step 2: Add MCP Server Configuration
📝 Edit the configuration file and add the Legacy Web MCP Server:
{
"mcpServers": {
"legacy-web-mcp": {
"command": "uvx",
"args": ["legacy-web-mcp"],
"env": {
"OPENAI_API_KEY": "your_openai_key_here",
"ANTHROPIC_API_KEY": "your_anthropic_key_here",
"GEMINI_API_KEY": "your_gemini_key_here",
"STEP1_MODEL": "gpt-4o-mini",
"STEP2_MODEL": "gpt-4o-mini",
"FALLBACK_MODEL": "gpt-4o-mini",
"OPENAI_CHAT_MODEL": "gpt-4o-mini",
"ANTHROPIC_CHAT_MODEL": "claude-3-haiku-20240307",
"GEMINI_CHAT_MODEL": "gemini-1.5-flash",
"PLAYWRIGHT_HEADLESS": "true",
"MAX_CONCURRENT_PAGES": "3",
"OUTPUT_ROOT": "docs/web_discovery"
}
}
}
}
If you already have other MCP servers configured:
{
"mcpServers": {
"existing-server": {
"command": "existing-command",
"args": ["existing-args"]
},
"legacy-web-mcp": {
"command": "uvx",
"args": ["legacy-web-mcp"],
"env": {
"OPENAI_API_KEY": "your_openai_key_here",
"ANTHROPIC_API_KEY": "your_anthropic_key_here",
"GEMINI_API_KEY": "your_gemini_key_here",
"STEP1_MODEL": "gpt-4o-mini",
"STEP2_MODEL": "gpt-4o-mini",
"FALLBACK_MODEL": "gpt-4o-mini",
"OPENAI_CHAT_MODEL": "gpt-4o-mini",
"ANTHROPIC_CHAT_MODEL": "claude-3-haiku-20240307",
"GEMINI_CHAT_MODEL": "gemini-1.5-flash",
"PLAYWRIGHT_HEADLESS": "true",
"MAX_CONCURRENT_PAGES": "3",
"OUTPUT_ROOT": "docs/web_discovery"
}
}
}
}
Step 3: Configure Environment Variables
🔐 Important: Replace the placeholder values with your actual API keys and desired configuration.
Security Note: For better security, you can use environment variable references instead:
{
"mcpServers": {
"legacy-web-mcp": {
"command": "uvx",
"args": ["legacy-web-mcp"],
"env": {
"OPENAI_API_KEY": "${OPENAI_API_KEY}",
"ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
"GEMINI_API_KEY": "${GEMINI_API_KEY}",
"STEP1_MODEL": "gpt-4o-mini"
}
}
}
}
Then set the environment variables in your shell profile:
export OPENAI_API_KEY="your_openai_key_here"
export ANTHROPIC_API_KEY="your_anthropic_key_here"
export GEMINI_API_KEY="your_gemini_key_here"
Step 4: Restart Claude Desktop
- Quit Claude Desktop completely
- Restart Claude Desktop
- Look for the MCP connection indicator (🔌 icon)
- Verify connection - you should see "legacy-web-mcp" in the MCP panel
Environment Configuration (Optional)
For AI-powered analysis features, configure LLM providers:
Step 1: Create Environment File
# If using development version, copy template
cp .env.template .env
Step 2: Configure LLM Providers
Edit .env with your API keys:
# LLM Providers (choose one or more)
OPENAI_API_KEY=your_openai_key_here
ANTHROPIC_API_KEY=your_anthropic_key_here
GEMINI_API_KEY=your_gemini_key_here
# Model Configuration (Required if using LLMs)
STEP1_MODEL=gpt-4o-mini
STEP2_MODEL=gpt-4o-mini
FALLBACK_MODEL=gpt-4o-mini
# Provider-specific chat models
OPENAI_CHAT_MODEL=gpt-4o-mini
ANTHROPIC_CHAT_MODEL=claude-3-haiku-20240307
GEMINI_CHAT_MODEL=gemini-1.5-flash
# Browser & Concurrency Settings
PLAYWRIGHT_HEADLESS=true
MAX_CONCURRENT_PAGES=3
# Output Directory
OUTPUT_ROOT=docs/web_discovery
Step 3: Install Browser Dependencies (Optional)
For enhanced website crawling:
# Install Playwright browsers
uvx --from legacy-web-mcp playwright install
Available MCP Tools
The server provides comprehensive website analysis and documentation tools:
🔍 Discovery & Analysis Tools
discover_website- Comprehensive website structure discovery via sitemap/crawlinganalyze_legacy_site- Complete automated analysis workflow for legacy applicationsintelligent_analyze_site- AI-driven website analysis with natural language insightsanalyze_with_recommendations- Analysis with AI-powered modernization recommendations
📊 System & Health Tools
ping- Server health and status informationhealth_check- Comprehensive system health report with diagnosticsvalidate_dependencies- Check Playwright browser installationstest_llm_connectivity- Verify LLM provider connections and API healthshow_config- Display current configuration (redacted for security)
📁 File Management & Documentation
setup_project_documentation_structure- Create project documentation foldersorganize_project_artifacts- Organize analysis results into project structuregenerate_master_analysis_report- Create comprehensive analysis reportsgenerate_url_slug- Convert URLs to safe filenamescreate_gitignore_for_web_discovery- Generate version control guidance
🔧 Browser & Workflow Tools
validate_browser_dependencies- Detailed browser installation statusget_browser_metrics- Performance metrics for browser sessionsexecute_sequential_workflow- Multi-page analysis workflowscapture_page_screenshot- Page screenshot capturesimulate_page_interactions- Interactive element discovery and testing
🛠️ Debugging & Development Tools
inspect_debug_session- Analysis debugging and quality inspectionlist_analysis_artifacts- View available analysis resultsexport_analysis_artifacts- Export analysis data for external usevalidate_analysis_quality- Quality scoring and validationcleanup_old_artifacts- Maintenance and cleanup operations
Testing Your Installation
Basic Functionality Test
# Test server version
uvx legacy-web-mcp --version
# Test help command
uvx legacy-web-mcp --help
MCP Integration Test
With Claude Desktop running and configured:
- Start a conversation in Claude Desktop
- Look for the MCP connection indicator (🔌)
- Try a simple command like asking Claude to "check the health of the legacy web MCP server"
Direct Tool Testing
# Clone the repository for testing scripts
git clone https://github.com/hieutrtr/web-discovery-mcp.git
cd web-discovery-mcp
# Test basic tools
uv run python scripts/test_mcp_client.py ping
uv run python scripts/test_mcp_client.py health_check
# Test website discovery
uv run python scripts/test_mcp_client.py discover_website https://example.com
# Test AI analysis (requires LLM configuration)
uv run python scripts/test_mcp_client.py analyze_legacy_site https://example.com
Advanced Configuration Options
Using Development Version
{
"mcpServers": {
"legacy-web-mcp": {
"command": "uv",
"args": ["run", "legacy-web-mcp"],
"cwd": "/path/to/web-discovery-mcp"
}
}
}
Using Local Build
{
"mcpServers": {
"legacy-web-mcp": {
"command": "uvx",
"args": ["--from", ".", "legacy-web-mcp"],
"cwd": "/path/to/web-discovery-mcp"
}
}
}
Using Specific Version
{
"mcpServers": {
"legacy-web-mcp": {
"command": "uvx",
"args": ["--from", "legacy-web-mcp==0.1.1", "legacy-web-mcp"]
}
}
}
Troubleshooting
MCP Connection Issues
Problem: Claude Desktop doesn't show MCP connection
Solutions:
-
Check configuration file location and syntax
# Verify file exists and is valid JSON cat ~/.config/claude-desktop/config.json | jq .
-
Test uvx installation
uvx --version uvx legacy-web-mcp --version
-
Check Claude Desktop logs (if available)
-
Restart Claude Desktop completely
Server Startup Issues
Problem: Server fails to start
Solutions:
-
Check Python version
python3 --version # Should be 3.11+
-
Reinstall the package
uvx uninstall legacy-web-mcp uvx install legacy-web-mcp
-
Check for port conflicts
# Test basic startup uvx legacy-web-mcp --help
Browser Dependencies Issues
Problem: Browser automation fails
Solutions:
-
Install Playwright browsers
uvx --from legacy-web-mcp playwright install
-
Validate installation
uv run python scripts/test_mcp_client.py validate_dependencies
-
Check system requirements for Playwright
LLM Configuration Issues
Problem: AI analysis tools fail
Solutions:
-
Verify API keys in environment
# For development setup grep -E "API_KEY|MODEL" .env
-
Test LLM connectivity
uv run python scripts/test_mcp_client.py test_llm_connectivity
-
Check model configuration
uv run python scripts/test_mcp_client.py show_config
What It Does
The Legacy Web MCP Server automatically:
- 🔍 Discovers website structure via sitemaps and intelligent crawling
- 🧠 Analyzes legacy applications using AI-powered insights
- 📊 Documents findings in comprehensive reports
- 🔧 Recommends modernization strategies and technical approaches
- 📁 Organizes results in structured project documentation
Perfect for development teams planning legacy application modernization, conducting technical audits, or understanding complex website architectures.
Getting Help
Support Resources
- GitHub Issues: Report bugs or request features
- PyPI Package: View package details
- Documentation: Check the
docs/directory for detailed guides
Common Questions
Q: Do I need to install Python separately?
A: No, uvx manages Python environments automatically.
Q: Can I use this with other MCP clients? A: Yes, any MCP-compatible client should work.
Q: Do I need LLM API keys to use basic features? A: No, website discovery works without LLM configuration. AI analysis features require API keys.
Q: How do I update to a newer version?
A: Run uvx install --force legacy-web-mcp or use uvx directly which always uses the latest version.
Next Steps
After successful installation:
- Try basic website discovery with Claude Desktop
- Configure LLM providers for AI-powered analysis
- Explore the available tools in the MCP interface
- Check the documentation for advanced usage patterns
Happy analyzing! 🚀
License
Distributed under the MIT License. See LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file legacy_web_mcp-0.1.4-py3-none-any.whl.
File metadata
- Download URL: legacy_web_mcp-0.1.4-py3-none-any.whl
- Upload date:
- Size: 204.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8bc53db9d5835405646a27b945bd098e471912ca0f55ed34d4d948eb983403e
|
|
| MD5 |
ac8df724bed9d6292906ae7f4359e76f
|
|
| BLAKE2b-256 |
cde0a6574e003de6a7d83ca8b4d3122432fde6ea3e05048d17784c3bf6821e27
|