Part of #4859.
Motivation
MCP Prompts are entirely unimplemented (confirmed alongside Resources — zero matches for prompts/list/prompts/get). Guided prompt templates steer models toward correct, safe use of the new retrieval/upsert tools instead of reaching for raw execute_command with hand-written vector/MERGE syntax — this is architecturally higher-leverage than adding more tools, per the governing principle in #4859.
Proposed design
- Implement
prompts/list and prompts/get in both transports; advertise capabilities.prompts = {listChanged: false}.
graphrag_query prompt: arguments {database, question}; template instructs the model to call vector_search/hybrid_search/full_text_search as appropriate and cite retrieved rids.
build_knowledge_graph prompt: arguments {database, sourceText}; template instructs the model to extract entities/relationships and call upsert_entity/upsert_relationship, emphasizing match-key selection to avoid duplicates.
- New package
server/src/main/java/com/arcadedb/server/mcp/prompts/ mirroring the tools/ pattern (one class per prompt with getDefinition()/getMessages(args)).
Acceptance criteria
Files to touch
server/src/main/java/com/arcadedb/server/mcp/prompts/GraphRagQueryPrompt.java, BuildKnowledgeGraphPrompt.java (new), MCPHttpHandler.java, MCPStdioServer.java, tests, docs.
Dependencies
Blocked-by #4860 (vector_search), #4861 (hybrid_search), #4864 (upsert_entity/upsert_relationship) — prompt text references these tools by name, so sequence after those tool names are finalized.
Effort estimate
M — new protocol primitive, prompt-text design/iteration, cross-reference test.
Part of #4859.
Motivation
MCP Prompts are entirely unimplemented (confirmed alongside Resources — zero matches for
prompts/list/prompts/get). Guided prompt templates steer models toward correct, safe use of the new retrieval/upsert tools instead of reaching for rawexecute_commandwith hand-written vector/MERGE syntax — this is architecturally higher-leverage than adding more tools, per the governing principle in #4859.Proposed design
prompts/listandprompts/getin both transports; advertisecapabilities.prompts = {listChanged: false}.graphrag_queryprompt: arguments{database, question}; template instructs the model to callvector_search/hybrid_search/full_text_searchas appropriate and cite retrievedrids.build_knowledge_graphprompt: arguments{database, sourceText}; template instructs the model to extract entities/relationships and callupsert_entity/upsert_relationship, emphasizing match-key selection to avoid duplicates.server/src/main/java/com/arcadedb/server/mcp/prompts/mirroring thetools/pattern (one class per prompt withgetDefinition()/getMessages(args)).Acceptance criteria
prompts/listreturns both prompts with argument schemas.prompts/getreturns well-formed message arrays referencing actual, currently-registered tool names (test should fail if a referenced tool is renamed/removed).Files to touch
server/src/main/java/com/arcadedb/server/mcp/prompts/GraphRagQueryPrompt.java,BuildKnowledgeGraphPrompt.java(new),MCPHttpHandler.java,MCPStdioServer.java, tests, docs.Dependencies
Blocked-by #4860 (
vector_search), #4861 (hybrid_search), #4864 (upsert_entity/upsert_relationship) — prompt text references these tools by name, so sequence after those tool names are finalized.Effort estimate
M — new protocol primitive, prompt-text design/iteration, cross-reference test.