New1 billion tokens free on sign-up — crawl, parse, chunk and embed on the houseClaim yours
SarvCrawl
Docs/MCP Server
SarvCrawl / Docs /MCP Server

MCP Server Reference

Complete method reference with request examples and responses.

npx -y sarvcrawl-mcp

Prompts shown are examples only. Claude understands natural language — you can phrase requests however feels natural to you.

Installation

Add SarvCrawl MCP to your AI client. Requires Node.js 20+ and a SarvCrawl API key.

Add to your AI client

Pick your client — all options use npx, no cloning or file management needed.

claude mcp add sarvcrawl \
  -e KB_API_KEY=your-api-key \
  -e KB_BASE_URL=https://crawl.sarv.com \
  -- npx -y sarvcrawl-mcp

HTTP Mode (Shared Server)

Run kb-mcp as a persistent HTTP service on a server. Teammates connect with just a URL — no Node.js or file copying needed on their machine. Run one instance per user on separate ports.

Start HTTP server

Set HTTP_STREAMABLE_SERVER=true. Default port is 3001. Ensure the port is open in your firewall.

HTTP_STREAMABLE_SERVER=true \
KB_API_KEY=your-api-key \
KB_BASE_URL=https://crawl.sarv.com \
HTTP_PORT=3001 \
node src/index.js
claude mcp add (HTTP)

Teammates run this on their machine — no files needed locally.

claude mcp add --transport http sarvcrawl http://your-server:3001/v2/mcp

Knowledge Base Management

Create, list, and delete knowledge bases. Always call kb_list first to discover the kb_id values needed by every other tool.

kb_list
Claude Codev2.1.175
What knowledge bases do I have?

Called kb_list

Here are your knowledge bases:

NameIDPagesDocsSize
Product Docskb_Prd8mZ2xQi2471218.42 MB
Research KBkb_Res4kN7vLp8934.21 MB

2 knowledge bases total. Want me to search one, list its pages, or do something else?

kb_create
Claude Codev2.1.175
Create a new knowledge base called 'Product Docs' for storing our product documentation

Called kb_create

Created "Product Docs" successfully.

ID: kb_Prd8mZ2xQi

Created: 2026-06-15

Ready for ingestion — use kb_scrape, kb_crawl, or upload to add content.

kb_delete
Claude Codev2.1.175
Delete the Research KB, I don't need it anymore

Called kb_delete

Deleted "Research KB" — 89 pages and 3 documents permanently removed.

This cannot be undone.

Scrape

Scrape a single URL and store its content in a knowledge base. Returns a job_id immediately — poll kb_check_job_status until status is "completed". For multi-page sites, use kb_crawl instead.

kb_scrape
Claude Codev2.1.175
Scrape https://example.com/article and save it to my Research KB

Called kb_scrape

Scrape job queued (job_rnDLH7FukV). Polling for completion…

Still running — waiting a moment and checking again…

Job completed — 1 page stored, ~23.7k tokens indexed.

Content is searchable in your Research KB. Use kb_search to query it.

Crawl

Recursively crawl a website from a root URL and store every discovered page. Only one crawl can run at a time per user — if you receive a CONCURRENCY_LIMIT error, wait for the current crawl to finish first.

kb_crawl
Claude Codev2.1.175
Crawl the entire docs.example.com website and store every page in my Research KB

Called kb_crawl

Crawl job queued (job_crwAbc123). This may take a few minutes…

Running — 47 pages stored so far, following links at depth 2…

Job completed — 312 pages stored, ~8.4M tokens indexed.

docs.example.com is fully archived. Use kb_search or kb_list_pages to access it.

Web Search

Run a web search and store the top results with full page content into a knowledge base. Use when you don't have a specific URL but want to gather information on a topic.

kb_web_search
Claude Codev2.1.175
Search the web for 'knowledge infrastructure 2024' and save the top results to my Research KB

Called kb_web_search

Web search job queued (job_wsrXyz789). Fetching top results…

Job completed — 10 pages stored from search results.

Results for "knowledge infrastructure 2024" are indexed in your Research KB.

Map

Discover all indexed URLs on a website without downloading page content. Use to audit site structure or plan what to crawl before running kb_crawl.

kb_map
Claude Codev2.1.175
List all the URLs on example.com without downloading any page content

Called kb_map

Map job queued (job_mapDef456). Discovering URLs on example.com…

Job completed — 1,247 URLs discovered.

No content downloaded. Run kb_crawl with specific paths to store pages.

Monitor

Create a recurring check that re-scrapes a page (or re-crawls a site), diffs it against the last check, and posts a webhook when something is new, changed, or removed. Unlike other jobs, a monitor never "completes" — it stays "running" indefinitely by design. Use kb_cancel_job to stop it (required before kb_delete_job will work).

kb_create_monitor
Claude Codev2.1.175
Watch https://example.com/pricing for changes and notify my webhook daily

Called kb_create_monitor

Monitor created (job_mon9Kp2Xz) — watching https://example.com/pricing, checking daily.

First check ran — page stored as baseline, no diff yet.

Change detected — a price line changed. Webhook sent to your notify_url.

The monitor keeps running on its schedule. Use kb_cancel_job to stop it.

Job Tools

Monitor, debug, and manage async jobs. Status flow: queued → running → completed | failed | cancelled. Always poll kb_check_job_status after starting any async job.

kb_check_job_status
Claude Codev2.1.175
Is my scrape job done yet? Check the status for me

Called kb_check_job_status

Scrape job — completed ✓

Type: scrape

Pages stored: 1

Duration: ~40s

Tokens indexed: 23,712

Use kb_search or kb_list_pages to access the stored content.

kb_job_logs
Claude Codev2.1.175
Show me the logs for that job — something seems stuck

Called kb_job_logs

Processing log for job_rnDLH7FukV:

10:00:05Starting scrape for https://sarv.com

10:00:12Fetched page (23,712 tokens)

10:00:28Stored to MinIO: kb_xxx/scrape/job_rnDLH7FukV/

10:00:30Elasticsearch indexed — 1 page complete

kb_job_tree
Claude Codev2.1.175
Show me which pages the crawl discovered and how they link together

Called kb_job_tree

Crawl tree for docs.example.com (47 nodes, max depth 4):

● docs.example.com (8 links)

● /guide (5 links)

● /guide/intro

● /guide/setup

● /api-reference (12 links)

Showing 5 of 47 nodes.

kb_job_source_md
Claude Codev2.1.175
What's the extracted text from that uploaded PDF?

Called kb_job_source_md

Extracted markdown from job_rnDLH7FukV:

# Document Title

This is the extracted text from the uploaded PDF.

The content has been converted to clean markdown…

… 23,712 tokens total

kb_job_audit
Claude Codev2.1.175
How good is the text extraction quality on that PDF upload?

Called kb_job_audit

PDF quality audit for job_rnDLH7FukV:

Similarity score: 0.94 / 1.00

Pages processed: 12

OCR used: No (embedded text is clean)

Quality rating: High ✓

Extraction quality looks excellent for this document.

kb_cancel_job
Claude Codev2.1.175
Cancel that crawl, it has been running way too long

Called kb_cancel_job

Cancelled job_crwAbc123

Upstream Sarvcrawl crawl also stopped.

47 pages already stored remain in your KB.

kb_delete_job
Claude Codev2.1.175
Delete that failed scrape job and all its data from the KB

Called kb_delete_job

Deleted job_rnDLH7FukV and all its data.

1 page removed from Elasticsearch index

Files removed from MinIO storage

Knowledge base intact — only this job was deleted.

kb_daily_stats
Claude Codev2.1.175
How many pages have been added to my Research KB each day this week?

Called kb_daily_stats

Ingestion stats for Research KB — last 7 days:

DatePagesDocs
2026-06-09870
2026-06-101243
2026-06-112115
2026-06-120
2026-06-13471
2026-06-14892

558 pages, 11 documents added over 5 active days.

Files

Browse the raw files stored in MinIO for each job. Useful for inspecting what was saved before exporting.

kb_list_job_files
Claude Codev2.1.175
What files were saved from that crawl job?

Called kb_list_job_files

Files stored for job_rnDLH7FukV:

FileSizeTokens
content.md12.1 KB3,200
content.json8.8 KB2,100

Total: 20.9 KB, 5,300 tokens across 2 files.