Infomesh
About
πΈοΈ Fully decentralized P2P search engine for LLMs β no API key, no billing, forever free. MCP-native web search via Kademlia DHT + libp2p + FTS5. Production stable β β pip install infomesh
Details
- License
- MIT
Explore
| Feature | Description |
|---------|-------------|
| π Fully Decentralized | No central server. Every node is both a hub and a participant β cooperative tit-for-tat architecture |
| π€ LLM-First Design | Pure text API via MCP, optimized for AI consumption. No browser UI needed |
| π Dual Search | Keyword search (SQLite FTS5 + BM25) and optional semantic vector search (ChromaDB) |
| π·οΈ Smart Crawler | Async crawling with robots.txt compliance, politeness delays, and 3-layer deduplication |
| π‘ P2P Network | libp2p-based with Kademlia DHT, mDNS local discovery, and encrypted transport |
| πΎ Offline-Capable | Your local index works without internet β search your crawled knowledge anytime |
| π Credit Incentives | Earn credits by crawling and serving peers. More contribution = more search quota |
| π Content Integrity | SHA-256 + Ed25519 attestation on every page. Random audits + Merkle proofs |
| π€ zstd Compression | Index snapshots and network transfers compressed with zstandard |
| π Console Dashboard | Beautiful Textual TUI with 6 tabs: Overview, Crawl, Search, Network, Credits, Settings |
| π CJK Search | Native Chinese/Japanese/Korean tokenization with bigram/trigram expansion |
| π‘ RSS Monitoring | Continuous RSS/Atom feed polling with priority-based scheduling |
| π₯οΈ JS Rendering | Optional Playwright for SPA/React pages (headless Chromium) |
| π Implicit Feedback | LLM-native quality signals (fetch/skip/cite) for ranking improvement |
| π©Ί Diagnostics | infomesh doctor checks health; infomesh bench measures performance |
| π Plugin System | Extensible hook-based API for custom crawlers, rankers, and tokenizers |
| π Web Dashboard | Browser-based dashboard at localhost:8080/dashboard with 5 tabs |
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
InfomeshCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
All you need is a Linux terminal (Ubuntu, Debian, etc.).
No prior Python or developer experience required.
Step 1 β Install uv (Python package manager, one-time setup):
curl -LsSf https://astral.sh/uv/install.sh | sh
After this finishes, close and reopen your terminal (or run source ~/.bashrc).
This ensures the uv and uvx commands are available.
Step 2 β Run InfoMesh:
uvx infomesh status
uvx automatically downloads and runs InfoMesh β no git clone, no pip install, no virtual environments.
On the first run it may take a few seconds to download; subsequent runs are instant.
If you use InfoMesh regularly, install it as a persistent tool so you don't need the uvx prefix:
uv tool install infomesh
The P2P optional dependency (libp2p) includes C extensions (fastecdsa, coincurve, pynacl) that require native build tools. These are only needed if you install with pip install 'infomesh[p2p]'.
Linux (Debian / Ubuntu):
bashsudo apt-get update && sudo apt-get install -y build-essential python3-dev libgmp-dev
macOS:
bashbrew install gmp
Windows: Use WSL2 (recommended) or install Visual Studio Build Tools + GMP.
> Note: These system packages are only required for the p2p optional dependency. The base install (uv sync) does not need them.
git clone https://github.com/dotnetpower/infomesh.git
cd infomesh
uv sync
json{
"mcpServers": {
"infomesh": {
"command": "uvx",
"args": ["infomesh", "mcp"]
}
}
}
Enterprise environments can separate crawlers from indexers across network zones:
ββββββββββββ DMZ βββββββββββββββ βββββββββ Private Network βββββββββ
β β β β
β infomesh --role crawler βββββββββββββββΆ infomesh --role search β
β (crawls the public web) β P2P β (indexes + serves queries) β
β β auth β β
β infomesh --role crawler βββββββββββββββΆ infomesh --role search β
β β β β
ββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββ
Three node roles:
| Role | Components | Use Case |
|------|-----------|----------|
| full (default) | Crawler + Indexer + Search | Single-node or simple deployments |
| crawler | Crawler only, forwards pages to indexers | DMZ nodes with internet access |
| search | Indexer + Search only, accepts submissions | Private network, no internet needed |
Configuration example (~/.infomesh/config.toml):
toml
- TOML Configuration (~/.infomesh/config.toml) with environment variable overrides (INFOMESH_CRAWL_MAX_CONCURRENT=20)
- Value Validation β All config values clamped to safe ranges with structured warnings
- Dashboard Settings β All configuration editable via the TUI Settings tab (no file editing required)
- Energy-aware Scheduling β LLM-heavy tasks preferentially scheduled during configured off-peak hours (1.5Γ credit multiplier)
web_search
Search the web via InfoMesh P2P search engine. Returns ranked results with optional full content, RAG chunking, and score explanations. Example: web_search(query='python asyncio tutorial')
fetch_page
Fetch full text of a specific URL. Returns cached content or crawls live. Max 100KB. Example: fetch_page(url='https://...')
crawl_url
Add a URL to the crawl queue and index it. Rate limited to 60/hour. Example: crawl_url(url='https://example.com', depth=1)
fact_check
Cross-reference a claim against indexed web content. Returns verdict with supporting/contradicting sources. Example: fact_check(claim='Python was created in 1991')
status
Node status: index size, peer count, credit balance, search quota, and analytics. Example: status()
``
Windows: Use WSL2 (recommended) or install Visual Studio Build Tools + GMP.
> Note: These system packages are only required for the p2p optional dependency. The base install (uv sync`) does not need them.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"infomesh": {
"infomesh": {
"command": "uvx",
"args": [
"infomesh",
"mcp"
],
"env": []
}
}
}
}
McpServers
{
"infomesh": {
"command": "uvx",
"args": [
"infomesh",
"mcp"
],
"env": []
}
}
<p align="center">

</p>
<h1 align="center">InfoMesh</h1>
<p align="center">
<strong>Fully Decentralized P2P Search Engine for LLMs</strong><br>
<em>No credit card. No API key. No usage cap. Forever free.</em>
</p>
<p align="center">
<a href="https://github.com/dotnetpower/infomesh/actions"></a>
<a href="https://pypi.org/project/infomesh/"></a>
<a href="LICENSE"></a>
<a href="https://www.python.org/"></a>
<a href="https://github.com/dotnetpower/infomesh/stargazers"></a>
</p>
<p align="center">
<a href="https://github.com/dotnetpower/infomesh/issues"></a>
<a href="https://github.com/dotnetpower/infomesh/pulls"></a>
<a href="https://github.com/dotnetpower/infomesh/commits/main"></a>
<a href="https://github.com/dotnetpower/infomesh"></a>
<a href="https://modelcontextprotocol.io/"></a>
<a href="CHANGELOG.md"></a>
</p>
<p align="center">
<a href="#-quick-start">Quick Start</a> β’
<a href="#-why-infomesh">Why InfoMesh</a> β’
<a href="#-features">Features</a> β’
<a href="#-whats-new-in-v020">What's New</a> β’
<a href="#-architecture">Architecture</a> β’
<a href="#-security--trust">Security</a> β’
<a href="#-earning-credits">Credits</a> β’
<a href="#-contributing">Contributing</a> β’
<a href="#-documentation">Docs</a>
</p>
---
> [!TIP]
> P2P Bootstrap Nodes Active
> InfoMesh ships with multiple bootstrap nodes across Azure regions β your node connects automatically on first start. To add more peers manually:
>
> infomesh peer add /ip4/<IP>/tcp/4001/p2p/<PEER_ID>
> infomesh peer test
>
---
π‘ Why InfoMesh?
The Problem
Every AI assistant needs real-time web access β but that access is gated behind expensive, proprietary search APIs:
| Type | Typical Cost | Limitation |
|------|-------------|------------|
| LLM-bundled web search | Hidden in token cost | Locked to one vendor's API, no standalone access |
| Custom search API | ~$3β5 / 1,000 queries | API key + billing account required, rate-limited |
| AI search SaaS | ~$0.01β0.05 / query | SaaS dependency, monthly usage caps |
| Search scraping proxy | ~$50+/month | Fragile, breaks on upstream changes |
| InfoMesh | $0 β Forever Free | None. You own the node, you own the index |
This creates a paywall barrier for independent AI developers, open-source assistants, and researchers. Small projects and local LLMs simply cannot afford real-time web search.
The Solution
I started building AI agents and quickly hit a wall: there was no free web search API.
Every provider wanted a credit card, a billing account, or a monthly subscription β just to let an AI agent look something up on the web. That felt wrong.
So I built InfoMesh β a decentralized search engine where the community is the infrastructure:
- No central server β every participant is both a crawler and a search node.
- No per-query cost β contribute crawling, earn search credits. The more you give, the more you can search.
- No vendor lock-in β standard MCP protocol integration, works offline with your local index.
- No data harvesting β search queries never leave your node. There is no central entity to collect them.
InfoMesh does not compete with existing commercial search providers. Those companies serve human search at massive scale with ads-based monetization. InfoMesh provides minimal, sufficient search capabilities for AI assistants β for free, via MCP β democratizing real-time web access without per-query billing.
> _I just wanted my AI agent to search the web without reaching for my wallet. If you've felt the same way, InfoMesh is for you._
π Free. Every Interface. No Exceptions.
| How you use it | Cost | Example |
|---------------|------|--------|
| MCP (AI assistants) | Free | Claude, VS Code Copilot, any MCP client calls search() β zero API fees |
| CLI (terminal) | Free | uv run infomesh search "python asyncio" β instant results from your index |
| Python package (code) | Free | from infomesh.index.local_store import LocalStore β embed search in your app |
| Local API (HTTP) | Free | curl localhost:8080/search?q=... β REST endpoint for any language |
No API keys. No billing accounts. No usage caps. No rate limits per dollar.
You run a node, you contribute to the network, and search is free β forever.
---
InfoMesh vs Other Web Search MCP Servers
Looking for a free web search MCP server? Here's how InfoMesh compares to common alternatives:
| Feature | InfoMesh | API-based MCP servers | Scraper-based MCP servers | Meta-search engines |
|---------|-------------|----------------------|--------------------------|---------------------|
| Free tier | βΎοΈ Unlimited (credit-based) | Limited (1,000β2,000/mo typical) | Unlimited (no API) | Unlimited |
| API key | β Not required | β
Required (signup needed) | β Not required | β Not required |
| Decentralized | β
Fully P2P | β Centralized | β Centralized | β Single instance |
| Offline search | β
Local index works offline | β | β | β |
| Privacy | β
Queries never leave node | β οΈ Logged by provider | Varies | β
Self-hosted |
| Self-hosted | β
You own everything | β | β | β
Docker required |
| Crawl your own URLs | β
crawl_url() tool | β | β | β |
| Full page fetch | β
fetch_page() tool | Varies | β | β |
| Install | pip install infomesh | Varies | Varies | Docker Compose |
| Open source | β
MIT | Varies | Varies | Varies |
> InfoMesh is the only web search MCP server that is fully decentralized, works offline, requires no API key, and lets you crawl and index your own content β all for free.
---
π Safe by Design β The Most Secure Search Engine You Can Run
Most search engines ask you to trust them. InfoMesh asks you to trust math.
There is no central server that collects your queries. There is no company that stores your search history. There is no database of user behavior waiting to be breached. Your data never leaves your machine unless you choose to share it.
> Contribute to the network β earn credits β search for free, forever, with no limits.
That's the entire deal. No catch.
Why InfoMesh Is Enterprise-Grade Secure
β¦
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.


