MCP server for nxGnosis MegaMind — provides tools for document ingestion, semantic search, visa/immigration information, and content management
MegaMind exhibits significant definition quality gaps. Of 10 tools, only 8 have discernible schemas (INGEST_URL_TOOL through DOCUMENT_DELETE_TOOL in source). The final 2 tools (getVisaInfoByCountry, getImmigrationInfoByCountry) lack visible schema definitions, parameter types, or detailed descriptions in the provided source, they are inferred to exist but not inspectable, capping them at 50. Tool descriptions range from adequate (INGEST_URL_TOOL, SEMANTIC_SEARCH_TOOL) to minimal (getVisaInfoByCountry: 'Retrieves visa information for a specific country', only 58 chars, below the 72-char average for param annotations). Input parameters are present but inconsistently described: INGEST_URL_TOOL includes detailed param descriptions ('How many link levels deep to crawl (default: 2)'), but several tools lack type annotations or constraints in descriptions (e.g., no enum for INGEST_ALL_URLS_TOOL category, no format hint for URL fields). Output schemas are not documented anywhere, critical for chaining tools. Error handling is absent: no recovery guidance, no retryable vs. fatal classification, no actionable error messages. The DOCUMENT_DELETE_TOOL accepts mutually exclusive parameters (id vs. source) but this dependency is not explicitly documented. Naming is generally strong (verb_noun pattern, clear intent), but parameter names sometimes conflict with MCP patterns (e.g., 'limit' and 'offset' are standard, but lack type=integer in visible schemas). Security: no evidence of input sanitization, secret injection, or permission gating despite write-heavy operations (INGEST_*, DELETE). Composition is reasonable, each tool has a focused purpose, but no evidence of idempotence guarantees for the ingest tools despite claims of deduplication.
Deletes one or more document chunks from both the SQLite database and the Qdrant vector store. Supply either `id` (single chunk) or `source` (all chunks from that source).
Lists document chunks stored in the database with pagination support. Returns document IDs, sources, types, and ingestion timestamps. Use DOCUMENT_RETRIEVAL_TOOL to get the full content of a specific chunk.
Retrieves a stored document chunk by its database integer ID. Use DOCUMENT_LIST_TOOL first to discover available document IDs.
Ingests content from the built-in travel URL dataset, either for a specific category or all 200+ URLs. Duplicate content is automatically skipped.
Parses a local file, chunks it, generates embeddings, and stores everything in the vector database. Re-ingesting the same file content is safely deduplicated.
Two tools (getVisaInfoByCountry, getImmigrationInfoByCountry) have no visible input schemas, parameter types, or detailed descriptions in source code. Descriptions are under 20 chars ('Retrieves visa/immigration information for a specific country'). Per HARD SCORING RULE: descriptions <20 chars score 0-20, missing schemas score 0. These tools are capped at 50 overall.
No output schemas documented for any tool. LLMs cannot plan downstream tool calls or extract needed fields without knowing the response structure. SEMANTIC_SEARCH_TOOL should return array of {id, source, chunk_text, similarity_score}, DOCUMENT_LIST_TOOL should return {documents: [...], total_count, has_more}. Missing schemas violate pattern:tool and force trial-and-error LLM reasoning.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 31 | - | v1 |
Fetches an RSS or Atom feed and ingests each article as chunked, embedded content. Supports RSS 2.0 and Atom 1.0 formats. Duplicate articles are automatically skipped on re-ingestion.
Crawls a URL and ingests all discovered content into the vector database. Automatically deduplicates content so re-ingesting the same URL is safe.
Performs a semantic similarity search over all ingested content. Returns the most relevant chunks ranked by cosine similarity score. Use this to find information related to a user query from the ingested knowledge base.
Retrieves immigration information for a specific country
Retrieves visa information for a specific country
INGEST_* tools (INGEST_URL_TOOL, INGEST_FILE_TOOL, INGEST_ALL_URLS_TOOL, INGEST_RSS_TOOL) lack error handling and recovery guidance. No documentation of what happens on network failures, malformed documents, or embedding failures. Agents cannot distinguish retryable vs. fatal errors. Per pattern:recovery-guide, errors must guide next steps ('Try again with a smaller file' vs. generic failure).
DOCUMENT_DELETE_TOOL accepts mutually exclusive parameters (id vs. source) but does not document this dependency. Per pattern:tool-description, mutually exclusive parameters must be stated in both param descriptions. LLMs may pass both, causing ambiguity or silent failures.
INGEST_ALL_URLS_TOOL 'category' parameter lacks enum or list of valid values. Description states 'e.g. visa, flights' but does not enumerate all 200+ categories or state that omission ingests all. Per pattern:constrained-input, free-form strings invite hallucinated values; should declare valid categories as an enum.
No evidence of input validation, sanitization, or security gates. INGEST_FILE_TOOL accepts arbitrary 'filePath' without path traversal checks; INGEST_URL_TOOL accepts any URL without origin validation. Per pattern:tool-gateway, all agent input must be sanitized. DOCUMENT_DELETE_TOOL allows destructive operations (purging all chunks from a source) without confirmation or permission checks.
DOCUMENT_LIST_TOOL offers pagination (limit, offset) but no documented total_count or next_cursor in response. Per pattern:paginated-result, paginated tools must return total count or next_cursor so LLM knows if more results exist and can avoid redundant queries.
INGEST_* tools claim automatic deduplication but provide no documentation of idempotence guarantees. Per pattern:idempotent-operation, agents retry on failure, non-idempotent ingest calls could create duplicate embeddings. Describe how deduplication works (content hash? URL? timestamp?) so agents know retry is safe.
No tool annotations (readOnlyHint, destructiveHint) visible in source. INGEST_* and DOCUMENT_DELETE_TOOL are mutating operations; SEMANTIC_SEARCH_TOOL and DOCUMENT_RETRIEVAL_TOOL are read-only. Per current MCP spec (2026-07-28), tool annotations help clients and agents understand operation side effects and plan accordingly.