Teach any LLM about you, once. Ownsona is a personal-memory server that turns one knowledge base into a shared brain across ChatGPT, Claude, Gemini, Grok, and any other MCP-capable assistant.
The main home for this code is https://github.com/blakemcbride/Ownsona.
Today, teaching an LLM about your work, your family, your projects, or your preferences is a per-provider chore. You explain who you are to ChatGPT, then again to Claude, then again to Gemini — and each one forgets between conversations. Switch providers, switch models, upgrade to the next release, and the knowledge starts over from zero.
Ownsona (your OWN perSONA) breaks that cycle. It is a single durable memory store that
every MCP-capable assistant connects to. Tell ChatGPT once that
your dog's name is Mochi, that you prefer concise answers, that the
quarterly forecast lives in ~/work/q3/, or that you're a Go developer
new to React — and the next session in Claude or Gemini already knows.
A fact written by one model is recallable by the next. Your context
follows you across providers, across models, across years.
Under the hood, memories are stored in PostgreSQL with pgvector and
served through the Model Context Protocol,
the open standard for letting LLMs call external tools. Any
MCP-capable client can be pointed at it.
| Tool | Purpose |
|---|---|
remember |
Store a fact, with optional tags and importance score |
remember_batch |
Bulk import (up to 200 items) in a single embedding round-trip |
recall |
Vector-similarity search by natural-language query |
build_context_prompt |
Pack relevant memories into a prompt envelope |
list_memories |
Paginated listing for review/audit |
update_memory |
Edit text + re-embed |
forget |
Soft delete (default) or hard delete |
text_search |
Trigram text match for known phrases |
Every tool requires a bearer token; secret-shaped inputs (API keys, JWTs, PEM private-key markers, etc.) are rejected before they hit the database.
| Doc | What's inside |
|---|---|
MCPServer.md |
Architecture, configuration keys, tool surface, security, deploy & ops |
INSTALL.md |
Linux VPS install: PostgreSQL, Tomcat, systemd, HTTPS, application.ini |
OpenAI.md |
Wiring Ownsona into ChatGPT and the OpenAI Responses API |
OWNSONA_SPEC.md |
Functional spec, schema, security model |
Prerequisites: Java 17+, PostgreSQL 16 with pgvector, an OpenAI API
key, a Linux host with Tomcat 11.
# 1. Database: role + extensions + schema migration
sql/setup_db.sh "<postgres-password>"
# 2. Configuration: copy the template and populate secrets/endpoints.
# application.ini is gitignored; only the .example template ships in the repo.
cp src/main/backend/application.ini.example src/main/backend/application.ini
$EDITOR src/main/backend/application.ini
# 3. Build + deploy the WAR
./bld -v build && ./bld war
cp work/Kiss.war /home/ownsona/tomcat/webapps/ROOT.war
# 4. Smoke-test the live endpoint
OWNSONA_API_TOKEN=... sql/smoke_test.sh https://<your-host>/mcpSee INSTALL.md for the complete walkthrough including
HTTPS certificates, the ownsona.service systemd unit, and daily
backups.
Ownsona is built on the open-source
Kiss web development framework — a Java-based
full-stack framework that provides the servlet container, the
MCPServerBase JSON-RPC base class this server extends, the c3p0
connection pool, the bld build system, and the application.ini
configuration loader.
Documentation for Kiss itself (manual, JSDoc, JavaDoc, training videos) lives at kissweb.org. Source: https://github.com/blakemcbride/Kiss.
Distributed under the BSD 2-Clause License — see LICENSE.txt
for the full text. Copyright © 2018 Blake McBride.
See CONTRIBUTING.md. Pull requests welcome.