Give any AI agent persistent memory backed by a personal knowledge graph. Works with Claude, Cursor, Windsurf, VS Code, and any MCP-compatible tool.
The MIND MCP Server is an open-source Model Context Protocol server that connects any MCP-compatible AI agent to your personal MIND knowledge graph.
Once installed, your AI agent can query your knowledge graph, store memories, manage tasks and goals, track contacts, and check graph health — with full persistence across sessions, devices, and tools. What you teach Claude Code is available in Cursor. What you decide in one session is remembered in the next.
Your AI Agent ←→ MCP Protocol ←→ MIND MCP Server ←→ MIND Knowledge Graph
(Claude, (stdio) (Node.js) (entities + relationships)
Cursor,
Windsurf...)
Sign up at m-i-n-d.ai (free tier available — no credit card required), then navigate to Settings → Developer → Create API Key. Your key will start with mind_.
Requires Node.js 18 or higher.
npm install -g @astramindapp/mcp-server
Verify installation:
mind-mcp --version
Add MIND to your tool's MCP configuration. See the platform-specific configs below.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"mind": {
"command": "mind-mcp",
"env": {
"MIND_API_KEY": "mind_your_key_here"
}
}
}
}
claude mcp add mind -- env MIND_API_KEY=mind_your_key_here mind-mcp
Create or edit .cursor/mcp.json in your project root, or ~/.cursor/mcp.json globally:
{
"mcpServers": {
"mind": {
"command": "mind-mcp",
"env": {
"MIND_API_KEY": "mind_your_key_here"
}
}
}
}
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"mind": {
"command": "mind-mcp",
"env": {
"MIND_API_KEY": "mind_your_key_here"
}
}
}
}
Add to your .vscode/mcp.json:
{
"servers": {
"mind": {
"type": "stdio",
"command": "mind-mcp",
"env": {
"MIND_API_KEY": "mind_your_key_here"
}
}
}
}
{
mcp: {
servers: {
mind: {
command: "mind-mcp",
env: { MIND_API_KEY: "mind_your_key_here" }
}
}
}
}
{
"command": "mind-mcp",
"env": {
"MIND_API_KEY": "mind_your_key_here",
"MIND_BASE_URL": "https://m-i-n-d.ai" // optional, defaults to production
}
}
Once connected, your AI agent has access to these 16 tools:
hybrid (default — combines semantic + graph traversal), mix (balanced), graph (entity relationships), vector (semantic similarity)// Example usage
mind_query({
query: "What is my go-to-market strategy for Q3?",
mode: "hybrid"
})
document (long-form structured content), entry (medium — observations, findings), thought (quick ideas). Defaults to entry.["strategy", "competitor", "learning"]"claude-code", "cursor". Defaults to "mcp-agent".mind_remember({
content: "Decided to prioritize SEO over paid ads in Q3. Reason: CAC too high at $180.",
type: "entry",
title: "Q3 Marketing Decision",
tags: ["marketing", "decision", "q3"],
source: "claude-code"
})
soul (identity/mission), user (user profile/preferences), rules (operating constraints), priorities (current goals), recent (latest activity). Defaults to all sections.// Load full context at session start
mind_context({ sections: ["soul", "user", "rules", "priorities", "recent"] })
// Load just priorities and recent activity
mind_context({ sections: ["priorities", "recent"] })
list, create, update, complete, delete, bulk_delete, move, get, calendar_list, calendar_create, calendar_update, calendar_delete, or statsaction, someday, waiting, completedlow, medium, high, or urgentbulk_delete — deletes up to 200 items in one call; missing IDs are skipped, not errored// Create a task
mind_life({ action: "create", title: "Ship MCP docs page", priority: "high", due_date: "2026-03-22" })
// List active items
mind_life({ action: "list", status: "action" })
// Bulk-delete several items in one call
mind_life({ action: "bulk_delete", item_ids: ["id-1", "id-2", "id-3"] })
list, create, or updatelead, prospect, partner, customer, or personalnew, qualified, proposal, closed, or lostmind_crm({ action: "create", name: "Jane Smith", email: "jane@acme.com", company: "Acme Corp", type: "lead" })
stats (default), diagnostics (health check), labels (entity label breakdown)mind_graph({ action: "stats" }) // → entities, relationships, credits, tier
get, update, get_chat_prompt, set_chat_prompt, get_thought_prompt, set_thought_prompt, get_model, set_model, list_modelsget (defaults to current user)updateupdateset_chat_prompt or set_thought_promptset_modelmind_profile({ action: "set_chat_prompt", prompt: "You are my strategy partner. Be direct, concise, action-oriented." })
state (current emotion), signals (recent signals), timeline (historical), kg_weights (emotionally weighted entities), spikes (high-intensity events), acknowledge (ack a spike), summary (AI summary)acknowledgemind_sense({ action: "state" }) // → label, valence, arousal, trend, dominant_emotion
mind_sense({ action: "spikes", days: 14 })
list, unread_count, view, feedback, analyze, weekly_summary, contextview and feedbackhelpful or not_helpful for feedbackmind_insights({ action: "weekly_summary" })
mind_insights({ action: "feedback", insight_id: "ins_abc", rating: "helpful" })
start (launch research), status (check progress), list (view jobs)start)statuslist (default 10)mind_research({ action: "start", topic: "Latest advances in knowledge graph retrieval, 2026" })
start, chat, status, list_sessions, pause, resume, save_chatbasics, network, expertise, history, goals, or freeformchat actionsave_chat, pause, resumemind_train({ action: "start", session_type: "expertise" })
mind_train({ action: "chat", message: "I specialize in AI memory systems and knowledge graphs." })
list, create, update, delete, run_now, historyupdate, delete, run_now, historycreate / updateschedule, webhook, or eventmind_automate({
action: "create",
name: "Daily morning brief",
trigger_type: "schedule",
trigger_config: '{"cron":"0 8 * * *"}',
action_type: "generate_brief"
})
list, mark_read, mark_all_read, statsmark_readmind_notify({ action: "stats" })
mind_notify({ action: "list", limit: 10 })
create_thought, get_thought, delete_thought, like_thought. Feed: feed, user_feed, search_feed. Communities: create_community, list_communities, get_community, join_community, leave_community. Posts: create_post, list_postsget_thought / delete_thought / like_thoughtuser_feedcreate_communitymind_social({ action: "create_thought", content: "AI memory is the next frontier." })
mind_social({ action: "feed", limit: 10 })
mind_ keys cannot call this tool.create_user, create_featured_mind, list_featured_minds, update_featured_mind, list_users, update_user_tier, adjust_user_creditscreate_userupdate_featured_mindfree, pro, enterprise for update_user_tieradjust_user_creditsmind_admin({ action: "create_user", username: "newdev", email: "dev@acme.com", password: "...", source: "acme", generate_api_key: true })
/admin/agents on the MIND backend; UI surface at m-i-n-d.ai/agents.list, get, create, update, delete, heartbeat, probe, log_activity, list_activities, set_status, set_current_job, import_from_mind, seed_knownget/update/delete/heartbeat/probe/activities/set_*.create/update. Status: running, paused, planned, archived, error. Cadence: continuous, scheduled, on-demand.online <2× interval, stale 2-4×, offline >4×.delete (hard remove vs soft archive) and seed_known (reset existing records to seed defaults).// Before scaffolding a new agent — check what exists
mind_agents({ action: "list" })
// After non-trivial work — keep the registry honest
mind_agents({
action: "heartbeat",
slug: "social-media-manager",
current_job: "drafting LinkedIn carousel for Friday"
})
// Promote a planned agent to running
mind_agents({ action: "set_status", slug: "audit-agent", status: "running" })
/admin/agents/{slug}/tickets on the MIND backend.list, get, create, comment, update, resolve, deleteget/comment/update/resolve/delete.create. kind: feedback, critique, idea, feature, bug. priority: low, medium, high, urgent. For comment, body is the reply text.update. status: open → triaged → in_progress → resolved → closed (also a filter for list). assignee reassigns away from Ernie.// File a bug against an agent
mind_tickets({ action: "create", agent_slug: "social-media-manager",
kind: "bug", priority: "high", title: "Carousel export drops the last slide" })
// Answer it, then resolve it
mind_tickets({ action: "comment", agent_slug: "social-media-manager", ticket_id: "...", body: "Fixed — verified." })
mind_tickets({ action: "resolve", agent_slug: "social-media-manager", ticket_id: "..." })
// SESSION START — always do this first
1. mind_context() → Load identity, rules, priorities
2. mind_query(task_query) → Get relevant memories for the current task
// DURING SESSION — as needed
3. mind_query(...) → Before making decisions
4. mind_life(...) → Create/update tasks
// SESSION END — always do this last
5. mind_remember(outcomes) → Store what was decided, learned, or completed
| Variable | Required | Default | Description |
|---|---|---|---|
MIND_API_KEY | Yes | — | Your MIND Developer API key. Get one at m-i-n-d.ai → Settings → Developer. Starts with mind_. |
MIND_BASE_URL | No | https://m-i-n-d.ai | MIND API base URL. Override for self-hosted deployments. |
| Capability | MEMORY.md / flat files | MIND MCP |
|---|---|---|
| Size limit | ~20K chars, then truncated | Unlimited knowledge graph |
| Retrieval | Loads everything every turn | Only retrieves relevant memories |
| Structure | Unstructured text | Entities + relationships + embeddings |
| Search | Keyword on small file | Hybrid semantic + graph traversal |
| Cross-tool | Locked to one tool | Shared across all MCP-compatible agents |
| Documents | Manual | Upload PDFs, Word, URLs, text |
| Tasks | Manual text editing | Structured task management via mind_life |
| Contacts | Not supported | Full CRM via mind_crm |
You can also import the server directly in your own Node.js application:
import { createMindMcpServer, MindClient } from "@astramindapp/mcp-server";
const client = new MindClient({
baseUrl: "https://m-i-n-d.ai",
apiKey: process.env.MIND_API_KEY,
});
const server = createMindMcpServer(client);
// Connect to any MCP transport (stdio, SSE, etc.)
A one-line install that teaches Claude Code exactly when and how to use the MIND MCP tools — session-start protocol, decision protocol, storage protocol, anti-patterns. After installing, Claude Code automatically loads context at session start, queries MIND before decisions, and logs outcomes at session end.
curl -fsSL https://m-i-n-d.ai/developer/mind-skill/install.sh | bash
Installs to ~/.claude/skills/mind/SKILL.md. Requires the MCP server and a MIND API key (see above).