Independent by design · no pay-to-rank placements  · How we evaluate tools →
Anclum Submit
J

jackjin1997/markindex

Vectorless, structure-first retrieval over large Markdown libraries for AI agents — a TypeScript take on PageIndex for Markdown (CLI + MCP + AI SDK)

Before you install: a copy-paste command is available · license MIT · link reachable

View on GitHub ↗Link checked 2026-11-12 · HTTP 200 · opens the vendor's own site
Install & config
  1. Copy the command above
  2. Paste it as one entry under mcpServers in claude_desktop_config.json — local servers take command + args (example: clients)
  3. Restart your client
Client config (built from the install command this repo gives)
{
  "mcpServers": {
    "jackjin1997-markindex": {
      "command": "npx",
      "args": ["-p", "markindex", "-p"]
    }
  }
}

Parsed from the README we fetched on 2026-11-03; we have not executed it.

command/args come from the install command the repository states. When it is ambiguous, the project README wins.
VS Code (.vscode/mcp.json - the key is servers)
{
  "servers": {
    "jackjin1997-markindex": {
      "command": "npx",
      "args": ["-p", "markindex", "-p"]
    }
  }
}
Same server, but VS Code keeps it under <code>servers</code>.
Claude Code (command line)
claude mcp add --transport stdio jackjin1997-markindex -- npx -p markindex -p
Claude Code does not read a config file; add the server with this command.
Key names differ by client: Clients & CLI
Star count
1 ★ · jackjin1997/markindex · read from the GitHub search API · (checked 2026-11-13 20:00:50)
Source
collected from the punkpeye/awesome-mcp-servers list · type: MCP server
Harvest history
first seen 2026-11-03 · last seen 2026-11-14 · seen 12× · listed by 12 sources
Score
score 1,200 · 1 ★ · 12 sources · mcp
Install
npx -p markindex -p
FAQ (answers come from our records)
How do I install it?
The repository provides this install command: npx -p markindex -p. It comes from the repository itself; we cannot guarantee it runs as-is in your client.
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository jackjin1997/markindex;first catalogued 2026-11-03;last seen 2026-11-14。There is no official certification or quality rating here — we record sources and dates only.

# MarkIndex

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

Vectorless, structure-first retrieval over large libraries of long Markdown documents — for agents.
MarkIndex parses every Markdown file into a tree of its own sections, stores the trees, the original lines and a
mixed Chinese/English BM25 index in one SQLite file, and gives an agent five read-only tools to walk
"library → folder → document → section" and read the original text with line numbers. No embeddings, no vector
database, no chunking guesswork: the document's own structure is the index, and every piece of evidence can be
cited back as [docpath, L - ].
> Inspired by VectifyAI/PageIndex, MarkIndex is an independent,
> unofficial TypeScript implementation focused on Markdown. It is not affiliated with or endorsed by VectifyAI.
中文说明:README.zh-CN.md
## Why
Structure-first, not chunk-first. Long professional documents (filings, guidelines, laws, manuals) are
already organized by their authors. Navigating that outline keeps context intact and makes answers explainable
and citable; arbitrary chunks + vector similarity cut sections apart.
Deterministic and LLM-free indexing. Parsing (mdast, not regex), tree building and the token-cost tree
optimization never call a model; the same input always produces the same tree. LLMs are optional and only used
for node summaries, document descriptions and the built-in retrieve() loop.
Markdown done properly. Setext headings, preface text before the first heading, documents without any
heading, front matter, # inside code fences, skipped heading levels, BOM / CRLF — every source line belongs to
exactly one node, and oversized sections are split at block boundaries into chunk nodes.
Keyword fallback that works for Chinese. BM25 over Intl.Segmenter word segmentation (Chinese, English and
mixed text, identifiers like C++, ISO-27001, v2.1), plus a trigram substring index as a second pass.
Budgeted tool responses. Tools never throw; they return JSON envelopes with nextsteps guidance and stay
under a 95 000-character budget, paginating large outlines and sections.
## Install
bash
npm install markindex # library + CLI (Node.js >= 22.12)
npx markindex --help
From source:
bash
git clone https://github.com/jackjin1997/markindex.git && cd markindex
npm install && npm run build
node dist/cli.js --help # or npm link to get a markindex command
Optional, only for LLM features (summaries, retrieve(), agent-mode evaluation): install the
AI SDK provider you want, e.g. npm install @ai-sdk/anthropic, and set its API key
(ANTHROPICAPIKEY, …). With npx and no local install, put the provider in the same temporary environment:
bash
npx -p markindex -p @ai-sdk/anthropic markindex index ./docs --summary-model anthropic:claude-sonnet-5-5
## CLI
bash
# Build or incrementally update the index (stored in /.markindex/index.db)
markindex index ./docs
markindex index ./docs --summary-model anthropic:claude-sonnet-5-5 --estimate # cost estimate, no LLM calls
markindex index ./docs --summary-model anthropic:claude-sonnet-5-5 # with node summaries
markindex index ./docs --summary-model anthropic:claude-sonnet-5-5 --summary-rpm 50 --summary-tpm 40000 # rate-limited
markindex index ./docs --json # machine-readable report
Listed badge (optional)
Copy this line into the README if you want the listing mark. Optional, and it does not affect being listed.
[![Listed on Anclum](https://anclum.com/badge/listed.svg)](https://anclum.com/en/s/jackjin1997-markindex/)
Source
awesome · https://github.com/jackjin1997/markindex
Browse by field
MCP servers
Traction
1 ★
Listed by
12 independent sources
added
today

More like this

All 6,229 →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index