Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

AICortex

by IkarusMKversion 2.3.4i★ –iRuns on your computer
Registry nameio.github.IkarusMK/aicortex

Install

Overview

Description from the maker (original English)

Self-hosted brain for any LLM: memory, skills, encrypted vault, devices and scheduled jobs.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: Streamable HTTP
  • Category: Search & AI memory
  • You need to fill in: STORAGE_ENCRYPTION_KEY, OIDC_CLIENT_SECRET, JWT_SIGNING_KEY

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: STORAGE_ENCRYPTION_KEY, OIDC_CONFIG_URL, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, BASE_URL, JWT_SIGNING_KEY

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "aicortex": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "STORAGE_ENCRYPTION_KEY",
        "-e",
        "OIDC_CONFIG_URL",
        "-e",
        "OIDC_CLIENT_ID",
        "-e",
        "OIDC_CLIENT_SECRET",
        "-e",
        "BASE_URL",
        "-e",
        "JWT_SIGNING_KEY",
        "ghcr.io/ikarusmk/aicortex:v2.3.4"
      ],
      "env": {
        "STORAGE_ENCRYPTION_KEY": "your-value",
        "OIDC_CONFIG_URL": "your-value",
        "OIDC_CLIENT_ID": "your-value",
        "OIDC_CLIENT_SECRET": "your-value",
        "BASE_URL": "your-value",
        "JWT_SIGNING_KEY": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add aicortex --env STORAGE_ENCRYPTION_KEY=your-value --env OIDC_CONFIG_URL=your-value --env OIDC_CLIENT_ID=your-value --env OIDC_CLIENT_SECRET=your-value --env BASE_URL=your-value --env JWT_SIGNING_KEY=your-value -- docker run -i --rm -e STORAGE_ENCRYPTION_KEY -e OIDC_CONFIG_URL -e OIDC_CLIENT_ID -e OIDC_CLIENT_SECRET -e BASE_URL -e JWT_SIGNING_KEY ghcr.io/ikarusmk/aicortex:v2.3.4

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "aicortex": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "STORAGE_ENCRYPTION_KEY",
        "-e",
        "OIDC_CONFIG_URL",
        "-e",
        "OIDC_CLIENT_ID",
        "-e",
        "OIDC_CLIENT_SECRET",
        "-e",
        "BASE_URL",
        "-e",
        "JWT_SIGNING_KEY",
        "ghcr.io/ikarusmk/aicortex:v2.3.4"
      ],
      "env": {
        "STORAGE_ENCRYPTION_KEY": "your-value",
        "OIDC_CONFIG_URL": "your-value",
        "OIDC_CLIENT_ID": "your-value",
        "OIDC_CLIENT_SECRET": "your-value",
        "BASE_URL": "your-value",
        "JWT_SIGNING_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "aicortex": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "STORAGE_ENCRYPTION_KEY",
        "-e",
        "OIDC_CONFIG_URL",
        "-e",
        "OIDC_CLIENT_ID",
        "-e",
        "OIDC_CLIENT_SECRET",
        "-e",
        "BASE_URL",
        "-e",
        "JWT_SIGNING_KEY",
        "ghcr.io/ikarusmk/aicortex:v2.3.4"
      ],
      "env": {
        "STORAGE_ENCRYPTION_KEY": "your-value",
        "OIDC_CONFIG_URL": "your-value",
        "OIDC_CLIENT_ID": "your-value",
        "OIDC_CLIENT_SECRET": "your-value",
        "BASE_URL": "your-value",
        "JWT_SIGNING_KEY": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • STORAGE_ENCRYPTION_KEY secret required env
    Fernet key that encrypts the vault and the sign-in store (openssl rand -base64 32 | tr '+/' '-_')
  • OIDC_CONFIG_URL env
    Discovery URL of your own identity provider (sign-in for cloud LLM apps)
  • OIDC_CLIENT_ID env
    Client ID registered at your identity provider
  • OIDC_CLIENT_SECRET secret env
    Client secret registered at your identity provider
  • BASE_URL env
    Public HTTPS URL of this server, e.g. https://agent.example.com
  • JWT_SIGNING_KEY secret env
    Signs the server's own tokens (openssl rand -hex 32)

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account IkarusMK, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 7229 servers in this category
  • Published to the registry more recently than 98% of the other 7229 servers in this category
  • Basic checks equal to or better than 100% of the other 7229 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is AICortex safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: STORAGE_ENCRYPTION_KEY, OIDC_CLIENT_SECRET, JWT_SIGNING_KEY

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (2.3.4) reached the registry yesterday.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Docker on your computer.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Context7

by upstash

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

Computer or cloud★ 64,224MITUpdated 3 days ago
Install

Codebase Memory

by DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Runs on your computer★ 48,148MITUpdated 20 days ago
Install

Exa

by exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Runs in the cloud★ 5,213MITUpdated 44 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

A private, self-hosted brain for your LLM — on your own NAS.

In 30 seconds: AICortex is one container on your own hardware that every AI you use connects to.

  • It remembers who you are, how you work and what you're building — and hands that to Claude, ChatGPT or a local model at the start of every chat, on desktop and phone.
  • It reaches your stuff — services, devices, mail, calendars, files — with the secrets in an encrypted vault the model never sees.
  • It keeps your schedule: tell your AI *"tomorrow at 8: summarise yesterday's notes"*. AICortex stores the job and at 8 wakes your Claude (or asks ChatGPT, an API key or a local Ollama) to do it.

Try it in 5 minutes · Run it on your NAS · More screenshots · Connect your AI

AICortex is a self-hosted MCP server that turns your NAS into a personal LLM connector: a persistent "brain" your assistant loads at the start of every session. Any MCP-capable LLM — Claude, ChatGPT, or a fully local model — gains a durable identity and real reach into your own services and devices, while running inside your network. Non-MCP tools (n8n, LangChain, your own scripts) reach the *same* brain through a native REST API with scoped per-user keys — and humans get a built-in admin WebUI at /ui for the vault, skills, users and audit log.

The model stays in its provider's cloud (or runs locally). Your memory, skills and secrets stay on your NAS. The assistant talks to AICortex over an HTTPS connector; the server uses your local credentials internally and never hands them to the model. New capabilities are added as data — a skill, a service config, a secret — with no redeploy.

Highlights

🧠 A brain that travels with you

  • One short cortex_start call — who you are, how you work, and the current project's notes, open tasks and last session (a few hundred characters; cortex_catalog has the full list)
  • Self-learning, typed memory with a review queue, so it grows without polluting itself
  • A skill router — search your skills, load only what's needed, author new ones at runtime
  • Playbooks — multi-stage work where a person approves each stage's artifact (e.g. Anthropic's AI-native SDLC: intent.md → spec.md → plan.md …), bundled as a template — see docs/playbooks.md
  • The *same* brain across models, desktop and mobile — one account, one state

🔌 Real reach — every integration is just data

  • Email (SMTP send + IMAP read), calendars (CalDAV), HTTP services, MQTT & FTP/FTPS devices, WebDAV cloud, SSH/SFTP
  • IPP printing & eSCL scanning (straight into Paperless-ngx) on LAN multifunction devices
  • Event-driven: inbound webhooks (POST /hooks/ , secret/HMAC-verified) turn external events into inbox items; outbound webhooks notify
  • An MCP gateway to use other MCP servers' tools — register any integration with one call, no code, no redeploy

🌐 Beyond MCP — drive it over plain HTTP

  • A native REST API: every tool as POST /api/v1/tools/ with an auto-generated OpenAPI 3.1 spec — plug AICortex into n8n, LangChain, an OpenAI-compatible client or a shell script, no MCP client required
  • Per-user API keys: scoped (default-deny), hashed at rest, rate-limited, optional expiry — and a key runs the *same* per-user areas as an OIDC session, never admin by default

🖥 Built-in admin WebUI — no terminal needed

  • Every signed-in person manages their own notes, scheduled jobs and playbook runs (and approves playbook stages) at `/ui`; admins also get the vault (secret *names* only — values are write-only), skills, users & roles, services & devices editing and the audit log — language-switchable DE/EN
  • Same SSO as the connector (OIDC + PKCE against *your* IdP, e.g. Pocket ID), CSRF-guarded, fully self-contained (strict CSP, no CDNs, no build step) — served by the same container, no extra service
  • Every page takes the *same policy path* as the MCP tools, so the browser never gets more than the person's AI
  • See it in screenshots

👥 Team, autonomy & continuity

  • A presence-aware multi-agent board: live presence, capability-routed task *pull*, context-preserving handoff
  • Cross-LLM session handoff — resume exactly where another model or device left off
  • Cron-as-data scheduling with per-user act-as: a scheduled job runs confined to *its owner's* area, via a short-lived per-job token — never a standing god-token
  • Runners carry the jobs out — AICortex wakes your Claude (a Claude Code cloud task on your plan) with the due job, or asks your ChatGPT plan, an API key or a local Ollama; each person sets up their own in the WebUI and gives each job its runner, no extra container (how)

🔒 Secure & multi-tenant

  • Your own OIDC login and roles (admin / user / viewer) — one switch, AUTH_ENFORCE
  • **Per-user isolation *and* capability areas: private memory + vault per person, plus default-deny** service/skill allow-lists an admin assigns — so not everyone may use every tool
  • An encrypted secret vault, an SSRF egress guard, and capability checks that fail closed — end-to-end on your hardware, including a local model (Ollama)

How it works

LLM app — any MCP client (desktop / mobile)  ·  one or many agents

│ custom connector / MCP server (HTTPS, from the model's cloud) ▼ Reverse proxy (Zoraxy / Caddy / nginx / Traefik …) │ ▼ AICortex (this container, on your NAS) │ uses local files & secrets ▼ Memory · Skills · HTTP services · MQTT & FTP devices · WebDAV cloud · Workspace files · SSH/SFTP · SMTP + IMAP email · IPP printing · eSCL scanning · MCP gateway · Inbox/Tasks · Sessions · Cron · Secret vault (every outbound call passes the SSRF egress guard)

How AICortex differs

The "LLM brain" space has some great projects — AICortex deliberately sits in a different spot:

  • [GBrain](https://github.com/garrytan/gbrain) is a *memory engine* — markdown-first, Postgres/PGLite-backed, with a self-wiring knowledge graph and hybrid/vector search. Deep retrieval, one concern.
  • [CortexPrism](https://cortexprism.io/) is a full *agent operating system* — its own runtime, ~30 LLM providers, a plugin marketplace, sandboxed code execution and multi-user teams. Batteries included, heavyweight.
  • AICortex is a single, lightweight *MCP connector*: one container that gives any client a persistent brain — memory and skills, devices, sessions, secrets and scheduling — where new integrations are added as data, no redeploy. And unlike most brain projects it isn't MCP-only: the same tools are exposed over a native REST API with an auto-generated OpenAPI spec, so non-MCP clients (n8n, LangChain, a script) plug in too. No database, no graph, no marketplace; you bring your own client.

Rule of thumb: want a dedicated memory/graph engine → GBrain; want a batteries-included agent OS → CortexPrism; want a minimal self-hosted connector that plugs your existing LLM app into your own stuff → AICortex.

Try it in 5 minutes

Just want to look around? Run it on your own computer — no NAS, domain or login needed, only Docker:

echo "STORAGE_ENCRYPTION_KEY=$(openssl rand -base64 32 | tr '+/' '-_')" > aicortex.env

docker run -d --name aicortex -p 127.0.0.1:8787:8787 --env-file aicortex.env \ -e ALLOW_INSECURE=1 -v aicortex-data:/data ghcr.io/ikarusmk/aicortex:latest

  1. Open http://localhost:8787/ui — the WebUI, already signed in as admin.
  2. Connect an AI that runs on the same computer. Claude Code: claude mcp add --transport http aicortex http://localhost:8787/mcp, then ask it to call cortex_start. Other local clients: docs/clients.md. The Claude and ChatGPT apps connect from their provider's cloud, so they need the real setup.
  3. Tell it something about you, or *"tomorrow at 8: summarise yesterday's notes"* — it shows up under Notes and Scheduled jobs. A job runs once you add a runner with an API key (OpenRouter's free models work); waking Claude needs your own login, so that, too, is the real setup.

⚠️ No login in this mode. ALLOW_INSECURE=1 switches authentication off: whoever

reaches the port is admin. Keep the port on 127.0.0.1 as above, keep real secrets

out, and never run it like this on a server. For everyday use, follow the

Quick start with your own login.

Done looking? docker rm -f aicortex && docker volume rm aicortex-data && rm aicortex.env removes it with all its data.

Requirements

  • A NAS or server running Docker (Compose v2).
  • A reverse proxy serving the container over public HTTPS (cloud-hosted LLM clients connect from their provider's cloud, so the endpoint must be reachable from the internet; a purely local client can reach it on the LAN).
  • A domain/subdomain pointing at your proxy.
  • An MCP-capable client that supports custom connectors / MCP servers (Claude, ChatGPT, or any MCP client).

Quick start

🤖 Installing with an AI coding agent? Point it at

[INSTALL_FOR_AGENTS.md](INSTALL_FOR_AGENTS.md) — it walks the agent through the

whole install and verification, handing the human-only steps (DNS, proxy, OIDC) back

to you.

git clone git@github.com:IkarusMK/AICortex.git

cd AICortex cp .env.example .env # adjust PUID / PGID / HOST_PORT / TZ docker compose up -d --build

The MCP endpoint is served at http:// :8787/mcp.

Prebuilt image (no local build): a multi-arch image is published to GHCR by CI.

In docker-compose.yml, comment out build: ., uncomment

image: ghcr.io/ikarusmk/aicortex:latest, then docker compose pull && docker compose up -d.

Updating from 1.x: pull the new image and restart with the same data/ folder and

.env — there is no migration step. Connected apps stay signed in; memory, skills,

vault, services, tasks, sessions and API keys carry over. What changes is listed in

CHANGELOG.md.

Expose it & add the connector:

  1. Point a subdomain (e.g. agent.example.com) at your reverse proxy.
  2. Proxy that host to http:// :8787 over HTTPS — the upstream is plain HTTP, so do *not* enable "TLS to upstream". If your proxy geo

Only the beginning is shown; read the rest in the repo

Ask PopNx