4.1 KiB
4.1 KiB
MCP Surface
RA-H exposes MCP tools for direct graph work against the local database or app API.
Important runtime distinction:
- the app MCP surface talks to the running app/API
- the standalone MCP surface talks directly to an existing SQLite DB file
- standalone MCP can read and write nodes/edges without the app running, but it does not own chunking or embedding
- if standalone MCP writes
nodes.sourcewhile the app is closed, the app later processes that node through startup recovery
Core MCP Contract
queryNodesis the primary tool for direct node retrieval when the user is trying to find a specific existing node.retrieveQueryContextis the primary retrieval entrypoint for substantive current-turn work when the agent needs graph context to support a broader answer.getContextreturns graph orientation: stats, hubs, and skills.createEdgeis a post-confirmation execution tool. Agents should propose likely edges first and only write them after the user explicitly confirms.queryNodessearches title, description, and source.dimensionsare removed from the MCP contract.
Behavior Split
Internal app MCP surfaces:
- talk to the running app/API
- can participate in the live app runtime and UI refresh model
Standalone MCP:
- talks directly to an existing SQLite DB
- can read and write nodes, edges, and skills without the app running
- does not own chunking, vector generation, or schema migration on a live existing DB
- relies on the app to process pending
nodes.sourcework later
Main Tools
Read:
retrieveQueryContextgetContextqueryNodesgetNodesByIdqueryEdgelistSkillsreadSkillsearchContentEmbeddingssqliteQuery
Write:
createNodeupdateNodecreateEdgeupdateEdgewriteSkilldeleteSkill
Tool Behavior
- Always search before creating.
- If the user is trying to find a specific existing node, use
queryNodesfirst. - If the user is asking a broader question that would benefit from graph context, use
retrieveQueryContext. - Optional user memory reinforcement can help, but the MCP tools, instructions, skills, and docs should be enough for the core retrieval and writeback contract to work.
- If the user explicitly asked to save or update something and the target artifact is clear, the agent can write after duplicate/update checks.
- If the agent is only suggesting a save, it should propose the node first and wait for confirmation.
- When obvious relationships appear, propose candidate edges briefly rather than writing them automatically.
- Judge graph quality by node quality and edges, not taxonomy completeness.
- Keep writeback prompts terse and selective. The goal is not to ask constantly whether every useful sentence should be saved.
- Do not assume MCP node creation immediately produces chunks or embeddings. The canonical contract is:
- write node data first
- app-owned pipeline later creates chunks, FTS rows, and vectors
Memory-File Rule
Optional assistant memory files can reinforce good behavior, but they are not supposed to be the hidden dependency that makes RA-H work.
Current rule:
- MCP tools, server instructions, skills, and docs should be enough for the base contract
- optional reinforcement can still improve consistency
- keep one canonical memory file when possible
- avoid contradictory instruction files across
CLAUDE.md,AGENTS.md, and other client-specific memory surfaces
Recommended guidance:
- keep the language short and simple
- focus on graph behavior, not tool micromanagement
- prefer one shared snippet over separate client-specific doctrines
Suggested memory-file snippet:
You are helping build a thoughtful graph of atomic units of context.
- Use `queryNodes` for direct lookup of a specific existing node.
- Use `retrieveQueryContext` when broader graph context would help with the current turn.
- Search before creating. Prefer updating the same artifact when it is clearly the same thing.
- `description` should state plainly what the thing is first, then why it belongs and current status.
- Preserve the user's wording in `source` for user-authored ideas unless they explicitly want a rewrite.