Skip to main content
Glama
timid2020-dot

DocScan MCP Server

DocScan MCP Server

DocScan is a Model Context Protocol (MCP) server that allows you to scan, index, and search through your local documents using advanced document understanding (via Docling) and local vector search.

Features

  • Multi-format Support: Parses PDF, DOCX, PPTX, XLSX, HTML, Markdown, and more.

  • Image Support (Performance-first): OCRs standalone images and selectively OCRs weak/empty-text PDF pages.

  • Advanced PDF Parsing: Uses Docling for high-fidelity document understanding, including tables and complex layouts.

  • Vector Search: Indexes document chunks into a local persistent vector index for semantic search.

  • Asynchronous Indexing: Decouples indexing from searching to prevent timeouts on large document sets.

  • MCP Integration: Exposes search_docs and reindex_docs tools.

Related MCP server: vectorise-mcp

Setup

Prerequisites

  • Python (preferably 3.14)

  • uv (recommended for dependency management)

Installation

  1. Clone this repository.

  2. Install dependencies:

    uv sync
  3. Put uv run src/main.py in your MCP config

Example for Copilot:

{
  "mcpServers": {
    "docscan": {
      "type": "stdio",
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/docscan", "run", "src/main.py"]
    }
  }
}

Adding Documents

Place the documents you want to index into the store/ directory. Supported formats include:

  • .pdf, .docx, .pptx, .xlsx

  • .md, .txt, .html

  • .png, .jpg, .jpeg (via OCR)

Usage

Running the Server

You can run the server directly:

uv run src/main.py

Or via fastmcp

fastmcp run src/main.py --transport http --port 8001 --host 0.0.0.0

(change transport and arguments to taste)

Indexing Documents

Before you can search, you must build the index. Use the reindex_docs tool from your MCP client. This only needs to be done once or when you add/change files. Note: Large documents (like some PDFs) may take a few minutes to process.

reindex_docs is incremental: it persists a manifest (vectorstore.db.manifest.json) and only reprocesses files whose size/mtime changed, reuses unchanged chunks and embeddings, and removes deleted files from the index.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Local-first RAG indexing and semantic search MCP server. Enables document retrieval and context-aware queries using local embedding models.
    Last updated
    3
    25
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A local-first document retrieval MCP server that enables AI coding tools like Codex to search private local documents via semantic search and keyword boost, supporting ingestion of PDF, DOCX, TXT, Markdown, and HTML files.
    Last updated
    7
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    A local-first semantic search server for documents, supporting PDFs, Office files, and text/markdown, enabling natural language search via the Model Context Protocol (MCP).
    Last updated
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Local-first RAG engine with MCP server for AI agent integration.

  • Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.

  • Agentic search over your Dewey document collections from any MCP-compatible client.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/timid2020-dot/docscan-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server