docsGround

docsGround

Enables AI coding agents to search, index, and manage documentation libraries with hybrid retrieval and live web fallback, all self-hosted and offline.

Category
Visit Server

README

<div align="center"> <img src="./assets/banner.svg" alt="docsGround Banner" width="100%" />

<br/><br/>

<img src="./assets/logo.svg" alt="docsGround" width="90" height="90" /> <h1>docsGround</h1> <p><strong>Universal Documentation Grounding & High-Speed Search Engine for AI Coding Agents</strong></p> <p> <a href="#features">Features</a> • <a href="#quick-start">Quick Start</a> • <a href="#mcp-tools">MCP Tools</a> • <a href="#architecture">Architecture</a> • <a href="#rest-api">REST API</a> </p> <p> <img alt="CI" src="https://img.shields.io/github/actions/workflow/status/youssefvdel/docsGround/ci.yml?branch=main&label=CI" /> <img alt="License" src="https://img.shields.io/github/license/youssefvdel/docsGround" /> <img alt="Bun" src="https://img.shields.io/badge/runtime-Bun%201.3-black" /> <img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-5-blue" /> </p> </div>


Why docsGround?

AI models hallucinate when coding with modern or rapidly evolving libraries. Traditional docs MCP servers are slow, require bloated Python environments or heavy headless browsers, and consume massive cloud resources.

docsGround solves this by delivering an ultra-fast, zero-cloud, fully self-hosted documentation grounding stack running on Bun + SQLite FTS5 + Local ONNX BGE Embeddings.

  • 1.4s Deep Crawl: HTTP/2 AST crawler indexes hundreds of pages in seconds (no Playwright overhead).
  • Hybrid Retrieval: BM25 exact symbol matching combined with 384-dimensional dense semantic vectors.
  • 100% Offline & Private: Built-in quantized BGE-Small ONNX vectorizer running locally on CPU.
  • Live Web Hybrid Fallback: Auto-queries DuckDuckGo & Brave for queries outside the local index.
  • Notion-Style UI: Modern dark dashboard with per-library Markdown readers and live background progress cards.
  • Autonomous Agent MCP Suite: 8 native MCP tools allowing AI agents to self-serve, index, and manage docs.

Quick Start

Requires Bun 1.3+.

git clone https://github.com/youssefvdel/docsGround.git
cd docsGround
bun install

# Start the Web UI + REST API (default port 3030)
bun run src/index.ts serve

# Run as a Stdio MCP server (default mode)
bun run src/index.ts mcp

# Ingest a library from the CLI
bun run src/index.ts ingest tauri https://docs.rs/tauri/latest/tauri/

Open http://localhost:3030 (or your LAN IP http://192.168.x.x:3030) in your browser.

Embedding model

The default embedding provider is the built-in local ONNX BGE-Small model — fully offline, zero API cost, ~15ms per document. You can switch to a remote OpenAI-compatible gateway from the UI (Settings → Embedding Provider), e.g. http://127.0.0.1:20128/v1.


Autonomous MCP Tool Suite

Tool Description
search_docs Hybrid dense vector + BM25 FTS5 exact symbol search with live web fallback
scrape_and_index Deep crawl docs.rs, GitHub repos, or web manuals into the vector database
web_search Real-time multi-engine meta-search (DuckDuckGo, Brave, GitHub)
web_extract Clean Markdown extractor from any live webpage
fetch_doc Retrieve exact full page text and symbol definitions by document ID
list_libraries List all indexed documentation libraries and page counts
delete_library Delete a library and cascade-clean its vectors
rename_library Rename an indexed library collection

Register with an MCP client

{
  "mcpServers": {
    "docsground": {
      "command": "bun",
      "args": ["run", "/absolute/path/to/docsGround/src/index.ts", "mcp"]
    }
  }
}

Architecture

flowchart LR
    classDef input fill:#a5d8ff,stroke:#1971c2,color:#0b2545
    classDef core fill:#b2f2bb,stroke:#2f9e44,color:#0b3d1e
    classDef store fill:#c3fae8,stroke:#0ca678,color:#063d2d

    UI["React Web UI :3030"]:::input
    MCP["MCP Server (stdio)"]:::input
    CLI["CLI ingest"]:::input

    API["Bun.serve REST API"]:::core
    API --> E["Search Engine"]:::core
    API --> J["Job Manager"]:::core
    API --> C["Config Manager"]:::core

    E --> DB[("SQLite FTS5 + Vector BLOB")]:::store
    E --> SE["SearxNG Multi-Engine Meta Search"]:::core
    E --> EM["Local ONNX BGE Embeddings"]:::core

    F["StealthFetcher (HTTP/2 + LinkeDOM)"]:::core
    F --> P["DocParser"]:::core
    P --> DB

    UI --> API
    MCP --> API
    CLI --> API

REST API Reference

  • GET /api/search?q=<query>&library=<lib>&limit=10 — Hybrid semantic + FTS5 search with live-web fallback.
  • GET /api/libraries — List all indexed libraries and page counts.
  • GET /api/library-docs?library=<lib> — List all document paths for a library.
  • GET /api/doc?id=<doc_id> — Fetch one indexed document's full content.
  • POST /api/ingest — Trigger background non-blocking documentation indexing with live progress tracking.
  • GET /api/jobs — Poll active and completed ingestion tasks with progress percentage.
  • GET /api/config / POST /api/config — View and update runtime configuration.
  • POST /api/web-search — Live multi-engine meta-search.
  • POST /api/extract — Fetch any URL and convert to clean Markdown.

Development

bun test        # run the test suite
bun run src/index.ts serve   # local dev server

Configuration lives in ~/.docsground/config.json (created automatically on first run).


License

MIT © 2026 docsGround Contributors

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured