1. Conduid
  2. Developer Tools
  3. Mie
MCP server · Developer Tools

Mie

Persistent memory graph for AI agents. Facts, decisions, entities, and relationships that survive across sessions, tools, and providers. MCP server — works with Claude, Cursor, ChatGPT, and any MCP client.

72Good

Scored 1 hours ago · breakdown

About Mie

Mie is an MCP server published by kraklabs in the Developer Tools category: persistent memory graph for AI agents. Facts, decisions, entities, and relationships that survive across sessions, tools, and providers. MCP server — works with Claude, Cursor, ChatGPT, and any MCP client.

The repository has 44 stars and 6 forks, with the last commit 7 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/kraklabs/mie

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (12)

mie_analyzeSurfaces related context before storing — the agent decides what's worth remembering

Parameters not published.

mie_bulk_storeBatch store up to 50 nodes with cross-references — ideal for importing knowledge from files or git history

Parameters not published.

mie_conflictsDetect contradictions in stored knowledge

Parameters not published.

mie_deleteRemove nodes with cascade (embedding + edges) or remove individual relationships

Parameters not published.

mie_exportExport the full graph as JSON or Datalog

Parameters not published.

mie_getRetrieve a single memory node by ID with full details

Parameters not published.

mie_listList and filter nodes with pagination

Parameters not published.

mie_querySemantic search, exact lookup, or graph traversal across all node types

Parameters not published.

mie_repairRebuild HNSW indexes and clean orphaned embeddings

Parameters not published.

mie_statusGraph health, node counts, usage metrics

Parameters not published.

mie_storeWrites facts, decisions, entities, events, and relationships to the graph

Parameters not published.

mie_updateInvalidate outdated facts, update statuses — with full history preserved

Parameters not published.

Ask AI

✦

Ask AI about Mie

Powered by Claude · Grounded in docs

I know everything about Mie. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 1 hours ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

Releases

v1.3.7v1.3.7 · 17 Mar 2026Added MCP tool filtering**: New `mcp.include_tools` and `mcp.exclude_tools` options in `config.yaml` to control which tools are exposed to MCP clients. Usage .mie/config.yaml mcp: Option A: whitelist — only expose these tools…
v1.3.6v1.3.6 · 12 Mar 2026Fixed Fork bomb in daemon start**: `forkDaemonBackground` and `connectOrStartDaemon` spawned `mie daemon start` without `--foreground`, so each child re-forked indefinitely (~1 fork/500ms). The forked child now runs with `--foreground` to…
v1.3.5v1.3.5 · 12 Mar 2026Fixed Daemon child processes left as zombies: `runDaemonStart` and `connectOrStartDaemon` now call `cmd.Wait()` in a background goroutine after `cmd.Start()` to reap the forked daemon process Zombie accumulation when daemon runs as PID 1…
v1.3.4v1.3.4 · 15 Feb 2026Fixed `--foreground` flag ignored in `mie daemon start --foreground`: the parent `runDaemon` FlagSet had `UnknownFlags = true` which silently consumed `--foreground` before it reached `runDaemonStart` — the daemon would fork into…
v1.3.3v1.3.3 · 15 Feb 2026Full Changelog**: https://github.com/kraklabs/mie/compare/v1.3.2...v1.3.3

README


The Problem

You explained your entire architecture to Claude. Two hours of context, decisions, tradeoffs. Next day, new conversation — it knows nothing. So you explain it again. Then you switch to Cursor for implementation. Zero context. You open ChatGPT to brainstorm a different angle. Blank slate.

Every AI agent you use is brilliant but amnesiac. And none of them talk to each other.

MIE fixes this. One knowledge graph. Every agent reads from it. Every agent writes to it. Your decisions, your context, your rules — always available, everywhere.

How It Works

You: "We chose PostgreSQL over DynamoDB because we need ACID
      transactions for the payments module. Alternative was Aurora
      but too expensive at current stage."

          Claude stores this via MIE
                    ↓
┌─────────────────────────────────────────────┐
│              MIE Knowledge Graph             │
│                                              │
│  Decision: PostgreSQL over DynamoDB          │
│  Rationale: ACID transactions for payments   │
│  Alternatives: [DynamoDB, Aurora]            │
│  Entities: payments-module, PostgreSQL       │
│  Status: active                              │
└─────────────────────────────────────────────┘
                    ↓
    Next week, in Cursor, different project:
    "What database did we choose and why?"
    → Cursor queries MIE, gets full context instantly

No copy-pasting. No "as I mentioned before." No starting from zero.

Why Not Just Use Claude's Memory / ChatGPT's Memory?

Platform Memory MIE
Cross-agent ❌ Claude doesn't know what you told ChatGPT ✅ All agents share the same graph
Structured ❌ Flat text summaries ✅ Typed nodes: facts, decisions, entities, events
Queryable ❌ Basic keyword recall ✅ Semantic search, graph traversal, conflict detection
Portable ❌ Locked to one provider ✅ Your data, your machine, exportable
Relationships ❌ None ✅ "This decision relates to this entity and was triggered by this event"
History ❌ Overwrites silently ✅ Invalidation chains — see what changed and why

Quick Start

1. Install

brew tap kraklabs/mie
brew install mie

2. Initialize

mie init                    # Quick setup with defaults
mie init --interview        # Interactive — asks about your stack, team, and project

3. Connect to your AI agents

Claude Code (.mcp.json):

{
  "mcpServers": {
    "mie": {
      "command": "mie",
      "args": ["--mcp"]
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "mie": {
      "command": "mie",
      "args": ["--mcp"]
    }
  }
}

That's it. Your agents now share a brain.

What Gets Stored

MIE isn't a chat log. It stores structured knowledge as a graph:

Facts — Things that are true about your world. "Our API uses JWT with RS256 signing." · "The team is 6 engineers across 3 timezones."

Decisions — Choices with rationale and alternatives. "Chose Go over Rust for CIE because of CGO CozoDB bindings. Alternatives: Rust, Python."

Entities — People, companies, projects, technologies. "Kraklabs — independent software and AI lab." · "CIE — Code Intelligence Engine."

Events — Timestamped occurrences. "Launched v0.4.0 on 2026-01-15." · "Client demo scheduled for March 10."

Topics — Recurring themes that connect everything. "Architecture" · "Security" · "Product Strategy"

These connect through typed relationships — a decision references entities, relates to topics, and may be triggered by events. When an agent queries "what do you know about our security decisions?", MIE traverses the graph and returns structured context, not keyword matches.

MCP Tools

MIE exposes 12 tools through the Model Context Protocol:

Tool What it does
mie_analyze Surfaces related context before storing — the agent decides what's worth remembering
mie_store Writes facts, decisions, entities, events, and relationships to the graph
mie_bulk_store Batch store up to 50 nodes with cross-references — ideal for importing knowledge from files or git history
mie_get Retrieve a single memory node by ID with full details
mie_query Semantic search, exact lookup, or graph traversal across all node types
mie_list List and filter nodes with pagination
mie_update Invalidate outdated facts, update statuses — with full history preserved
mie_delete Remove nodes with cascade (embedding + edges) or remove individual relationships
mie_conflicts Detect contradictions in stored knowledge
mie_export Export the full graph as JSON or Datalog
mie_repair Rebuild HNSW indexes and clean orphaned embeddings
mie_status Graph health, node counts, usage metrics

Zero Server-Side Inference

Unlike other memory solutions that run an LLM on the server to classify what to store, MIE uses an agent-as-evaluator pattern. The server provides context; your agent (which is already running an LLM) decides what matters. This means zero additional inference cost — your memory layer doesn't burn tokens.

This philosophy extends to importing: when you ask your agent to "import knowledge from this repo", the agent reads your files, ADRs, or git history directly and uses mie_bulk_store to persist what it extracts. MIE stays as a pure storage engine — the connected agent IS the LLM.

Architecture

┌─────────────────────────────────────┐
│  Any MCP Client                     │
│  Claude · Cursor · ChatGPT* · etc   │
└──────────────┬──────────────────────┘
               │ MCP (JSON-RPC over stdio)
┌──────────────▼──────────────────────┐
│  MIE Server  (one per MCP client)   │
│  12 tools · semantic search ·       │
│  graph traversal · conflicts        │
└──────────────┬──────────────────────┘
               │ Unix domain socket
┌──────────────▼──────────────────────┐
│  MIE Daemon  (shared singleton)     │
│  Manages exclusive DB lock ·        │
│  Serves multiple clients            │
└──────────────┬──────────────────────┘
               │ Datalog queries
┌──────────────▼──────────────────────┐
│  CozoDB (embedded)                  │
│  Graph DB · HNSW vectors · ACID     │
└─────────────────────────────────────┘
       + Ollama (optional, local embeddings)

ChatGPT via custom GPT Actions pointing to MIE Cloud (coming soon).

Multiple MCP clients (Claude, Cursor, etc.) can run simultaneously — the daemon holds the exclusive database lock and multiplexes access. The daemon starts automatically on first use or can be managed manually via mie daemon.

Memory Lifecycle

 Store                    Query                     Evolve
 ─────                    ─────                     ──────
 Your agent learns   →    Next session, any    →    Facts change.
 something new.           agent queries MIE         Old ones get
 It stores a fact,        for context before        invalidated, not
 a decision, or an        responding. Full          deleted. The graph
 entity — with            graph of related          keeps history of
 confidence scores        knowledge returns         what was known
 and relationships.       in milliseconds.          and when.

Configuration

# .mie/config.yaml
version: "1"
storage:
  engine: rocksdb         # rocksdb, sqlite, or mem
embedding:
  enabled: true
  provider: ollama        # ollama, openai, or nomic
  model: nomic-embed-text
mcp:
  # Option A: only expose these tools (whitelist)
  include_tools:
    - mie_analyze
    - mie_store
    - mie_query
  # Option B: expose all except these (blacklist)
  # exclude_tools:
  #   - mie_export
  #   - mie_repair

All settings can be overridden with environment variables. Embeddings are optional — MIE works without them (exact search only).

The mcp section is optional. When omitted, all 12 tools are exposed. Use include_tools to whitelist specific tools, or exclude_tools to hide a few. If both are set, include_tools takes precedence. Filtered tools are also rejected on tools/call.

CLI

mie init                    # Create config with defaults
mie init --interview        # Interactive project bootstrapping
mie --mcp                   # Start as MCP server (auto-starts daemon)
mie daemon start            # Start daemon in background
mie daemon start --foreground  # Start daemon in foreground (for debugging)
mie daemon stop             # Stop running daemon
mie daemon status           # Check if daemon is running
mie status                  # Show graph statistics
mie export                  # Export memory graph
mie import -i backup.json   # Import from JSON or Datalog
mie reset --yes             # Delete all data
mie query "<cozoscript>"    # Raw Datalog query (debug)

Prerequisites

  • Go 1.24+ (building from source)
  • Ollama (optional, for semantic search) — ollama pull nomic-embed-text

MIE works without Ollama. You get exact-match search and graph traversal. Add Ollama for semantic search ("find things related to deployment" instead of exact keywords).

Use With CIE

MIE pairs naturally with CIE (Code Intelligence Engine). Run both as MCP servers:

{
  "mcpServers": {
    "cie": { "command": "cie", "args": ["--mcp"] },
    "mie": { "command": "mie", "args": ["--mcp"] }
  }
}

CIE gives your agent deep understanding of your codebase. MIE gives it memory of everything else — decisions, architecture, people, events. Together, your agent knows your code and remembers why it's built that way.

Roadmap

  • Import from ADRs, markdown, and git history (agent-driven self-import)
  • Git post-commit hook — auto-capture decisions from commits
  • Browser extension — auto-capture knowledge from claude.ai, chatgpt.com, gemini
  • MIE Cloud — sync across devices, team shared memory
  • ChatGPT integration via custom GPT Actions
  • Web UI for exploring and managing your knowledge graph

Join the waitlist: kraklabs.com/mie

License

MIE is dual-licensed:

Contributing

We welcome contributions. See contributing.md for guidelines.


Built by Kraklabs · Makers of CIE and MIE

README fetched from the repository 1 hours ago. The original is authoritative.

Questions

About Mie

How do I install Mie?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Mie safe to use with an AI agent?

Its trust score is 72 out of 100 (good). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Mie still maintained?

The last commit was 7 months ago and 2 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.