Independent by design · no pay-to-rank placements  · How we evaluate tools →
Anclum Submit
N

nkapila6/mcpsurfr

RAG-like web search via MCP

Before you install: a copy-paste command is available · no license recorded · link reachable

View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Install & config
  1. Copy the command above
  2. Paste it as one entry under mcpServers in claude_desktop_config.json — local servers take command + args (example: clients)
  3. Restart your client
Client config (built from the install command this repo gives)
{
  "mcpServers": {
    "nkapila6-mcpsurfr": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/nkapila6/mcpsurfr", "mcpsurfr"]
    }
  }
}

Parsed from the README we fetched on 2026-10-26; we have not executed it.

command/args come from the install command the repository states. When it is ambiguous, the project README wins.
VS Code (.vscode/mcp.json - the key is servers)
{
  "servers": {
    "nkapila6-mcpsurfr": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/nkapila6/mcpsurfr", "mcpsurfr"]
    }
  }
}
Same server, but VS Code keeps it under <code>servers</code>.
Claude Code (command line)
claude mcp add --transport stdio nkapila6-mcpsurfr -- uvx --from git+https://github.com/nkapila6/mcpsurfr mcpsurfr
Claude Code does not read a config file; add the server with this command.
Key names differ by client: Clients & CLI
Source
collected from the abordage/awesome-mcp list · type: MCP server
Harvest history
first seen 2026-10-24 · last seen 2026-11-14 · seen 25× · listed by 22 sources
Score
score 2,203 · 22 sources · mcp
Install
uvx --from git+https://github.com/nkapila6/mcpsurfr mcpsurfr
FAQ (answers come from our records)
How do I install it?
The repository provides this install command: uvx --from git+https://github.com/nkapila6/mcpsurfr mcpsurfr. It comes from the repository itself; we cannot guarantee it runs as-is in your client.
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
first catalogued 2026-10-24;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.

Local web search for your LLM over MCP. No API keys, and results are ranked on y

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

mermaid
%%{init: {'theme': 'base'}}%%
flowchart TD
A[LLM] -->|query| S["Search with ddgs (auto: several engines, no keys)"]
S -->|"ragsearch, deepresearch"| R["Re-rank results locally (MobileBERT on numpy)"]
R --> P[Fetch top pages, keep the main content]
P -->|page text + URLs| A
S -->|search| T1["Tier 1: pick pages by their snippets"]
T1 --> T2["Tier 2: split into passages, keyword match (BM25)"]
T2 -->|few hits| OUT["Best passages + URLs (about 800 tokens)"]
T2 -->|too many or none| T3[Tier 3: rank them by meaning]
T3 --> OUT
OUT --> A
What's in it:
No API keys. Searches go through ddgs. Its auto mode asks several engines at once and skips blocked ones.
Ranked locally. A small MobileBERT model on plain numpy re-ranks results, so only the best pages get fetched.
Clean text. Pages are fetched with browser impersonation, and only the main content is kept: no menus, cookie banners or footers. Code blocks and tables keep their lines. The same page under two URLs comes back once.
Passages instead of pages. search returns just the paragraphs that answer the question, about a tenth of the tokens. When nothing matches well, it can ask you whether you want the full pages instead.
Says what it left out. Results list skipped pages with a reason (blocked, PDF, duplicate...), cut pages are marked truncated, and fallbacks and engine failures show up as warnings. Google blocks often, so it falls back to auto on its own.
Brings its own guide. It serves a skill and a research prompt, so clients pick up how to use it without setup.
| Tool | Use it for |
| search | Start here: returns only the relevant passages. Pass keywords for better hits |
| ragsearchddgs | Full pages as text (the original mode) |
| ragsearchgoogle | Same, via Google (falls back to auto when blocked) |
| deepresearch | Several search terms across backends, merged and de-duplicated |
| deepresearchddgs / deepresearchgoogle | deepresearch shortcuts |
Backends: auto (default), brave, duckduckgo, google, grokipedia, mojeek, startpage, wikipedia, yahoo. auto and brave are the dependable ones.
## Install
With uv:
json
"mcpServers": {
"mcpsurfr": {
"command": "uvx",
"args": ["--from", "git+https://github.com/nkapila6/mcpsurfr", "mcpsurfr"]
Or with Docker (amd64 and arm64):
json
"mcpServers": {
"mcpsurfr": {
"command": "docker",
"args": ["run", "--rm", "-i", "--init", "ghcr.io/nkapila6/mcpsurfr:latest"]
Full-page tools share a 40k-character budget per call (about 10k tokens). To change it, add "env": {"MCPSURFRMAXCHARS": "80000"} to the server entry.
Not sure where your config lives? See the MCP quickstart. Tested with Claude Desktop, Claude Code, Cursor and Goose.
Coming from mcp-local-rag? Your old config keeps working, since the old URL redirects and the mcp-local-rag command still exists. Switching to the config above gets you the new name and drops the --python=3.10 pin (3.10 reaches end of life this month).
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[![Listed on Anclum](https://anclum.com/badge/listed.svg)](https://anclum.com/en/s/nkapila6-mcpsurfr/)
Source
awesome · https://github.com/nkapila6/mcpsurfr
Browse by field
MCP servers
Listed by
22 independent sources
added
today

More like this

All 6,229 →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index