Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

PrismSearch

by xiaonerner0821version 0.3.3i★ –iRuns on your computer
Registry nameio.github.xiaonerner0821/prismsearch

Install

Overview

Description from the maker (original English)

Multi-engine web, image and WeChat search with page/PDF fetching over local MCP stdio.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Design, images & audio
  • You need to fill in: BRAVE_API_KEY, GOOGLE_API_KEY

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: BRAVE_API_KEY, GOOGLE_API_KEY, GOOGLE_CSE_ID, PRISMSEARCH_HOME, PRISMSEARCH_CONFIG

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "prismsearch": {
      "command": "npx",
      "args": [
        "-y",
        "prismsearch"
      ],
      "env": {
        "BRAVE_API_KEY": "your-value",
        "GOOGLE_API_KEY": "your-value",
        "GOOGLE_CSE_ID": "your-value",
        "PRISMSEARCH_HOME": "your-value",
        "PRISMSEARCH_CONFIG": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add prismsearch --env BRAVE_API_KEY=your-value --env GOOGLE_API_KEY=your-value --env GOOGLE_CSE_ID=your-value --env PRISMSEARCH_HOME=your-value --env PRISMSEARCH_CONFIG=your-value -- npx -y prismsearch

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "prismsearch": {
      "command": "npx",
      "args": [
        "-y",
        "prismsearch"
      ],
      "env": {
        "BRAVE_API_KEY": "your-value",
        "GOOGLE_API_KEY": "your-value",
        "GOOGLE_CSE_ID": "your-value",
        "PRISMSEARCH_HOME": "your-value",
        "PRISMSEARCH_CONFIG": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "prismsearch": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "prismsearch"
      ],
      "env": {
        "BRAVE_API_KEY": "your-value",
        "GOOGLE_API_KEY": "your-value",
        "GOOGLE_CSE_ID": "your-value",
        "PRISMSEARCH_HOME": "your-value",
        "PRISMSEARCH_CONFIG": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • BRAVE_API_KEY secret env
    Brave Search API key (optional, comma-separated for rotation)
  • GOOGLE_API_KEY secret env
    Google Custom Search API key (optional, comma-separated for rotation)
  • GOOGLE_CSE_ID env
    Google Programmable Search Engine ID (cx), used with GOOGLE_API_KEY
  • PRISMSEARCH_HOME env
    Local data directory for SQLite cache and default config lookup (optional)
  • PRISMSEARCH_CONFIG env
    Path to a YAML/JSON/TOML config file (optional)

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account xiaonerner0821, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Design, images & audioi

  • More stars than 0% of the other 2204 servers in this category
  • Published to the registry more recently than 85% of the other 2204 servers in this category
  • Basic checks equal to or better than 100% of the other 2204 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is PrismSearch safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: BRAVE_API_KEY, GOOGLE_API_KEY

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.3.3) reached the registry 5 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

Runs on your computer★ 16,165MITUpdated 5 months ago
Install

Claude Real Video

by HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

Runs on your computer★ 2,284MITUpdated 2 months ago
Install

Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.

Runs in the cloud★ 2,152Updated 13 months ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

PrismSearch

简体中文 | English

A multi-engine web search MCP (Model Context Protocol) server that aggregates search results from multiple search engines.

Like a prism splits light into a spectrum, PrismSearch disperses your search queries across multiple engines for multi-perspective results.

Why: web search for your AI agent, no search account required

The built-in web search of AI coding agents such as Claude Code and DeepSeek Harness usually depends on an official account or a separately configured search API key. Use a third-party model, go through your own gateway, or simply skip the search account, and the built-in search is often unavailable — the agent ends up coding "closed-book".

PrismSearch adds that capability back with one command:

  • No account, no API key out of the box: the default engines (Bing, Baidu, …) scrape public result pages, so there is nothing to sign up for. Enable browser fetching (fetcher.browser.enabled: true, requires Playwright) and Google works without a key too. Brave / Google API keys are picked up automatically when present for extra reliability
  • Any model, any client: plain MCP — works with Claude Code, DeepSeek Harness, Cursor, VS Code, Cline and any other MCP-capable client
  • More than search: fetch_page reads web pages and PDFs (Markdown output, paginated for long documents), wechat_search searches WeChat Official Account articles — the "found it, now read it" half
  • Works behind restrictive networks: Chinese sources (Baidu, Sogou, 360, WeChat) work out of the box; when an engine is blocked or rate-limited the request falls back to the next one automatically
  • Clean results: sponsored results injected by search engines are removed — see "Ad filtering" below
# Claude Code

claude mcp add prismsearch -- npx -y prismsearch

[!WARNING]

Scraping engines fetch results from public web pages. You are responsible for complying with each search engine's and target site's terms of service, robots policies and local laws, and for keeping request rates reasonable.

The learning/research recommendation is not an additional restriction on the Apache-2.0 license. This project is not affiliated with any search engine company. See the full Disclaimer at the end.

Features

  • 9 Search Sources: Google, Bing, Baidu, Brave, DuckDuckGo, Yandex, Sogou, 360 Search, plus WeChat Official Account articles — with an extensible engine plugin system
  • 5 MCP Tools: web_search, image_search, fetch_page, wechat_search, list_engines
  • Dual Transport: stdio (local) and Streamable HTTP (remote) MCP transport
  • Smart Engine Selection: Auto-selects the best engine based on availability, latency, success rate, and language matching, with cross-engine fallback
  • Google Triple Strategy: Custom Search API → browser rendering → plain HTTP, with automatic fallback and sticky success memory
  • Ad Filtering: Baidu promotions, Bing / Google / DuckDuckGo sponsored results and 360 / Sogou paid slots are dropped and don't eat into the requested count; anything that slips through is filtered again by its landing URL (paid-click tracking parameters)
  • Web Page Fetching: Fetch and extract content from URLs in HTML, plain text, or Markdown; optional Playwright rendering for JS-heavy pages
  • Image Search: Multi-engine image search with size/type filters and optional base64 thumbnails
  • Caching: Configurable TTL and LRU eviction with pluggable backends — cache.backend: sqlite | memory | redis (SQLite by default)
  • Security: SSRF protection, rate limiting, domain whitelist/blacklist, optional Bearer auth for remote mode
  • Hot Reload: Configuration file watching with automatic reload
  • Flexible Config: YAML/JSON/TOML configuration with environment variable overrides
Example

A single web_search call returns structured, deduplicated results:

{

"results": [ { "title": "Model Context Protocol - Introduction", "url": "https://modelcontextprotocol.io/introduction", "snippet": "The Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools.", "source": "brave", "position": 1 } ], "totalResults": 10, "engine": "brave", "searchTime": 842, "cached": false, "page": 1, "hasMore": true }

Every item in results[] always has title, url, snippet, source (the engine) and position, and may have timestamp; with mode=aggregate items also carry sources and the response carries engines. When the engine ignored some parameters the response carries warnings. The same JSON is returned both as structuredContent and as text in content.

Architecture
flowchart LR

Client["MCP client Claude Code / Cursor / …"]

subgraph Transport["Transport src/server"] Stdio["stdio"] Http["Streamable HTTP auth · Host/Origin check · rate limit"] end

subgraph Tools["Tools src/tools"] WS["web_search"] IS["image_search"] WX["wechat_search"] FP["fetch_page"] LE["list_engines"] end

subgraph Search["Search orchestration"] Sel["Engine selection / circuit breaker engine-selector"] Chain["Fallback chain · aggregate RRF dedup · ad filter"] end

Engines["Engine adapters src/engines Google · Bing · Brave · Baidu · DDG Yandex · Sogou · 360 · Sogou WeChat"] Cache[("Cache src/cache sqlite / memory / redis")]

subgraph Fetch["Fetching src/fetcher"] SSRF["SSRF guard src/security/ssrf-guard"] HF["HTTP fetcher"] BF["Browser fetcher Playwright"] WK["Remote workers ts-worker / py-worker"] EX["Content extraction Readability / PDF"] end

Client --> Stdio & Http Stdio & Http --> Tools WS & IS --> Sel --> Chain --> Engines WX --> Engines LE -. status .-> Sel WS & IS & WX & FP -. read/write .-> Cache FP --> SSRF --> HF & BF & WK HF & BF & WK --> EX

In stdio mode there is a single client, so rate limiting happens at the tool layer; in HTTP mode the transport rate-limits per client. Whether fetch_page is delegated to a worker is controlled by workers.useFor; when no worker is available it falls back to the local fetchers, and the final URL returned by a worker is SSRF-checked again.

Requirements

  • Node.js ≥ 22.19
  • Native module better-sqlite3 ships prebuilt binaries for mainstream platforms (Windows/macOS/Linux, x64/arm64); if prebuilds are unavailable on your platform, a C++ build toolchain is required
  • Optional: Playwright for browser rendering. It is an optionalDependency — installed by default (browsers download on install); use npm install --omit=optional for a minimal install. To add it later: npm install playwright && npx playwright install chromium

Quick Start

Installation
npm install prismsearch
Usage with Claude Code
claude mcp add prismsearch -- npx -y prismsearch

Or add to your MCP settings:

{

"mcpServers": { "prismsearch": { "command": "npx", "args": ["-y", "prismsearch"], "env": { "BRAVE_API_KEY": "optional" } } } }

Other clients
ClientConfig locationNotes
Claude Desktopclaude_desktop_config.jsonSame mcpServers snippet
Cursor~/.cursor/mcp.json or .cursor/mcp.jsonSame mcpServers snippet
VS Code (Copilot).vscode/mcp.jsonTop-level key is servers; add "type": "stdio"
Windsurf / Cline etc.Their own MCP configGeneric command + args form
Remote (HTTP)Any Streamable HTTP clientURL http://host:3000/mcp, header Authorization: Bearer

On Windows, if the client cannot find npx, set command to "cmd" and args to ["/c", "npx", "-y", "prismsearch"].

Use as an Agent Skill

skills/prismsearch/SKILL.md is an Agent Skill that teaches the agent when to use each tool: search first and then read the source pages, use timeRange / aggregate mode, fall back to browser rendering, page through long documents, and handle engine failures. The MCP server above still has to be connected; the skill only adds usage guidance.

To install it for Claude Code, copy the folder into your skills directory:

# All projects

cp -r skills/prismsearch ~/.claude/skills/

Current project only

cp -r skills/prismsearch .claude/skills/

Other agents that support the Agent Skills format can load the same folder.

Use in DeepSeek Harness

dsh-plugin-prismsearch is a DeepSeek Harness plugin that installs both the MCP server and the skill in one step. In the DSH Web GUI, open Plugins → Add plugin and enter:

dsh-plugin-prismsearch

The plugin starts a pinned prismsearch version through npx, so Node.js >=22.19.0 must be on PATH. The first start downloads the package and can take a few seconds. Tools appear as mcp__prismsearch__web_search and so on. If BRAVE_API_KEY, GOOGLE_API_KEY or GOOGLE_CSE_ID are set where DSH starts, they are forwarded to the server. If you have already added an MCP entry with serverName: prismsearch by hand, remove it or rename it first, otherwise the two entries conflict. See the plugin README for details.

Engine capabilities
EngineWebImageMethodDefaultNotes
Google✅✅API / browser / HTTPonCustom Search API is the most reliable; plain HTTP usually hits the JS wall
Bing✅✅HTTP scrapingon
Brave✅✅Official APIonNeeds BRAVE_API_KEY; skipped when absent
Baidu✅✅HTTP scraping / JSON APIonChinese content
DuckDuckGo✅—HTTP scrapingoffFrequent requests trigger a bot challenge
Yandex✅—HTTP scrapingoff
Sogou✅—HTTP scrapingoffChinese content
360 Search✅—HTTP scrapingoffChinese content
Parameter support per engine (web search)

How each web_search parameter is translated for each engine. "—" means the engine has no equivalent; the parameter is accepted but ignored, and the response's warnings lists which parameters were dropped. list_engines also declares per-engine suppo

Only the beginning is shown; read the rest in the repo

Ask PopNx