Agishub MCP vs Pageindex MCP

A side-by-side look at the Agishub MCP and Pageindex MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Agishub MCP logoAgishub MCPKnowledge & Memory · Local subprocess (stdio)Persistent semantic memory for AI agents: store and recall text by meaning (RAG, Vectorize). x40253GoodAuth: not declaredPageindex MCP logoPageindex MCPKnowledge & Memory · Local subprocess (stdio)Reasoning-based RAG system for chatting with long PDFs. Supports local and online files.63GoodAuth: not declared

Verdict: choose Agishub MCP for knowledge & memory work as a local process; choose Pageindex MCP for knowledge & memory as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Agishub MCP logoChoose Agishub MCP when

  • You need dedicated capabilities in the Knowledge & Memory domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like ai.chat, ai.classify, ai.embed.
Explore Agishub MCP

Pageindex MCP logoChoose Pageindex MCP when

  • You need dedicated capabilities in the Knowledge & Memory domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like process_document, browse_documents, search_documents.
Explore Pageindex MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecAgishub MCP logoAgishub MCPPageindex MCP logoPageindex MCP
CategoryKnowledge & MemoryKnowledge & Memory
Quality signal53/100 · Good63/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars0403
Directory activity 0 views 0 installs 0 upvotes 3 views 0 installs 0 upvotes
Tools349

Tools & capabilities

Agishub MCP tools 34

  • ai.chatAsk a general-purpose LLM a question or give it an instruction, with an optional system prompt. No external API key required.
  • ai.classifyClassify a text into exactly one of the candidate labels you provide (e.g. sentiment, topic, intent).
  • ai.embedTurn text into a numeric embedding vector for semantic search, RAG and similarity. Multilingual.
  • ai.extractExtract named entities from text — people, organizations, locations, dates and miscellaneous — returned as structured JSON.
  • ai.summarizeSummarize a block of text into a short abstract, with an optional target length. No external API key required.
  • web.browserDrive a headless browser: open a URL and run an ordered list of steps — click, type, press keys, wait, extract text and screenshot. For flows the plain scraper can't reach (logins, forms, multi-step pages).
  • web.crawlCrawl multiple pages of a site, respecting link depth and domain limits. Returns async job_id; results include markdown or HTML per page. Use it to fetch and process many pages of content at once.
  • web.extractFetch any public web page and return its main content as clean, token-efficient Markdown (title, description, headings, links, lists). Set render:true to execute JavaScript first for single-page apps or JS-heavy pages that would otherwise come back empty. Built for RAG and for agents that need to r…
  • web.extract_structuredAI-powered structured extraction: give a URL plus a natural-language prompt and/or a JSON Schema, and get back clean structured JSON (e.g. product name, price, rating). Renders the page in a headless browser first, so it works on SPAs.
  • web.linksReturn every hyperlink on a JavaScript-rendered page as a list of absolute URLs, with options to keep only visible links or only same-site links. Backed by a headless browser. Use it to map a site or seed a crawler.
  • web.mapDiscover all URLs reachable from a domain within a link depth limit. Returns a flat list of absolute URLs, respects robots.txt crawl delays. Use it to map a site's structure before crawling.
  • web.scrapeExtract specific elements from a JavaScript-rendered page by CSS selector. Give a list of selectors (e.g. 'h1', '.price', 'a.product') and get back the text and attributes of every match. Backed by a headless browser, so it works on SPAs and JS-heavy pages.
  • +22 more on the listing page

Pageindex MCP tools 9

  • process_documentUpload and process PDF documents from URLs or local files. Supports OCR processing, hierarchical content extraction, and intelligent document analysis. Returns a unique doc_id for subsequent operations. Processing typically takes 0-3 minutes depending on document size (estimate: 2 seconds per page). Supports files up to 100MB.
  • browse_documentsPrimary document retrieval tool. After orienting with get_folder_structure() (when available), use this for all document-related questions. The bare call returns root-level sub-folders and documents; pass folder_id to drill into a sub-folder level by level. Use sort="relevance" + query for semantic ranking. Do NOT jump to search_documents() first — it is an escalation path, only after browse_documents(sort="relevance") has failed.
  • search_documentsESCALATION tool — never the first step. Use only after `browse_documents(sort="relevance", query=...)` missed a document you strongly believe exists by precise term, acronym, or file-name fragment. Query must be keywords only — see the `query` schema describe. Each result has a `score` (6-10, higher is more relevant). On result: single best match → read it; several equally good → ask user; none → fall back to `browse_documents(sort="relevance")`.
  • get_folder_structureOrientation step: show the folder hierarchy as a tree (like `tree -d`). **Call this before browse_documents()** to plan targeted retrieval — folder names reveal content domains (e.g. "Research", "Finance") and return folder IDs you pass to browse_documents(folder_id=…). Wait for this result before issuing browse_documents() or search_documents(). For folder_id="root" (default), returns the entire folder tree; for a specific folder_id, returns that subtree only.
  • get_documentCheck a document's processing status and metadata. `status` is one of "pending", "queued", "processing", "completed", or "failed" — call this before `get_document_structure()` or `get_page_content()` to confirm the document is ready.
  • get_document_structureExtract a document's hierarchical outline (headers, sections, page references). REQUIRED for documents over 20 pages — call this first to locate relevant sections, then pass their page numbers to `get_page_content()`. Use the `part` parameter to iterate large outlines until `pagination.has_more` is false.
  • get_page_contentExtract page content from a processed document. Use tight, targeted page ranges — never the whole document at once. For documents over 20 pages, call `get_document_structure()` first to pick relevant sections. Embedded image paths in the response feed into `get_document_image()`.
  • get_document_imageRetrieve an image from a document — pass an `image_path` from a `get_page_content()` response: either an embedded image (from a content block) or a full rendered page (from the `page_images` array, useful when a page is scanned or its meaning depends on visual layout). Returns the image as an MCP image content block (base64 data + MIME type). Do NOT repeat the raw base64 value in your text response.
  • remove_documentPermanently delete documents and all associated data. Only invoke when the user explicitly names the documents AND confirms deletion. Returns `results` — one entry per requested document: `{ doc_name, status: "deleted" | "not_found" | "failed", error? }`. Inspect each entry for per-document failures. This action is irreversible.

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Agishub MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "agent-memory": {
      "command": "npx",
      "args": [
        "-y",
        "@agishub/mcp"
      ]
    }
  }
}

Pageindex MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "pageindex-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@pageindex/mcp"
      ]
    }
  }
}

Frequently asked questions

Agishub MCP is categorized under Knowledge & Memory and uses a local stdio subprocess. Pageindex MCP belongs to Knowledge & Memory and uses a local stdio subprocess. Pick Agishub MCP for knowledge & memory work and Pageindex MCP for knowledge & memory.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Agishub MCP has no declared pricing — check the project's own site. Pageindex MCP has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add agent-memory and pageindex-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Agishub MCP has a quality signal of 53/100 (Good) with 0 views, 0 installs and 0 GitHub stars. Pageindex MCP has 63/100 (Good) with 3 views, 0 installs and 403 GitHub stars.