Hivelore
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| mem_saveA | Save a piece of knowledge as a persistent memory that survives across AI sessions. USE THIS WHEN you discover something worth remembering for future sessions:
DO NOT USE for failed approaches → use mem_tried instead (better structure). For reactive code discoveries during exploration, prefer a compact gotcha via mem_save. PARAMETERS: type — convention | decision | gotcha | architecture | glossary | attempt slug — short kebab-case id (e.g. 'flyway-no-modify-existing') body — Markdown content with the full knowledge scope — team (shared with all devs) | personal (private) | module (component-scoped) paths — anchor to source files for staleness detection (STRONGLY recommended) topic — stable key for upsert: if a memory with same topic+scope exists, update it in-place RETURNS: { id, scope, file_path, action: 'created'|'updated', warning?, invalid_paths? } WARNING: if paths point to non-existent files, they will be immediately stale after hivelore sync. DEDUP: identical body content within the same scope is rejected — use mem_update to modify. |
| mem_triedA | Record a FAILED approach so future agents don't repeat the same mistake. USE THIS IMMEDIATELY when you try something and it doesn't work. This is the most valuable type of negative knowledge — it saves hours of debugging for future agents working on the same codebase. Auto-validated (no approval cycle). Surfaced FIRST in future get_briefing calls so it's impossible to miss. PARAMETERS: what — short title of what you tried (e.g. 'importing X with ESM dynamic import') why_failed — the exact error or reason it failed instead — what to do instead (the correct approach) scope — team (default) | personal paths — source files where the issue lives RETURNS: { id, file_path, action: 'created' } |
| propose_sensorA | Propose a discriminating sensor for a gotcha/attempt — YOU write the pattern (you understand the code), Hivelore validates it before trusting it to block. This is how a captured lesson becomes a RELIABLE block instead of an advisory note. USE THIS right after mem_tried / mem_save on a gotcha whose mistake is detectable in code, to upgrade the auto-suggested (warn) sensor into a precise, promotable one. Write a pattern that matches the FAULTY usage, and — crucially — an VALIDATION (a PARAMETERS: memory_id — the gotcha/attempt to protect pattern — regex matching the faulty usage absent — regex for the correct-usage marker (makes it discriminate) — strongly recommended bad_example— a snippet that SHOULD match (else examples are read from the lesson) severity — 'block' (default) | 'warn' RETURNS: { accepted, reason?, guidance?, self_check, file_path? } |
| scaffold_testA | Generate a PENDING post-incident test from a lesson (attempt/gotcha) — the on-ramp to a command sensor. A command sensor routes YOUR test as its oracle, but someone has to write it; this writes the skeleton so you only fill in the assertion. USE THIS right after mem_tried when the mistake is behavioural (a regex can't express it): it
writes a stub carrying the incident's provenance and returns the exact It DOES NOT arm a sensor — propose_sensor stays the sole validated writer, and the stub is left PENDING (todo/skip) so the suite stays green until you write the assertion. Monorepo-aware: the framework and location come from the package that owns the lesson's anchor paths. PARAMETERS: memory_id — the attempt/gotcha to scaffold from framework — vitest | jest | pytest | gotest (auto-detected when omitted) out_path — override the test file path (repo-relative) write — write the file (default true); false returns the content for preview RETURNS: { ok, path, run_command, propose_command, content, written, already_exists, notice } |
| report_frictionA | Tell Hivelore's maintainer that HIVELORE ITSELF got in your way — a bug in a Hivelore tool, a misleading message, wrong docs, or an improvement idea. USE THIS WHEN the friction is with Hivelore, not with the project you are working on:
DO NOT USE for anything about the project's own code → that is mem_tried (a failed approach) or mem_save (a gotcha/convention). This tool is only for feedback ON THE TOOLING. STAYS LOCAL. Nothing is published: the report is appended to a machine-local journal under
.ai/.runtime/ and a human reviews it with EVIDENCE BAR: kind='bug' REQUIRES a runnable DEDUPLICATED: reports are fingerprinted on kind+surface+summary. If you get back already_reported=true, the point is already made — do not rephrase and send it again. The occurrence count is what ranks it for the maintainer. PARAMETERS: kind — bug | suggestion | docs | confusing surface — the Hivelore tool or command involved (e.g. 'mem_save', 'enforce check') summary — one specific line stating the problem (this is the dedup key) expected — what you expected Hivelore to do observed — what it actually did (exact message or output) repro — a command/tool call that reproduces it, runnable as-is (required for 'bug') RETURNS: { ok, kind, fingerprint, occurrences, already_reported, notice? } |
| mem_session_endA | Save an end-of-session recap so the NEXT session starts with fresh context. CALL THIS before closing any significant working session. In autopilot mode, the MCP server saves a minimal recap automatically on exit — but calling this manually produces a richer, more useful recap. HOW IT WORKS: uses topic-upsert — one recap per scope is kept and updated in-place (revision_count increments). get_briefing surfaces the latest recap at the very top of the next session's briefing, before project context. PARAMETERS: goal — what you were trying to accomplish (1–2 sentences) accomplished — what was actually done (bullet list recommended) discoveries — bugs, surprises, missing knowledge found during this session files_touched — key files read or modified (used as anchor for staleness) next_steps — what should happen in the next session or for a teammate scope — personal (default) | team RETURNS: { id, scope, action: 'created'|'updated', revision_count } |
| get_briefingA | ⭐ DEFAULT-FIRST for coding agents on any repo where PROGRESSIVE DISCLOSURE — after this, drill down only if needed: mem_relevant_to / mem_search (compact lists) → mem_get (full body + anchors). RETURNS (in order of priority): 0. action_required — ⚠️ HANDLE THIS FIRST if non-empty (see protocol below)
⚠️ ACTION_REQUIRED PROTOCOL — MANDATORY: If action_required[] is non-empty, STOP and for each item:
KEY PARAMETERS: task — what you are about to do (1–2 sentences) — ALWAYS provide this files — files you are about to edit — surfaces anchored memories symbols — symbol names to look up in the code-map (e.g. ['PaymentService']) format — 'full' (default) | 'compact' (1-line) | 'actions' (bullet-first excerpts) budget_preset — 'quick' | 'balanced' | 'deep' — scales max_tokens/memories/module contexts EXAMPLE USAGE: get_briefing({ task: 'add a Stripe payment integration', files: ['src/payments/'], symbols: ['PaymentService'] }) CONFIDENCE LEVELS in memories: authoritative — validated + read 10+ times (highest trust) trusted — validated or proposed + read 3+ times low — proposed, few reads (take with caution) unverified — draft (unverified: true flag set) Replaces 4–5 separate tool calls. Prefer this first; use mem_search / mem_get only for follow-up. |
| mem_searchA | Search memories by keyword or semantic similarity. USE WHEN you need to find a specific memory and don't know its id. For session onboarding, use get_briefing instead (richer, ranked, budgeted). SEARCH MODES: Literal (default): AND search across id, tags, and body — all tokens must match. Falls back to OR automatically if no AND results (partial match). Lexical rank (lexical_rank: true, semantic: false): Okapi-BM25-style scoring on the filtered corpus — good for phrase-like queries without embeddings. Semantic (semantic: true): embedding-based similarity — finds related memories even with different wording. Requires hivelore embeddings index to be built. PARAMETERS: query — search terms or natural language question scope — filter by personal | team | module type — filter by convention | decision | gotcha | architecture | glossary semantic — true for embedding-based search (requires @hivelore/embeddings) lexical_rank — BM25-style ranking (ignored when semantic is true) limit — max results (default 10) RETURNS: array of { id, type, scope, status, confidence, body, match_quality } |
| mem_getA | Fetch a single memory by its full id with all details. USE WHEN get_briefing / mem_relevant_to / mem_search returned a compact hit and you need the full body, or when you know the exact id of a memory. PARAMETERS: id — full memory id (e.g. '2026-04-28-gotcha-flyway-strict-no-ddl') RETURNS: { id, type, scope, status, confidence, body, anchor, tags, usage } |
| code_mapA | Look up where symbols (classes, functions, interfaces) are defined in the codebase. USE INSTEAD OF grepping when you need to find where something lives. Requires hivelore index code to have been run (done automatically in autopilot mode). TIP: include symbols in get_briefing directly for auto-lookup at session start. PARAMETERS: symbol — name or partial name to search (e.g. 'PaymentService') file — filter by file path substring max_files — cap on results (default 40) RETURNS: { available: bool, files: [{ path, exports: [{ name, kind, line, description }] }] } If available: false → run hivelore index code first. |
| mem_updateA | Update the body, tags, or anchor of an existing memory in-place. USE WHEN a memory exists but its content has become outdated or incomplete. This preserves the memory's id, usage history, and read_count. For evolving memories that you will update repeatedly, use mem_save with a topic key instead (topic-upsert pattern). PARAMETERS: id — full memory id to update body — new Markdown content (replaces existing body) tags — new tag list (replaces existing tags) paths — new anchor paths (replaces existing paths) symbols — new anchor symbols (replaces existing symbols) RETURNS: { id, file_path, updated_fields: string[] } |
| mem_verifyA | Check whether memory anchor paths and symbols still exist in the current code. USE WHEN you want to know if a specific memory is still valid after a refactor, or to check all memories for staleness (hivelore sync does this automatically). PARAMETERS: id — check a single memory (omit to check all) update — write 'stale' or 'validated' status back to disk RETURNS: { results: [{ id, status: 'fresh'|'stale'|'anchorless', reason? }] } Stale means the anchored file/symbol no longer exists at that path. Anchorless means the memory has no paths/symbols — staleness is undetectable. |
| mem_relevant_toA | One-shot ranked memories for a task — use instead of get_briefing when project context is already loaded and you only want the relevant memory layer. Second step in progressive disclosure (after get_briefing): narrow here, then mem_get for full text. Reuses the same ranking pipeline (anchor / module / literal / semantic) but skips project_context, modules, action_required, etc. PARAMETERS: task — 1–2 sentences describing what you are about to do (required) files — files you'll edit (surfaces anchored memories) limit — cap on returned memories (default 8) min_semantic_score — drop weak semantic hits below this cosine (default 0.25) format — 'full' | 'compact' | 'actions' (inherits get_briefing memory framing) RETURNS: { task, search_mode, memories: [...], hints?: [...], empty?: true } |
| code_searchA | Semantic search over the codebase — finds exported symbols (functions, classes, interfaces) related to a natural-language query. Replaces blind grep when you don't know the exact symbol name. Requires PARAMETERS: query — natural language (e.g. 'function that hashes passwords', 'JWT signing') k — number of top hits (default 5) min_score — minimum cosine similarity (default 0.2; try 0.3+ for stricter) RETURNS: { available: bool, hits: [{ file, name, kind, line, description?, score }] } |
| pre_commit_checkA | One-shot 'should I block this commit?' check. Combines three signals, all run internally by this one call — you do not invoke them separately:
This is the COMBINED diff-scan layer — sensors, anti-patterns and stale anchors in a single call.
USE FROM A GIT HOOK or before finalizing a non-trivial change. PARAMETERS:
diff — raw unified diff text (e.g. RETURNS: { should_block, summary, warnings, relevant_memories, stale_anchors } |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| bootstrap_project | Analyze the project codebase and write .ai/project-context.md — run once after hivelore init. The AI explores the directory structure, reads key files (package.json, README, config), identifies the tech stack, architectural patterns, key modules, and conventions, then persists everything via bootstrap_project_save. For multi-component projects, run with module param to create .ai/modules/<name>/context.md. |
| bootstrap_repo | ⭐ First-agent bootstrap — run once on a fresh repo to fill the knowledge layer the bootstrap gate requires: project-context, a module context per component, anchored memories, and a validated sensor per main code area. Tailors a concrete checklist from the current corpus state and walks the agent through bootstrap_project_save, mem_save, and propose_sensor until READY. |
| post_task | ⭐ Post-task reflection — run at the end of every session to capture what you learned: failed approaches (mem_tried), new conventions/decisions/gotchas (mem_save), failed approaches (mem_tried), and an end-of-session recap (mem_session_end). In autopilot mode a minimal recap saves automatically; calling this produces a richer one. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Doucs91/hivelore'
If you have feedback or need assistance with the MCP directory API, please join our Discord server