Skip to main content
Glama

Kernal

Open-source knowledge graph for professionals. Auto-extracts entities and relationships from natural conversation via MCP.

Talk to Claude naturally about your meetings, calls, and interactions. Kernal stores people, organizations, topics, and relationships — building a knowledge graph you own.

What's Included (Open Source)

Everything you need to run Kernal locally on your own machine:

  • 13 MCP tools — ingestion, CRUD, query, corrections (see full list below)

  • SQLite database — local-first, your data never leaves your machine

  • LLM-driven extraction — Claude reads your text, decides what to extract, and calls structured write tools

  • Entity resolution — fuzzy matching + Levenshtein distance prevents duplicates

  • CLIinit, serve, status, export

  • Cloud server — Express.js with API key auth, rate limiting, CORS, session management

  • Dashboard — React app with network graph, timeline, action items, overview

  • 50 tests — comprehensive test suite

This is a fully functional knowledge graph you can run yourself, for free, forever.

Related MCP server: Beever Atlas

What Andes Provides (Managed Service)

For teams and professionals who want more, Andes offers:

  • Cloud hosting — access your knowledge graph from any device, no self-hosting

  • Dashboard — hosted interactive visualizations powered by your data

  • Multi-user — team features, shared knowledge bases, role-based access

  • Onboarding & support — we set it up for you and help your team get value from day one

  • Industry workflows — pre-built patterns for executive search, consulting, professional services

The open-source core is the engine. Andes wraps it with infrastructure, UX, and support.


Quick Start

npx kernal-mcp init

This creates a SQLite database at ~/.kernal/kernal.db and prints the config to add to Claude Desktop.

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "kernal": {
      "command": "npx",
      "args": ["-y", "kernal-mcp", "serve"]
    }
  }
}

Restart Claude Desktop. Then talk naturally:

"I had lunch with Jonas Lindberg from Nordvik Energy today. He's their VP of Digital. We discussed their cloud migration — targeting Q3."

Claude extracts Jonas, Nordvik Energy, the cloud migration topic, and stores them via Kernal's write tools. Then ask:

  • "What do I know about Nordvik Energy?" → Full briefing with people, interactions, topics

  • "Who should I follow up with?" → Open action items with owners and due dates

  • "Show me everyone at Nordvik Energy" → Contact list filtered by organization

How It Works

Kernal uses an LLM-driven extraction pattern:

  1. You tell Claude about a meeting, call, or interaction

  2. Claude calls kernal_remember with the raw text

  3. Kernal stores the text as a note and returns extraction instructions + existing entities (for dedup)

  4. Claude reads the text intelligently and calls structured write tools (kernal_add_person, kernal_add_org, kernal_add_activity, etc.)

  5. Each write goes through entity resolution to prevent duplicates

  6. The LLM makes all extraction decisions — no regex guessing

The MCP server is a clean data store. The LLM is the brain.

MCP Tools

Ingestion (write)

Tool

Description

kernal_remember

Store raw text, get extraction instructions and existing entity list for dedup

kernal_add_person

Create or update a person (auto-deduplicates by fuzzy name match)

kernal_add_org

Create or update an organization (auto-deduplicates)

kernal_add_activity

Log an interaction with participant and org linking

kernal_add_action

Create a follow-up or task, optionally assigned to a person

kernal_link

Create a relationship between any two entities (person, org, or topic)

Query (read)

Tool

Description

kernal_recall

Search the knowledge base by keyword across all entity types

kernal_people

List/search contacts — filter by name, org, role

kernal_orgs

List/search organizations — filter by type, industry

kernal_activities

Recent interactions — filter by type, person, date

kernal_actions

Open follow-ups — filter by status, owner, due date

kernal_context

Full briefing on a person or org — timeline, network, topics

Corrections

Tool

Description

kernal_correct

Update fields, delete entities, merge duplicates, or reset the database

What Gets Stored

From a single paragraph like "Had coffee with Sofia Andersen from Arctura Tech. She's their VP of Sales. We discussed their expansion into APAC. I need to send her the partner proposal by Friday.", Claude will call:

  • kernal_add_person — Sofia Andersen, VP of Sales, at Arctura Tech

  • kernal_add_org — Arctura Tech

  • kernal_add_activity — Coffee meeting, today, participants: [Sofia Andersen], orgs: [Arctura Tech]

  • kernal_add_action — "Send partner proposal to Sofia", due Friday, owner: Sofia Andersen

  • kernal_link — Sofia → works_at → Arctura Tech

Each call is a deliberate, structured decision by the LLM — not a regex guess.

CLI Commands

kernal init      Create database + print Claude Desktop config
kernal serve     Start MCP server (stdio transport)
kernal status    Show database stats
kernal export    Export database to a file
kernal help      Show help

Dashboard

The repo includes a React dashboard (dashboard/) with four views:

  • Overview — entity counts, most connected people, activity breakdown

  • Network — interactive force-directed graph (people + organizations)

  • Timeline — chronological activity feed with participants and summaries

  • Actions — follow-ups grouped by urgency (overdue, this week, upcoming)

Natural language command bar routes queries to views ("Show me my network" → graph).

# Start the cloud API server
KERNAL_API_KEY=your-key KERNAL_DB_PATH=~/.kernal/kernal.db npm run cloud

# Start the dashboard (separate terminal)
cd dashboard && npm run dev

Data Model

Kernal stores 6 entity types connected by a generic relationship graph:

People ←→ Organizations
  ↕           ↕
Activities ←→ Topics
  ↕
Actions ←→ Notes

All entities can link to any other entity via the relationships table, enabling queries like:

  • "Who has Sofia met with?" (person → activities → other people)

  • "What topics come up with Nordvik Energy?" (org → people → activities → topics)

  • "What's the connection between Jonas and Arctura Tech?" (path through graph)

Security

  • All SQL queries use parameterized statements (no injection risk)

  • API key auth with constant-time comparison (crypto.timingSafeEqual)

  • CORS restricted to configured origins

  • Rate limiting (120 req/min per IP, configurable)

  • MCP session timeout (30 min idle eviction)

  • No secrets in code — all config via environment variables

  • React dashboard auto-escapes all rendered data (no XSS)

Development

git clone https://github.com/pintomatic/kernal.git
cd kernal
npm install
npm run build
npm test        # 50 tests

Self-Hosting the Cloud Server

KERNAL_API_KEY=your-secret KERNAL_DB_PATH=~/.kernal/kernal.db npm run cloud

A Dockerfile is included. Environment variables:

Variable

Default

Description

KERNAL_DB_PATH

~/.kernal/kernal.db

SQLite database path

KERNAL_API_KEY

(required for cloud)

API key for authentication

KERNAL_CORS_ORIGIN

http://localhost:5174

Allowed CORS origins (comma-separated)

KERNAL_RATE_LIMIT

120

Max requests per minute per IP

PORT

3001

Server port

Seed Demo Data

npx tsx scripts/seed-demo.ts

Creates 12 contacts, 18 orgs, 19 activities with 123 relationships — a realistic professional services scenario.

License

MIT

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.

  • User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.

  • Cross-AI personal memory. Save once in ChatGPT, recall in Claude, Mistral, Grok, or any MCP client.

View all MCP Connectors

Latest Blog Posts

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/pintomatic/kernal'

If you have feedback or need assistance with the MCP directory API, please join our Discord server