An MCP server that provides tools for retrieving structured metadata from SharePoint and querying a Neo4j knowledge graph using semantic similarity.
Both tools lack critical definition quality. metadata_retrieve has NO input schema despite docstring mentioning a 'query' parameter that doesn't exist in the actual signature, a dangerous mismatch. entity_retrieve has a minimal schema with only 'query' string, no description of what the query should contain or expected output format. Descriptions are present but generic (194 chars baseline; these are ~150 chars). No output schemas documented. No error handling guidance. No parameter constraints (enums, ranges). Tool names use verb_noun pattern correctly but lack clarity on what 'retrieve' returns. Both tools return unstructured strings instead of structured JSON, violating response-shaper pattern.
Query the knowledge graph using semantic similarity to find relevant entities and their relationships.
Returns structured metadata from the SharePoint 'Documents' library for use in LLM context.
metadata_retrieve has NO input schema in registration, but docstring claims a 'query' parameter. Actual function signature is empty. This is a critical mismatch that will cause LLM confusion and tool invocation failures.
Both tools return unstructured strings instead of structured JSON objects. LLMs cannot reliably parse free-text output like 'entity1 - RELATIONSHIP -> entity2'. Violates response-shaper pattern and wastes tokens on parsing.
No output schema documented for either tool. LLMs cannot plan downstream calls or extract structured data. entity_retrieve returns a string; metadata_retrieve returns JSON Lines but this is not declared in the tool definition.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | <=2025-11-25 | v2 |
entity_retrieve 'query' parameter lacks description of expected format, examples of valid queries, or constraints. LLMs will guess at query structure. No guidance on semantic similarity thresholds or top_k behavior exposed to the caller.
No error handling or recovery guidance. If SharePoint connection fails, Neo4j is unavailable, or embeddings service times out, tools return raw exceptions. LLMs receive no actionable next steps.