Pageindex Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Pageindex Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Self-hosted MCP server для Claude Code, реализующий PageIndex vectorless RAG полностью локально.
Claude Code (Max plan — handles all reasoning)
│ stdio
▼
pageindex-mcp (TypeScript)
├── index_document ──→ run_pageindex.py (Python, local)
│ └── OpenAI API (tree generation, one-time)
├── get_document_tree ──→ local JSON
├── get_page_content ──→ pdftotext (local)
├── list_documents ──→ local filesystem
└── delete_document ──→ local filesystemНикаких LLM-вызовов внутри сервера — Claude Code сам навигирует дерево и анализирует контент. Не нужен ANTHROPIC_API_KEY.
# 1. Node.js ≥ 18
node --version
# 2. Python PageIndex repo
git clone https://github.com/VectifyAI/PageIndex /opt/pageindex
cd /opt/pageindex && pip install -r requirements.txt
# 3. poppler-utils для извлечения текста из PDF
# Ubuntu/Debian:
sudo apt install poppler-utils
# macOS:
brew install popplernpm install
npm run build| Переменная | Обязательна | Описание |
|---|---|---|
OPENAI_API_KEY | да (для индексации) | PageIndex генерирует дерево через OpenAI |
PAGEINDEX_REPO_PATH | да | Путь к клонированному репозиторию PageIndex |
INDEX_STORE_PATH | нет | Где хранить JSON индексы (default: ~/.pageindex-store) |
PAGEINDEX_MODEL | нет | OpenAI модель (default: gpt-4o-2024-11-20) |
Для OpenRouter вместо прямого OpenAI:
OPENAI_BASE_URL=https://openrouter.ai/api/v1
OPENAI_API_KEY=sk-or-v1-...
PAGEINDEX_MODEL=openai/gpt-4oДобавить в ~/.claude.json или .mcp.json в проекте:
{
"mcpServers": {
"pageindex-local": {
"command": "node",
"args": ["/absolute/path/to/pageindex-mcp/build/index.js"],
"env": {
"OPENAI_API_KEY": "sk-...",
"PAGEINDEX_REPO_PATH": "/opt/pageindex"
}
}
}
}{
"mcpServers": {
"pageindex-local": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/pageindex-mcp/src/index.ts"],
"env": {
"OPENAI_API_KEY": "sk-...",
"PAGEINDEX_REPO_PATH": "/opt/pageindex"
}
}
}
}# 1. Индексировать документ (один раз)
"Проиндексируй PDF /path/to/spec.pdf с id pam-spec"
# 2. Посмотреть структуру документа
"Покажи структуру документа pam-spec"
# 3. Извлечь контент конкретной секции
"Покажи содержимое ноды 0005 в документе pam-spec"
# 4. Список всех документов
"Какие документы проиндексированы?"
# 5. Удалить индекс
"Удали индекс pam-spec"Claude Code сам навигирует дерево, выбирает нужные секции и отвечает — не нужны отдельные API-вызовы.
| Инструмент | Описание |
|---|---|
index_document | Генерирует PageIndex tree из PDF (один раз, затем переиспользуется) |
get_document_tree | Иерархическая структура документа для навигации |
get_page_content | Извлечение текста по node_id или диапазону страниц |
list_documents | Список проиндексированных документов с метаданными |
delete_document | Удалить документ из индекса |
poppler-utils текст страниц не извлекается (только метаданные дерева)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.