Minerva
Manages skills and profiles on disk and probes companion tools (bob, cortex, mcphub, etc.) over stdio MCP, enabling library operations and stack readiness checks.
README
Minerva
Agent library operator and stack readiness CLI/MCP for the shared ~/.agents tree.
Minerva manages skills and profiles on disk (the same layout local-agent loads), and probes companion tools (bob, cortex, mcphub, codemap, vecgrep, …) using real binary names and tiered health.
It is not a second agent runtime, not Cortex, and not MCPHub. Skill “activation” updates Minerva-local state only; local-agent injects skills via profiles, /skill, and load_skill.
Built with Go + Cobra + MCP stdio (same family as Bob / Cortex).
What Minerva does
| Surface | Role |
|---|---|
| Skills | Create/list/show/compare/delete under ~/.agents/skills/ |
| Profiles | Create/list/show/update/delete ~/.agents/agents/*/agent.yaml |
| Templates | Seed profiles with role prompts + skill bundles |
| Stack check | Presence probe (correct binaries, core vs optional tiers) |
| Stack deep | Bob/cortex/mcphub + readiness doctors/status |
| Suggest | Ranked library/stack suggestions (one engine for CLI + MCP) |
| Analytics | Append-safe Minerva-local event log |
| MCP | Expose the above over stdio for harnesses / MCPHub |
Quick start
Prerequisites
Install / build
# Homebrew (recommended for macOS and Linux)
brew install --cask abdul-hamid-achik/tap/minerva
# From source
task build # bin/minerva
# or
go install github.com/abdul-hamid-achik/minerva/cmd/minerva@latest
Initialize
minerva init
Creates:
~/.agents/
agents/ # agent profiles (agent.yaml)
skills/ # skill definitions (SKILL.md)
tasks/ # reserved
memories/ # reserved
Override root with MINERVA_AGENTS_DIR (tests should always use this).
CLI
Skills
minerva skill list
minerva skill show <name>
minerva skill compare <a> <b>
minerva skill create <name> <content> [-d description]
minerva skill activate <name> # Minerva-local only
minerva skill deactivate <name>
minerva skill delete <name>
Profiles
minerva profile list
minerva profile show <name>
minerva profile compare <a> <b>
minerva profile create <name> [prompt] [-d desc] [-m model] [-s skill]...
minerva profile update-prompt <name> <prompt>
minerva profile update-skills <name> skill1,skill2
minerva profile delete <name>
Stack
minerva stack check # presence, tiered
minerva stack check --json
minerva stack deep [workspace]
minerva stack deep --json
minerva stack deep --stash # save report to fcheap (minerva-stack, TTL 30d)
stack deep sets retrieval_ready only when both codemap and vecgrep are domain-ready (indexed, not stale). Binary-on-PATH is not enough.
MCPHub slice includes unused_enabled servers and harness agents_drift from mcphub status --json. Suggest will propose mcphub disable <server> for zero-call enabled servers and flag profile mcp_servers that name unknown hub servers.
Cortex slice uses cortex overview --json (sessions/active/stale/verified rates) plus sample stale sessions and active count for the current workspace. Suggest surfaces stale backlog and low verified rates — it never mutates cortex tasks.
Binary map (product → PATH command):
| Product | Binary | Tier |
|---|---|---|
| bob | bob |
core |
| cortex | cortex |
core |
| mcphub | mcphub |
core |
| codemap | codemap |
core |
| vecgrep | vecgrep |
core |
| fcheap | fcheap |
core |
| monitor | monitor |
optional |
| hitspec | hitspec |
optional |
| glyphrun | glyph |
optional |
| cairntrace | cairn |
optional |
| vidtrace | vidtrace |
optional |
| tinyvault | tvault |
optional |
| veclite | veclite |
infra |
Core missing → unhealthy. Optional missing → degraded only.
Suggest / analytics / templates
minerva suggest
minerva suggest --json
minerva suggest --apply # only allowlisted skill activate actions
minerva analytics
minerva template list|show|apply
Evidence (fcheap tags)
Durable outcomes go through fcheap with standard tags — Minerva does not reimplement the vault.
minerva evidence docs
minerva evidence save ./run-artifacts --kind eval --outcome pass \
--tag skill:qa-tester --tag profile:code-reviewer --index
minerva evidence search minerva-eval
fcheap list --tag minerva --tag outcome:fail --json
Tags always include minerva; kind adds minerva-eval / minerva-suggest / minerva-stack / minerva-incident; optional outcome:pass|fail|skip.
Attribution: skill:<name>, profile:<name> — minerva suggest reads failed stashes for evidence-backed recommendations.
MCP
minerva mcp serve
Tools include skill/profile CRUD, minerva_stack_check, minerva_stack_deep, minerva_analytics, minerva_suggest.
Wire via MCPHub:
servers:
minerva:
command: minerva # or absolute path to bin/minerva
args: [mcp, serve]
enabled: true
For local-agent, list exact trust routes (no wildcards). Prefer read-only tools in AUTO; gate mutations.
Architecture
cmd/minerva/
internal/
cli/ Cobra commands
mcp/ MCP stdio server
skill/ Skill discovery + Minerva activation state
profile/ Profile YAML management
templates/ Role prompt templates
monitor/ Presence probes (bins + tiers)
integration/ Deep readiness (sibling CLIs)
suggest/ Shared suggestion engine
analytics/ Append-safe event store
version/
Contracts with local-agent
Shared (disk SSOT):
~/.agents/skills/*/SKILL.md~/.agents/agents/*/agent.yaml- optional
agents.md/instructions.md
Not shared:
~/.agents/.minerva-skills.json— Minerva activation only~/.agents/.minerva-analytics.json— Minerva analytics only
local-agent projects profile skills into session Active Skills at startup; it never reads Minerva activation state.
Do not reimplement
MCPHub gateway/sync/telemetry · Cortex task lifecycle · Bob plan/apply · Codemap graph · Vecgrep index · fcheap vault · glyph/cairn runners · tvault secrets · monitor process ops
Minerva orchestrates their public --json surfaces.
Development
task build
task test
task lint
task fmt
task glyph-fast # Glyphrun CLI self-specs (fast)
task glyph # includes slow stack deep retrieval_ready field check
task docs:dev # VitePress site → http://127.0.0.1:5173
task docs:build # static site → docs/.vitepress/dist
task cairn # browser specs against local docs
task cairn-prod # browser specs against https://minervacli.dev
- CLI contracts:
specs/*.yml(glyph) - Docs site:
docs/→ deploy to minervacli.dev (Vercel) - Browser contracts:
browser-specs/*.yml(cairn)
Releases
Tags matching v* run GoReleaser in GitHub Actions. The workflow publishes
macOS and Linux archives for amd64/arm64, creates a GitHub Release with
checksums, and updates Casks/minerva.rb in
abdul-hamid-achik/homebrew-tap.
Cross-repository publishing requires the HOMEBREW_TAP_TOKEN repository
secret with Contents read/write access to the tap repository.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.