Delulu - A suite of MCP tools to supercharge your LLM skillset

August 6, 2026 Β· View on GitHub

Tip

More knowing. Less guessing.

Delulu provides a suite of CLI tools and MCP (Model Context Protocol) servers to help your LLM search, crawl, and extract high-quality information from the web and academic sources.

Available Tools

AppCLI BinaryMCP ServerDescription
webfetchdelulu-fetchdelulu-webfetch-mcpWeb content fetching, HTML→Markdown, PDF/DOCX extraction
websearchdelulu-websearchdelulu-websearch-mcpMulti-engine web search (DuckDuckGo, Brave)
paper-search-arxivdelulu-arxivdelulu-arxiv-mcparXiv paper search & full-text retrieval
paper-search-iacrdelulu-iacrdelulu-iacr-mcpIACR ePrint (cryptography) paper search & PDF retrieval
paper-search-pubmeddelulu-pubmeddelulu-pubmed-mcpPubMed biomedical paper search
travel-searchdelulu-flights, delulu-hotelsdelulu-travel-mcpGoogle Flights & Hotels search
mcpifydelulu-mcpifyβ€”Convert OpenAPI specs into MCP servers
all-mcpdelulu-all-mcpdelulu-all-mcpUnified MCP server re-exporting the 21-tool union across all apps

Motivation

Tip

One chat UI to rule them all
One MCP to find them
One query to bring them all
And by the LLM bind them

Screenshots

delulu-flights-search.png delulu-hotels-search.png

Features

  • πŸͺ„ MCP Server: Works with stdio transport (Claude Desktop) and HTTP transport
  • πŸ’» CLI Tools: Direct flights and hotels commands
  • 🚦 Rate Limiting: Let's be good citizens.
  • πŸͺ Cookie Management: Let's be crafty citizens.
  • πŸ“¦ Prebuilt Binary: delulu-all-mcp for Windows/macOS/Linux Γ— x86-64/arm64, for those allergic to Docker
  • 🐳 Container Ready: Docker, Podman and Docker-Compose support with prebuilt image
  • πŸš€ High Performance: Built with Rust, Axum, and Tokio
  • ☁️ Lightweight: No browser, Selenium, or Playwright - direct queries via reverse-engineered Protobuf

Prebuilt release: v0.2.0 ships a single prebuilt binary, delulu-all-mcp, which bundles all 21 tools (travel, webfetch, websearch, arXiv/IACR/PubMed papers, mcpify). The individual apps are built from source with cargo β€” see Building from source.

Installation

πŸ“¦ Option 1: Prebuilt Binary

A single delulu-all-mcp binary is published for Windows, macOS and Linux (x86-64 and arm64). It bundles all 21 tools; the individual apps are built from source (Option 2 below).

The archives below are published with the v0.2.0 release (see Releases); until that tag exists, build from source.

  1. Quick Install - Platform-specific one-liners:
Windows (x86-64 i.e. AMD or Intel)
Invoke-WebRequest -Uri "https://github.com/mratsim/delulu/releases/latest/download/delulu-all-mcp-windows-x86_64.zip" -OutFile "delulu.zip"; Expand-Archive -Path "delulu.zip" -DestinationPath "."; Remove-Item "delulu.zip"
Windows ARM64
Invoke-WebRequest -Uri "https://github.com/mratsim/delulu/releases/latest/download/delulu-all-mcp-windows-arm64.zip" -OutFile "delulu.zip"; Expand-Archive -Path "delulu.zip" -DestinationPath "."; Remove-Item "delulu.zip"
macOS (Apple Silicon only)
curl -sL "https://github.com/mratsim/delulu/releases/latest/download/delulu-all-mcp-macos-arm64.tar.gz" | tar -xz
Linux (x86-64 i.e. AMD or Intel)
curl -sL "https://github.com/mratsim/delulu/releases/latest/download/delulu-all-mcp-linux-x86_64.tar.gz" | tar -xz
Linux (Arm64 like Raspberry Pi)
curl -sL "https://github.com/mratsim/delulu/releases/latest/download/delulu-all-mcp-linux-arm64.tar.gz" | tar -xz
  1. Manual Download - Visit the GitHub Releases page and download the archive for your platform and architecture, then extract it (it contains the delulu-all-mcp binary β€” .exe on Windows).

  2. Set up your MCP client - see Usage below for the stdio/HTTP transports and Claude Desktop config.

Why only one binary? Building every app for x86-64/arm64 Γ— Windows/macOS/Linux would produce dozens of artifacts that confuse more than they help. The individual apps are one cargo build away (Option 2) and delulu-all-mcp gives you all 21 tools from a single binary.

πŸ¦€ Option 2: Cargo (Rust Users)

Every app is a normal Cargo package in this workspace. cargo install puts the binary in ~/.cargo/bin/; cargo build --release leaves it in ./target/release/.

git clone https://github.com/mratsim/delulu
cd delulu

# Build everything (all apps, all binaries):
cargo build --release

# Or install one app β€” e.g. the unified all-mcp server (all 21 tools):
cargo install --path delulu-apps/all-mcp --features mcp

Individual apps:

AppPackage (-p)Binaries
Unified all-mcp serverdelulu-all-mcpdelulu-all-mcp (MCP stdio/HTTP)
Travel searchdelulu-travel-searchdelulu-flights, delulu-hotels (CLI), delulu-travel-mcp
Web fetch & markdowndelulu-webfetchdelulu-fetch (CLI), delulu-webfetch-mcp
Web search (DuckDuckGo/Brave)delulu-websearchdelulu-websearch (CLI), delulu-websearch-mcp
arXiv papersdelulu-paper-search-arxivdelulu-arxiv (CLI), delulu-arxiv-mcp
IACR papersdelulu-paper-search-iacrdelulu-iacr (CLI), delulu-iacr-mcp
PubMed papersdelulu-paper-search-pubmeddelulu-pubmed (CLI), delulu-pubmed-mcp
LLM-aware HTTP→MCP bridgedelulu-mcpifydelulu-mcpify

For one app (e.g. the travel MCP server):

cargo install --path delulu-apps/travel-search --features mcp
# binaries: ~/.cargo/bin/delulu-travel-mcp (plus delulu-flights / delulu-hotels)

--features mcp builds the MCP server binary; the CLI-only binaries are built by default when the feature is omitted. The default mcp feature set works on Linux, macOS and Windows.

🐳 Option 3: Docker / Podman

A prebuilt OCI image is published on GitHub Container Registry (GHCR):

  • ghcr.io/mratsim/delulu/all-mcp (unified all-mcp server, all 21 tools)
# HTTP transport (for remote clients) β€” NO built-in authentication!
# Put it behind a TLS-terminating reverse proxy that enforces auth
# (mTLS or bearer token), or restrict the port with a firewall.
docker run -p 8080:8080 \
  --env RUST_LOG=info \
  ghcr.io/mratsim/delulu/all-mcp:latest \
  http --host 0.0.0.0 --port 8080
# Stdio transport (for Claude Desktop) - requires interactive mode `docker run -i --rm`
docker run -i --rm ghcr.io/mratsim/delulu/all-mcp:latest stdio

To build the image from source:

docker build --target delulu-all-mcp-runtime -t delulu-all-mcp .
docker run -i --rm delulu-all-mcp stdio

🐳 Option 4: Docker Compose

There is a sample docker-compose.yml that builds and runs the travel MCP server from source over HTTP. delulu-all-mcp is not in the compose file β€” it ships as a standalone binary or OCI image (Options 1/3).

git clone https://github.com/mratsim/delulu
cd delulu
docker-compose up -d
# The compose server listens on http://localhost:8080/mcp

Usage / Tool reference

Available tools (21)

All MCP servers share the same client-facing tool names; delulu-all-mcp re-exports the full union:

webfetch:        webfetch, webfetch_raw, fetch_doc
websearch:       web_search, web_search_next_page
travel:          search_flights, search_hotels
arxiv:           arxiv_search_papers, arxiv_get_papers_by_id, arxiv_get_paper
iacr:            iacr_list_recent_papers, iacr_get_paper_details, iacr_paper_pdf_url, iacr_get_paper
pubmed:          pubmed_search, pubmed_get_summaries, pubmed_fetch_abstracts, pubmed_find_related, pubmed_get_database_info, pubmed_match_citation, pubmed_get_paper

That is 21 tools. Every paper tool is namespaced by repository prefix (arxiv_*, iacr_*, pubmed_*) because the three paper servers are separate repositories with overlapping vocabulary (papers, ids, details, abstracts, citations) β€” the name alone tells the caller which repository it talks to. The standalone per-package binaries keep their unprefixed names.

CLI transport

delulu-* binaries run two transports β€” stdio (Claude Desktop) and HTTP:

# CLI transport (Claude Desktop-friendly):
delulu-all-mcp stdio

# HTTP transport (for remote clients) β€” NO built-in authentication!
# Put it behind a TLS-terminating reverse proxy with auth, or a firewall.
delulu-all-mcp http --host 0.0.0.0 --port 8080

The same two transports apply to every individual delulu-* binary built from source (e.g. delulu-travel-mcp stdio).

For delulu-all-mcp the same flags apply plus the rate/API-base overrides (see below).

delulu-all-mcp β€” unified 21-tool MCP server

delulu-all-mcp is a single binary that hosts all 21 tools from every app behind one shared RateLimitedCrawler. A single GCRA bucket per domain is shared across webfetch, websearch, travel, and the three paper apps, so one app hammering a host limits every other app that touches the same host.

Merged CLI flags

  • --qps <u32> β€” queries per second for the shared crawler (default 1, 1..=10000)
  • --burst <u32> β€” burst size for the shared crawler (default 1)
  • --max-resp-size-mb <u32> β€” per-response size cap in MB (default 50, 1..=1024)
  • --arxiv-api-base-url <url> β€” override the arXiv API base URL (default https://export.arxiv.org/api/query)
  • --iacr-api-base-url <url> β€” override the IACR eprint API base URL (default https://eprint.iacr.org)
  • --pubmed-api-base-url <url> β€” override the PubMed E-utilities base URL
  • --expose-local-networks β€” allow webfetch tools to reach local/private networks (default off)

--expose-local-networks affects ONLY the webfetch tools (webfetch, webfetch_raw, fetch_doc). The paper-search and websearch tools do not use it.

Rate policy (full delta table)

Because all-mcp merges six apps behind one crawler, the per-domain rate policy is shared; here is the full standalone-vs-all-mcp delta (qps, burst, timeout, cap, HTTP/2, redirects): The default is qps=1 / burst=1 β€” a conservative single-DOMAIN-at-a-time throttle that costs latency but is the least likely to get your IP throttled. See the deltas below.

app (engine)standalone qps / burstall-mcp qps / burststandalone timeoutall-mcp timeoutstandalone capall-mcp caphttp2redirects
webfetch2 / 11 / 130 s30 s50 MB50 MB (lib-fixed)gains http25
websearch ddg1 / 11 / 110 s30 s5 MB50 MByes (both)5
websearch brave2 / 11 / 110 s30 s5 MB50 MBgains http25
travel (flights/hotels)2 / 11 / 15 s30 sunlimited50 MBgains http210 β†’ 5
arxiv1 / 11 / 130 s30 sunlimited50 MBgains http25
iacr3 / 11 / 130 s30 sunlimited50 MBgains http25
pubmed3 / 11 / 130 s30 sunlimited50 MBgains http25

Caution (tradeoff sentences, read before pointing an LLM at this):

  1. per-domain qps is reduced for 5 of 7 engine configs (webfetch/brave/travel/iacr/pubmed 2/2/2/3/3 β†’ 1) in exchange for one per-domain bucket shared across all tools;
  2. timeouts are relaxed for travel (5 s β†’ 30 s) and websearch (10 s β†’ 30 s) β€” a hung upstream now delays up to 30 s;
  3. body caps: search 5 MB β†’ 50 MB (oversized responses that errored standalone now succeed β€” different error semantics), travel/papers gain a 50 MB cap; enforcement caveat: the cap is enforced via Content-Length pre-check plus per-tool streaming caps where they exist; chunked responses without Content-Length are not hard-capped; webfetch tools are fixed at the lib's 50 MB regardless of the --max-resp-size-mb flag;
  4. the domain cache is an LRU with max_domains = 128 keyed on host only (port/scheme ignored); eviction resets the evicted domain's GCRA state to a fresh burst, and the 128-slot cache is now shared across 6 apps β€” roughly 6Γ— shorter per-domain state lifetime;
  5. --burst=1 therefore serializes concurrent calls to the same host at qps spacing;
  6. the GCRA queue wait is unbounded and sits outside the 30 s request timeout; worst case at qps=1 a retrying call can stall a host for tens of seconds;
  7. --qps, --burst, --max-resp-size-mb overrides exist if you want to relax or tighten the shared policy;
  8. HTTP/2 requests are sent on the shared crawler (where the engine supports it) β€” see the http2 column;
  9. travel redirect delta: travel tools follow max 5 redirects in all-mcp, vs 10 standalone β€” this is documented, not "fixed", to avoid creating a webfetch/paper mismatch;
  10. the session cache is shared across all clients (512 sessions / 10 min) β€” heavy concurrent pagination may evict other sessions early.

Claude Desktop configuration (stdio)

Add the block to your claude_desktop_config.json β€” stdio, exactly:

{
  "mcpServers": {
    "delulu-all-mcp": {
      "command": "delulu-all-mcp",
      "args": ["--qps", "1", "--burst", "1", "--max-resp-size-mb", "50", "stdio"]
    }
  }
}

Do not add --expose-local-networks unless your documents are on the same machine/private network. It silently widens the SSRF surface for the webfetch tools.

For the HTTP transport (no auth built-in):

delulu-all-mcp http --host 127.0.0.1 --port 8080
# NO authentication β€” bind to 127.0.0.1 (or a firewall) and do not expose the port publicly.

Docker Compose: delulu-all-mcp is not yet wired into docker-compose.yml β€” run it from the binary or OCI image directly for now.

License

Licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

See LICENSE or http://www.gnu.org/licenses/ for details.