Kernal Mcp

io.github.pintomaticPublished by GitHub account pintomaticv0.2.1Updated Oct 24, 2026

Graph-native memory for AI agents: a knowledge graph built from conversation, via MCP.

Overview

AI-generated overview

A local, open-source knowledge graph that lets an assistant turn conversations about meetings and contacts into stored people, organizations, activities, topics

What you can do
Store raw notes and extract entities from them, with deduplication on write for people and organizations, activities, follow-ups and relationships between entities. Search and list contacts, organizations, activities and open action items by name, organization, role, type, owner or due date. Retrieve a full briefing on a person or organization covering timeline, network and topics. Correct records: update fields, delete entities, merge duplicates or reset the database. Run local CLI commands to initialize, serve, check status and export the database.
When to use it
Useful for professionals who want a private, self-hosted record of meetings, calls and contacts that an assistant can build up from natural conversation and query later for briefings, follow-ups and relationship questions.
Requirements
Runs as a local stdio process via npx from the npm package kernal-mcp; Node.js is needed. Initialize first to create a SQLite database at ~/.kernal/kernal.db and add the printed config to the desktop client. The optional cloud server and dashboard need KERNAL_API_KEY and KERNAL_DB_PATH, plus KERNAL_CORS_ORIGIN, KERNAL_RATE_LIMIT and PORT if changed.
Before you install
The tools write to and can delete from your local database, and kernal_correct can merge duplicates or reset the whole database, so back up or export before destructive changes. Stored notes contain personal and business contact details; keep the database and any exported files private. The optional cloud server exposes the data over HTTP and requires KERNAL_API_KEY, so set a strong key and restrict KERNAL_CORS_ORIGIN.

Installation

In SourceWeft

  1. Open Kernal Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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
  • CLI — init, 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.

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

bash
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:

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)

ToolDescription
kernal_rememberStore raw text, get extraction instructions and existing entity list for dedup
kernal_add_personCreate or update a person (auto-deduplicates by fuzzy name match)
kernal_add_orgCreate or update an organization (auto-deduplicates)
kernal_add_activityLog an interaction with participant and org linking
kernal_add_actionCreate a follow-up or task, optionally assigned to a person
kernal_linkCreate a relationship between any two entities (person, org, or topic)

Query (read)

ToolDescription
kernal_recallSearch the knowledge base by keyword across all entity types
kernal_peopleList/search contacts — filter by name, org, role
kernal_orgsList/search organizations — filter by type, industry
kernal_activitiesRecent interactions — filter by type, person, date
kernal_actionsOpen follow-ups — filter by status, owner, due date
kernal_contextFull briefing on a person or org — timeline, network, topics

Corrections

ToolDescription
kernal_correctUpdate 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 configkernal serve     Start MCP server (stdio transport)kernal status    Show database statskernal export    Export database to a filekernal 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).

bash
# Start the cloud API serverKERNAL_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

bash
git clone https://github.com/pintomatic/kernal.gitcd kernalnpm installnpm run buildnpm test        # 50 tests

Self-Hosting the Cloud Server

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

A Dockerfile is included. Environment variables:

VariableDefaultDescription
KERNAL_DB_PATH~/.kernal/kernal.dbSQLite database path
KERNAL_API_KEY(required for cloud)API key for authentication
KERNAL_CORS_ORIGINhttp://localhost:5174Allowed CORS origins (comma-separated)
KERNAL_RATE_LIMIT120Max requests per minute per IP
PORT3001Server port

Seed Demo Data

bash
npx tsx scripts/seed-demo.ts

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

License

MIT

Source: README.md at commit 5884f5b

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts