DrissionPage MCP Server
Professional browser automation for Claude Code and MCP clients powered by DrissionPage
Official Repositories: GitHub | GitCode
English Version | ไธญๆ็ๆฌ
๐ What is DrissionPage MCP?
DrissionPage MCP Server is a production-ready Model Context Protocol (MCP) server that brings professional browser automation capabilities to Claude Code, Claude Desktop, and other MCP clients.
Unlike screenshot-based approaches, it provides structured, deterministic web automation through 14 powerful tools that leverage the efficiency of DrissionPage, a high-performance browser automation framework.
๐ Why Choose DrissionPage MCP?
- LLM-Optimized: Works with structured data instead of requiring vision models
- Deterministic: Reliable element selection with CSS and XPath support
- Fast & Lightweight: Built on DrissionPage's efficient engine with minimal overhead
- Type-Safe: Full type hints and Pydantic validation for all tools
- Production Ready: Thoroughly tested and documented, ready for real-world use
- Easy Integration: Simple
pip install+ JSON configuration
โก Quick Install
# Install from PyPI
pip install drissionpage-mcp
# Verify installation
drissionpage-mcp --version
๐ฆ Setup in Claude Code (30 seconds)
Edit MCP configuration:
- macOS/Linux:
~/.config/claude-code/mcp_settings.json - Windows:
%APPDATA%\claude-code\mcp_settings.json
- macOS/Linux:
Add this configuration:
{ "mcpServers": { "drissionpage": { "command": "drissionpage-mcp" } } }Restart Claude Code and start using!
๐ฏ Quick Examples
Navigate and Screenshot
"Visit https://example.com and take a screenshot for me"
Search and Extract
"Go to Wikipedia, search for Python, and get the first paragraph"
Form Automation
"Fill out the form at https://httpbin.org/forms/post and submit it"
Data Scraping
"Get the top 10 news headlines from news.ycombinator.com"
๐ ๏ธ 14 Powerful Tools
๐ Navigation (4 tools)
page_navigate- Navigate to any URLpage_go_back/page_go_forward- Browser historypage_refresh- Reload current page
๐ฏ Element Interaction (3 tools)
element_find- Find elements by CSS selector or XPathelement_click- Click any elementelement_type- Input text into elements
๐ธ Page Operations (5 tools)
page_screenshot- Capture full page or viewportpage_resize- Adjust browser windowpage_click_xy- Click by coordinatespage_close- Close browserpage_get_url- Get current URL
โฑ๏ธ Wait Operations (2 tools)
wait_for_element- Wait for element to appear (with timeout)wait_time- Delay execution
๐ Documentation
| Guide | Description |
|---|---|
| QUICKSTART.md | 5-minute setup guide |
| USAGE_GUIDE.md | Complete usage reference |
| TESTING_AND_INTEGRATION.md | Integration with MCP clients |
| examples/README.md | Configuration examples |
๐๏ธ Architecture
Built with clean, modular design:
DrissionMCP/
โโโ src/
โ โโโ cli.py # Entry point
โ โโโ server.py # MCP server
โ โโโ context.py # Browser management
โ โโโ response.py # Response formatting
โ โโโ tab.py # Page operations
โ โโโ tools/ # 14 automation tools
โโโ examples/ # Configuration templates
โโโ tests/ # Unit tests
โโโ playground/ # Testing utilities
Key Principles:
- โ Type-safe Pydantic models for all tools
- โ Async/await throughout
- โ Clean separation of concerns
- โ Comprehensive error handling
- โ Full test coverage
๐ง Configuration
Basic Setup (Recommended)
{
"mcpServers": {
"drissionpage": {
"command": "drissionpage-mcp"
}
}
}
Advanced Setup
{
"mcpServers": {
"drissionpage": {
"command": "drissionpage-mcp",
"args": ["--log-level", "DEBUG"],
"env": {
"CHROME_PATH": "/custom/path/to/chrome"
}
}
}
}
See examples/README.md for more configuration options.
๐ Requirements
- Python 3.8+ (3.11+ recommended)
- Chrome or Chromium browser
- Any MCP-compatible client: Claude Code, Claude Desktop, Cursor, VS Code, etc.
๐งช Testing
Verify Installation
# Quick verification
python -c "from DrissionPage import ChromiumPage; p = ChromiumPage(); print('โ
Ready')"
# Or run tests
pip install -e ".[dev]"
pytest tests/
Try It Out
# Interactive testing
python playground/local_test.py
# Quick start validation
python playground/quick_start.py
๐ Use Cases
โ Automated Testing - Test web applicationsโ Data Scraping - Extract structured data from websitesโ Form Automation - Fill and submit formsโ Monitoring - Check for updates or changesโ Screenshot Verification - Capture and verify page stateโ Content Analysis - Analyze web content programmatically
๐ Troubleshooting
Tools Not Loading?
drissionpage-mcp --version
Should output: drissionpage-mcp 0.1.0
Browser Issues?
# Check browser installation
which google-chrome # Linux
which chromium # macOS
Claude Code Not Finding Server?
- Verify config file path
- Restart Claude Code after changes
- Check logs:
drissionpage-mcp --log-level DEBUG
See TESTING_AND_INTEGRATION.md for complete troubleshooting guide.
๐ Project Status
| Component | Status |
|---|---|
| Core Features | โ Complete |
| Testing | โ 100% Coverage |
| Documentation | โ Comprehensive |
| Production Ready | โ Yes |
| PyPI Package | โ Published |
Version: 0.1.0 | License: Apache 2.0 | Maintained: โ Active
๐บ๏ธ Roadmap
Current (v0.1.0)
- 14 core automation tools
- Full MCP protocol support
- Production-ready codebase
- Comprehensive documentation
- PyPI distribution
Future (v0.2+)
- Form handling utilities
- File upload support
- Shadow DOM selectors
- Session persistence
- Proxy support
- Network interception
๐ Integration Examples
Claude Code
{
"mcpServers": {
"drissionpage": {
"command": "drissionpage-mcp"
}
}
}
Claude Desktop
{
"mcpServers": {
"drissionpage": {
"command": "drissionpage-mcp"
}
}
}
See examples/ for more client configurations.
๐ค Contributing
Contributions are welcome!
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if needed
- Submit a pull request
๐ Security
- Does not store or transmit sensitive data
- Runs locally in your environment
- No external API calls
- Respects website terms of service
Best Practices:
- Don't automate without permission
- Use on test environments when possible
- Respect robots.txt
- Add appropriate delays between actions
๐ License
Licensed under Apache License 2.0 - see LICENSE
๐ Acknowledgments
- DrissionPage - Excellent browser automation library
- Model Context Protocol - Protocol specification
- Claude - Making AI assistants capable and useful
๐ฌ Support
- ๐ Full Documentation
- ๐ Report Issues
- ๐ก Feature Requests
- ๐ GitHub Repository
- ๐ฆ PyPI Package
๐ Statistics
๐ Show Your Support
If you find this project useful, please consider:
- โญ Starring on GitHub
- ๐ค Sharing with your network
- ๐ฌ Leaving feedback or suggestions
- ๐ Reporting issues to help improve
Made with โค๏ธ by Wukunyun
Ready to automate your workflows? Install now: pip install drissionpage-mcp