Extract documentation for AI agents from any site with llms.txt support. Features MCP server, REST API, batch processing, and multiple export formats.
Drift inferred · capture-to-capture
tool count over time
06-01 15:18 now
6t
6t
transport stdio · http
verified
reported
listed in the official MCP registry counts 11 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
discover_documentation_urls
-
extract_documentation
-
fetch_llms_txt
-
get_agent_guide
-
get_doc
-
get_document_section
-
get_full_documentation
-
list_docs
-
list_extracted_documents
-
search_docs
-
verify_llms_txt
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit e55dd99 · analyzer v33 · 4d ago
skills & prompt files 4
- agent-rules nirholas-extract-llms-docs-e55dd99/.github/copilot-instructions.md
- agent-rules nirholas-extract-llms-docs-e55dd99/AGENTS.md
- agent-rules nirholas-extract-llms-docs-e55dd99/CLAUDE.md
- agent-rules nirholas-extract-llms-docs-e55dd99/GEMINI.md
danger signals1
- dynamic code execution new Function() nirholas-extract-llms-docs-e55dd99/public/docs/assets/javascripts/lunr/wordcut.js :5977
var render = new Function(settings.variable || 'obj', '_', source);
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 142
filesystem 1
- fs (weak) nirholas-extract-llms-docs-e55dd99/public/docs/assets/javascripts/lunr/wordcut.js :1857
var fs = require('fs')
network 29
- net nirholas-extract-llms-docs-e55dd99/mcp-server/src/extractor.ts :37
const response = await fetch(tryUrl, { - net nirholas-extract-llms-docs-e55dd99/src/app/api/batch/route.ts :66
const response = await fetch(tryUrl, { - net nirholas-extract-llms-docs-e55dd99/src/app/api/download/route.ts :105
const response = await fetch(tryUrl, { - net nirholas-extract-llms-docs-e55dd99/src/app/api/extract/route.ts :113
const response = await fetch(file.url, { - net nirholas-extract-llms-docs-e55dd99/src/app/api/sites/health/route.ts :60
const response = await fetch(url, { - net nirholas-extract-llms-docs-e55dd99/src/app/api/sites/suggest/route.ts :27
const response = await fetch(llmsTxtUrl, { - net nirholas-extract-llms-docs-e55dd99/src/app/api/sites/verify/route.ts :35
const response = await fetch(url, { - net nirholas-extract-llms-docs-e55dd99/src/app/api/split/route.ts :95
const response = await fetch(tryUrl, { - net nirholas-extract-llms-docs-e55dd99/src/app/api/validate-install/route.ts :25
const response = await fetch(url, { - net nirholas-extract-llms-docs-e55dd99/src/app/api/validate/route.ts :108
const response = await fetch(checkUrl, { - net nirholas-extract-llms-docs-e55dd99/src/app/batch/page.tsx :49
const response = await fetch('/api/batch', { - net nirholas-extract-llms-docs-e55dd99/src/app/directory/health/page.tsx :90
const response = await fetch(`/api/sites/health?${params}`)
show 17 more
- net nirholas-extract-llms-docs-e55dd99/src/app/directory/page.tsx :52
const response = await fetch('/api/sites/health') - net nirholas-extract-llms-docs-e55dd99/src/app/extract/page.tsx :52
const response = await fetch(apiUrl); - net nirholas-extract-llms-docs-e55dd99/src/components/Stats.tsx :40
const response = await fetch('/api/analytics') - net nirholas-extract-llms-docs-e55dd99/src/components/directory/SiteCard.tsx :143
const response = await fetch(`/api/sites/verify?id=${site.id}`) - net nirholas-extract-llms-docs-e55dd99/src/components/install-generator/GitHubTab.tsx :50
const response = await fetch(`/api/generate-install?${params}`) - net nirholas-extract-llms-docs-e55dd99/src/components/install-generator/UrlTab.tsx :62
const response = await fetch(`/api/generate-install?${params}`) - net nirholas-extract-llms-docs-e55dd99/src/hooks/useExtraction.ts :42
const response = await fetch('/api/extract', { - net nirholas-extract-llms-docs-e55dd99/src/hooks/useVerification.ts :76
const response = await fetch(`/api/sites/verify?${params}`, { - net nirholas-extract-llms-docs-e55dd99/src/lib/docs-analyzer.ts :398
response = await fetch(url, { - net nirholas-extract-llms-docs-e55dd99/src/lib/download.ts :27
const response = await fetch('/api/download', { - net nirholas-extract-llms-docs-e55dd99/src/lib/extractor.ts :64
const response = await fetch(url, { - net nirholas-extract-llms-docs-e55dd99/src/lib/github-analyzer.ts :172
const response = await fetch(url, { - net nirholas-extract-llms-docs-e55dd99/src/lib/html-to-markdown.ts :349
const response = await fetch(url, { - net nirholas-extract-llms-docs-e55dd99/src/lib/install-md-parser.ts :303
const response = await fetch(url, { - net nirholas-extract-llms-docs-e55dd99/src/lib/sitemap-parser.ts :147
const response = await fetch(url, { - net nirholas-extract-llms-docs-e55dd99/src/lib/url-analyzer.ts :29
const response = await fetch(url, { - net nirholas-extract-llms-docs-e55dd99/src/lib/url-discovery.ts :364
const response = await fetch(url, {
secrets 2
- secrets nirholas-extract-llms-docs-e55dd99/src/app/api/cache/route.ts :26
const expectedKey = process.env.ADMIN_KEY - secrets nirholas-extract-llms-docs-e55dd99/src/app/api/generate-install/route.ts :85
const anthropicKey = process.env.ANTHROPIC_API_KEY
tool registrations 11
- extract_documentation nirholas-extract-llms-docs-e55dd99/mcp-server/src/index.ts :41
- fetch_llms_txt nirholas-extract-llms-docs-e55dd99/mcp-server/src/index.ts :55
- get_document_section nirholas-extract-llms-docs-e55dd99/mcp-server/src/index.ts :69
- list_extracted_documents nirholas-extract-llms-docs-e55dd99/mcp-server/src/index.ts :87
- get_full_documentation nirholas-extract-llms-docs-e55dd99/mcp-server/src/index.ts :101
- get_agent_guide nirholas-extract-llms-docs-e55dd99/mcp-server/src/index.ts :115
- verify_llms_txt nirholas-extract-llms-docs-e55dd99/mcp-server/src/index.ts :129
- discover_documentation_urls nirholas-extract-llms-docs-e55dd99/mcp-server/src/index.ts :143
- list_docs nirholas-extract-llms-docs-e55dd99/src/app/extract/page.tsx :491
- search_docs nirholas-extract-llms-docs-e55dd99/src/app/extract/page.tsx :502
- get_doc nirholas-extract-llms-docs-e55dd99/src/app/extract/page.tsx :524
install hooks 1
- prepare nirholas-extract-llms-docs-e55dd99/mcp-server/package.json :14
npm run build
declared dependencies 31
- @anthropic-ai/sdk@^0.71.2
- @tsparticles/react@^3.0.0
- @tsparticles/slim@^3.0.0
- @types/js-yaml@^4.0.9
- @types/react-syntax-highlighter@^15.5.13
- clsx@^2.1.0
- framer-motion@^11.0.0
- js-yaml@^4.1.1
- jszip@^3.10.1
- lucide-react@^0.400.0
- nanoid@^5.0.0
- next@^16.3.0
show 19 more
- react@^19.2.8
- react-dom@^19.2.8
- react-markdown@^10.1.0
- react-syntax-highlighter@^16.1.0
- tailwind-merge@^2.3.0
- @testing-library/jest-dom@^6.9.1
- @testing-library/react@^16.3.1
- @types/node@^20.14.0
- @types/react@^19.2.18
- @types/react-dom@^19.2.4
- @vitejs/plugin-react@^5.1.2
- autoprefixer@^10.4.19
- eslint@^9.39.5
- eslint-config-next@^16.3.0
- jsdom@^27.4.0
- postcss@^8.4.38
- tailwindcss@^3.4.4
- typescript@^5.4.5
- vitest@^4.0.17