{"id":50343170,"url":"https://github.com/shakedzy/webmcp","last_synced_at":"2026-05-29T18:30:47.668Z","repository":{"id":352489621,"uuid":"1196425464","full_name":"shakedzy/webmcp","owner":"shakedzy","description":"The ultimate web-access MCP for any agent","archived":false,"fork":false,"pushed_at":"2026-04-19T19:51:14.000Z","size":170,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-29T18:30:45.412Z","etag":null,"topics":["agent","mcp","web"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shakedzy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-30T17:28:35.000Z","updated_at":"2026-04-19T19:51:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shakedzy/webmcp","commit_stats":null,"previous_names":["shakedzy/webmcp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shakedzy/webmcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakedzy%2Fwebmcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakedzy%2Fwebmcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakedzy%2Fwebmcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakedzy%2Fwebmcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shakedzy","download_url":"https://codeload.github.com/shakedzy/webmcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakedzy%2Fwebmcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33666290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","mcp","web"],"created_at":"2026-05-29T18:30:45.314Z","updated_at":"2026-05-29T18:30:47.661Z","avatar_url":"https://github.com/shakedzy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌐 Web MCP\n\nThe ultimate web-access MCP server. Combines extended Playwright browser automation with stealth capabilities, free web search, and dual-mode HTML-to-Markdown conversion.\n\n## Features\n\n- **Browser automation** with three engines: vanilla [Playwright](https://playwright.dev/), \n[Camoufox](https://camoufox.com/) (Firefox stealth), and [CloakBrowser](https://cloakbrowser.dev/) (Chromium stealth)\n- **Free web search** via [DDGS](https://github.com/deedy5/ddgs) (multi-backend: Bing, Brave, DuckDuckGo, Google, Yahoo, Wikipedia)\n- **HTML-to-Markdown** in two modes: as-is structural conversion \n([markdownify](https://github.com/matthewwithanm/python-markdownify)) and article extraction ([Trafilatura](https://trafilatura.readthedocs.io/))\n\n## Requirements\n\n- Python 3.12+\n- [uv](https://docs.astral.sh/uv/getting-started/installation/)\n\n## Setup\n\n```bash\nuv sync\nuv run playwright install\n```\n\n## Usage\n\n### Run MCP server over stdio\n\n```bash\nuv run python -m web_mcp\n```\n\n### Run MCP server over HTTP \n\n1. Start Web MCP in HTTP mode:\n\n```bash\nuv run python -m web_mcp --http\n```\n\nBy default, MCP server will run at:\n```text\nhttp://127.0.0.1:9000/mcp\n```\n\n- `--host` — bind address; default `127.0.0.1`, or set `WEB_MCP_HOST`.\n- `--port` — bind port; default `9000`, or set `WEB_MCP_PORT`.\n- `--path` — MCP URL path; default `/mcp`, or set `WEB_MCP_PATH`.\n\n### Add to MCP configuration (stdio-based)\n\n```json\n{\n  \"mcpServers\": {\n    \"web-mcp\": {\n      \"command\": \"uv\",\n      \"args\": [\"run\", \"--directory\", \"/path/to/web-mcp\", \"python\", \"-m\", \"web_mcp\"]\n    }\n  }\n}\n```\n\n## Tools\n\n### Browser Tools\n\n| Tool | Description |\n|------|-------------|\n| `browser_configure` | Set engine (playwright/camoufox/cloakbrowser), stealth options, proxy, viewport |\n| `browser_navigate` | Navigate to URL |\n| `browser_navigate_back` | Go back in history |\n| `browser_snapshot` | Get accessibility tree with numbered element refs |\n| `browser_take_screenshot` | Capture page or element screenshot |\n| `browser_click` | Click an element by ref |\n| `browser_type` | Type text into an element |\n| `browser_fill_form` | Fill multiple form fields at once |\n| `browser_select_option` | Select dropdown option(s) |\n| `browser_hover` | Hover over an element |\n| `browser_drag` | Drag and drop between elements |\n| `browser_press_key` | Press a keyboard key |\n| `browser_evaluate` | Execute JavaScript on the page |\n| `browser_wait_for` | Wait for time, text, or selector |\n| `browser_tabs` | List, create, close, or switch tabs |\n| `browser_resize` | Resize viewport |\n| `browser_file_upload` | Upload file(s) to a file input |\n| `browser_handle_dialog` | Handle alert/confirm/prompt dialogs |\n| `browser_console_messages` | Get console output |\n| `browser_network_requests` | Get network request log |\n| `browser_get_html` | Get page HTML source |\n| `browser_get_as_markdown` | Current page HTML as Markdown (same conversion as `fetch_as_markdown`) |\n| `browser_close` | Close the browser |\n\n### Search Tools\n\n| Tool | Description |\n|------|-------------|\n| `web_search` | Text search with configurable backend |\n| `news_search` | News search |\n| `image_search` | Image search |\n\n### Content Tools\n\n| Tool | Description |\n|------|-------------|\n| `html_to_markdown` | Convert HTML to Markdown as-is (full structure) |\n| `extract_article` | Extract article from HTML via Trafilatura |\n| `fetch_raw_page_as_html` | HTTP-fetch a URL, return raw HTML |\n| `fetch_as_markdown` | HTTP-fetch + convert to Markdown |\n| `fetch_article` | HTTP-fetch + extract article |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshakedzy%2Fwebmcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshakedzy%2Fwebmcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshakedzy%2Fwebmcp/lists"}