SearchForge logo
Health: ActiveRecent health check succeeded.Last checked 8/7/2026, 10:35:58 PM

SearchForge

divyanshu-iitian
View Repository1

Free capability-routed search and web reading for agents: GitHub, Crossref, Hacker News, Wikipedia, private SearXNG, and URL-to-Markdown, with live health diagnostics and no telemetry. Exposes websearch, readurl, and searchstatus.

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ€” or use 1-click editor setup below.

Manual Client & Custom JSON ConfigExpand JSON โ–พ

Install Config Generator

claude_desktop_config.json
{
  "mcpServers": {
    "divyanshu-iitian-searchforge": {
      "command": "npx",
      "args": [
        "-y",
        "--yes"
      ]
    }
  }
}

๐Ÿ’ก Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Documentation Overview

SearchForge

Open-source web search API and MCP server for LLMs, agents, and RAG.

CI License: MIT Node.js MCP Website Official MCP Registry

One local gateway. Intent-aware search. Clean Markdown. REST, MCP, CLI, and TypeScript.

Website ยท Quick start ยท Free tools ยท MCP ยท API ยท Design


SearchForge is a free, open-source web search API and MCP server for LLMs, AI agents, and retrieval-augmented generation (RAG) pipelines. It provides a predictable retrieval layer without forcing every project to integrate a paid search vendor. SearchForge routes each query to the right source, isolates provider failures, deduplicates URLs, fuses rankings, and turns public pages into LLM-ready Markdown.

It does not generate answers, hide citations, scrape public SearXNG instances, or send telemetry.

What you get

CapabilityDefault sourceCost / credentials
autoIntent-routed source mixNo key by default
webWikipedia; optional private SearXNGNo key / self-hosted
codeGitHub repository searchNo key; token optional
academicCrossref works and DOI metadataNo key
communityHacker News via AlgoliaNo key, community service
read_urlJina ReaderNo key, currently rate-limited

SearchForge starts with all no-key adapters enabled. auto is the default and routes code, research, and current/community intent to relevant sources while retaining a web fallback. A GitHub token only raises the public API quota, and Brave remains an optional keyed backend. Broad, independent web metasearch is provided by the included SearXNG stack.

Quick start

Try it without cloning

Terminal
npx --yes --package github:divyanshu-iitian/SearchForge \
  searchforge search "latest open-source agent frameworks"

The first run downloads and builds the package from GitHub. Searches use intent-aware auto routing unless you select a category.

Zero-key local CLI

bash
git clone https://github.com/divyanshu-iitian/SearchForge.git
cd SearchForge
npm install
npm run build

node dist/cli.js search "latest open-source agent frameworks"
node dist/cli.js search "retrieval augmented generation" --category academic
node dist/cli.js search "local LLM tooling" --category community
node dist/cli.js read "https://example.com"
node dist/cli.js doctor

Full web search with private SearXNG

Terminal
docker compose up --build
Terminal
curl -s http://localhost:3000/v1/search \
  -H "content-type: application/json" \
  -d '{"query":"open source vector databases","category":"web","limit":5}'

This starts SearchForge on port 3000 and a private, JSON-enabled SearXNG on port 8080. Before exposing the stack, change the SearXNG secret, set SEARCHFORGE_API_KEY, and terminate TLS at a trusted proxy.

Free tools

Search by capability

bash
searchforge search "latest open-source agent frameworks"
searchforge search "browser agent" --category code
searchforge search "semantic reranking" --category academic --json
searchforge search "Show HN search engine" --category community

The default auto category detects code, academic, and current/community signals and queries the matching source families alongside the web fallback. Explicit categories prevent irrelevant providers from being queried. An explicit providers list overrides category routing, which is useful for evaluations.

Read a URL as Markdown

bash
searchforge read "https://example.com/article"

read_url accepts public HTTP(S) URLs only. Credentials, localhost, private IP literals, and non-web protocols are rejected. Responses are size-bounded, timed out, and cached.

Diagnose the whole retrieval path

bash
searchforge doctor

Doctor performs real, bounded probes and reports each provider's access tier, capability, latency, and error. A failed source produces degraded, not a misleading all-or-nothing status.

MCP

SearchForge exposes three stdio tools:

  • web_search โ€” routed, citation-ready structured search
  • read_url โ€” clean Markdown from a public URL
  • search_status โ€” live capability and latency report
config.json
{
  "mcpServers": {
    "searchforge": {
      "command": "node",
      "args": ["/absolute/path/to/SearchForge/dist/mcp.js"],
      "env": {
        "SEARCHFORGE_SEARXNG_URL": "http://localhost:8080"
      }
    }
  }
}

The search and status tools return MCP structured content as well as readable text.

Run the MCP server straight from GitHub without a clone:

config.json
{
  "mcpServers": {
    "searchforge": {
      "command": "npx",
      "args": [
        "--yes",
        "--package",
        "github:divyanshu-iitian/SearchForge",
        "searchforge-mcp"
      ]
    }
  }
}

SearchForge is also published in the official MCP Registry as io.github.divyanshu-iitian/searchforge. To run the registry-backed OCI image directly from any MCP client that supports a Docker command:

config.json
{
  "mcpServers": {
    "searchforge": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/divyanshu-iitian/searchforge-mcp:0.2.0"
      ]
    }
  }
}

REST API

Search

http
POST /v1/search
Content-Type: application/json

{
  "query": "open source reranking models",
  "category": "academic",
  "limit": 8,
  "language": "en",
  "freshness": "month",
  "safeSearch": "moderate"
}
config.json
{
  "schemaVersion": "1.0",
  "query": "open source reranking models",
  "category": "academic",
  "results": [
    {
      "title": "Example work",
      "url": "https://doi.org/10.0000/example",
      "snippet": "Authors ยท Publisher ยท journal-article",
      "source": "crossref",
      "sources": ["crossref"],
      "score": 0.016393
    }
  ],
  "providers": [
    {
      "provider": "crossref",
      "ok": true,
      "latencyMs": 241,
      "resultCount": 8
    }
  ],
  "tookMs": 243,
  "cached": false
}

Read

http
POST /v1/read
Content-Type: application/json

{"url":"https://example.com/article"}

Other endpoints:

text
GET /healthz       Process liveness
GET /v1/providers  Configured capabilities and access tiers
GET /v1/doctor     Live dependency health

See the full OpenAPI contract.

TypeScript SDK

server.ts
import {
  CrossrefProvider,
  GithubProvider,
  JinaReader,
  SearchForge,
} from "searchforge-rag";

const forge = new SearchForge({
  providers: [new GithubProvider(), new CrossrefProvider()],
  reader: new JinaReader(),
  timeoutMs: 8_000,
});

const evidence = await forge.search({
  query: "agentic retrieval",
  category: "academic",
  limit: 10,
});

const page = await forge.read("https://example.com/research");

Until an npm release is published:

Terminal
npm install github:divyanshu-iitian/SearchForge

Provider details

ProviderCapabilityAccessEnabled
SearXNGWebSelf-hosted, no vendor feeSEARCHFORGE_SEARXNG_URL
WikipediaWeb knowledge fallbackNo keyAlways
GitHubCode repositoriesNo key; 60 unauthenticated REST requests/hour, search has tighter limitsAlways
CrossrefAcademic metadataNo key; mailto recommendedAlways
HN AlgoliaCommunityNo key; community-operated availabilityAlways
Jina ReaderURL to MarkdownNo key; documented no-key quota currently 20 RPMAlways
Brave SearchWebAPI keyBRAVE_SEARCH_API_KEY

SearchForge intentionally does not configure public SearXNG instances. They often disable JSON or limit automated traffic; the Docker stack is the stable free path.

How it works

text
Agent / RAG / MCP client
           |
      validate + route
           |
  +--------+---------+-----------+
  |        |         |           |
 web      code    academic   community       read_url
  |        |         |           |              |
SearXNG  GitHub   Crossref   Hacker News    Jina Reader
Wikipedia
  +--------+---------+-----------+
           |
 normalize -> canonicalize -> deduplicate -> reciprocal-rank fusion
           |
 versioned evidence + provenance + per-source health

Each idempotent provider call has its own abortable timeout. One outage cannot erase healthy results. Tracking parameters are removed before deduplication, and every contributing provider remains in sources.

This capability-first design is inspired by Agent Reach. Agent Reach helps an agent operate many upstream tools directly; SearchForge complements that approach with one stable, embeddable retrieval API for RAG applications.

Configuration

VariableDefaultPurpose
SEARCHFORGE_SEARXNG_URLunsetPrivate SearXNG base URL
GITHUB_TOKENunsetOptional GitHub quota increase
CROSSREF_MAILTOunsetCrossref polite-pool identity
BRAVE_SEARCH_API_KEYunsetOptional Brave backend
SEARCHFORGE_API_KEYunsetREST bearer or x-api-key
SEARCHFORGE_PORT3000REST port
SEARCHFORGE_HOST127.0.0.1Bind address
SEARCHFORGE_TIMEOUT_MS8000Per-dependency timeout
SEARCHFORGE_CACHE_TTL_MS300000In-memory cache TTL
SEARCHFORGE_CACHE_MAX_ENTRIES500Cache entry bound
SEARCHFORGE_RATE_LIMIT60Requests/client/minute

Production boundary

  • Set an API key before binding to a public interface.
  • Search results and page content are untrusted input; delimit them and apply prompt-injection defenses.
  • The built-in cache and rate limiter are process-local. Use shared infrastructure for multiple replicas.
  • Provider bodies and credentials are excluded from surfaced errors.
  • healthz proves the process is alive; /v1/doctor checks dependencies.

See SECURITY.md, CONTRIBUTING.md, and CHANGELOG.md.

Principles

  1. Evidence over generated answers
  2. Free and self-hosted paths before vendor lock-in
  3. Partial results over total failure
  4. Honest capability and quota reporting
  5. Stable contracts and explicit provenance
  6. No telemetry by default

License

MIT ยฉ Divyanshu.

If SearchForge helps your agent, star the repository and share your integration in Discussions.

Related MCP Servers

View all alternatives

Frequently Asked Questions about SearchForge

How do I install the divyanshu-iitian/SearchForge MCP server?

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "searchforge": { "command": "npx", "args": ["-y", "divyanshu-iitian/SearchForge"] } }

What does divyanshu-iitian/SearchForge do?

Free capability-routed search and web reading for agents: GitHub, Crossref, Hacker News, Wikipedia, private SearXNG, and URL-to-Markdown, with live health diagnostics and no telemetry. Exposes websearch, readurl, and searchstatus.

Is the divyanshu-iitian/SearchForge MCP server free to use?

Yes. divyanshu-iitian/SearchForge is listed on AllMCPs as a free, open Model Context Protocol server you can install into Claude Desktop, Cursor, or any MCP-compatible client.

Technical Specs & Signals

TransportSTDIO
RuntimeNode.js
Health CheckActive
Views0
Installs0
GitHub stars1
41Quality signal: Fair ยท 41/100How this signal is calculated โ–พ
Server availabilityNot measured

Not scored for repo-hosted servers โ€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership8/20
Documentation & tools22/30
Adoption1/15
Community engagement0/10

A guidance signal from public completeness & health data โ€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

โ˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Free dofollow backlink: after claiming, verify your product site and place a dofollow AllMCPs badge โ€” we recheck it stays live.

Claim & get free dofollow

Promote this listing

Optional paid placement. Free listings stay free forever.

Featured boost7 days in the spotlight ยท from $12/wk
Weeks
1

โ†’ Runs until Aug 15, 2026

Category sponsorTop-of-category sponsorship ยท from $18/wk
Weeks
1

โ†’ Runs until Aug 15, 2026

Cancel anytime โ€” no long-term lock-in.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.