myscrape
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@myscraperesearch the latest AI breakthroughs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
myscrape
A self-contained, single-codebase web-research MCP server for local LLM agents.
It mimics the spirit of Claude's WebSearch / WebFetch and adds a cooked
web_research tool that runs the whole search → fetch → synthesize loop with a
local LLM inside the box.
📖 Full user guide → docs/USER_GUIDE.md — setup,
running (local/Docker), the tools, configuration, and troubleshooting.
Tools
Tool | Altitude | LLM inside? |
| raw | no |
| raw | no |
| cooked | yes |
See specs/SPEC.md for the interface contract, and the design
docs: specs/IMPLEMENTATION_OPTIONS.md,
specs/TECH_STACK.md,
specs/BENCHMARK.md. Decisions and checkpoints are logged
in specs/DEVLOG.md; empirical work in
specs/EXPERIMENTS.md; search-provider options in
specs/PROVIDERS.md.
Related MCP server: free-search-mcp
Tooling
Stable tools only — no type checker; we rely on tests + linting instead.
uv — env, deps, locking, running
Ruff — lint + format
pytest — tests (TDD: red → green → refactor)
Quickstart
uv sync # create venv, install deps
uv run pytest # run the test suite
uv run ruff check . && uv run ruff format --check . # lint + format gate
uv run bench # run the stability benchmark (any time)Running the MCP server
uv run myscrape # stdio transport — a local MCP client spawns thisweb_research needs a local, OpenAI-compatible LLM endpoint (Ollama / llama.cpp /
LM Studio). Configure via MYSCRAPE_* env vars (see src/myscrape/config.py):
export MYSCRAPE_LLM_BASE_URL=http://localhost:11434/v1
export MYSCRAPE_LLM_MODEL=qwen2.5:14b # eval winner on a 12GB GPU (see specs/EXPERIMENTS.md)web_search and web_fetch need no LLM. The proven stability operating point
(8s + 2s jitter) is the default; override with MYSCRAPE_REQUEST_MIN_INTERVAL.
On a server (Docker)
Uses the host's native Ollama (GPU) — see specs/SERVING.md.
ollama pull qwen2.5:14b # on the host (the eval winner)
docker compose up --build # myscrape on :8000, talks to host OllamaThe container is one process, includes Chromium for dynamic fetch, speaks
streamable-http at http://localhost:8000/mcp, and caps concurrent research
at 2 (the GPU serializes synthesis — see EXPERIMENTS E-007). For a self-contained
Ollama-in-container setup with GPU passthrough: docker compose --profile ollama up.
Use it from a coding session (Claude Code)
A project .mcp.json points at the running server:
claude mcp add --transport http myscrape http://localhost:8000/mcp # or use .mcp.jsonThen web_search, web_fetch, and web_research are available as tools in the
session. (For local use without Docker, run uv run myscrape over stdio instead.)
Tools
Tool | Input (key fields) | Returns |
|
| ranked results (no fetch, no LLM) |
|
| clean markdown + metadata (no LLM) |
|
| cited answer + sources + coverage |
Status
Implemented end-to-end: all three tools, the full search → fetch → rank →
synthesize loop, behind a stability gate that passes (ratelimit_rate == 0,
extraction 100% over fetchable pages). Static and dynamic (Playwright) fetch
work — web_fetch auto-escalates to a headless browser for JS-rendered pages
(live-validated on quotes.toscrape.com/js). See specs/DEVLOG.md
for the full build log and specs/EXPERIMENTS.md for the
empirical work.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Bonifatius94/myscrape'
If you have feedback or need assistance with the MCP directory API, please join our Discord server