Trapic Core
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Trapic CoreRecall context for my-app project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Trapic Core
Self-hosted long-term memory for AI coding assistants.
Your AI forgets everything between sessions. Trapic Core is an MCP server that fixes that — decisions, conventions, and discoveries are captured as structured traces, searched by tags and keywords, and recalled automatically at session start.
No vector database. No embeddings. No API costs.

Table of Contents
Related MCP server: Mono Memory MCP
Quick Start
git clone https://github.com/trapicAi/trapic-core.git
cd trapic-core
docker compose upServer runs at http://localhost:3000/mcp. Connect your AI tool:
{
"mcpServers": {
"trapic": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}Save as .mcp.json in your project root (Claude Code, Cursor, Windsurf) or add to claude_desktop_config.json (Claude Desktop).
How It Works
Traditional RAG embeds everything into vectors and hopes cosine similarity finds the right answer. Trapic takes a different approach — AI structures knowledge at write time, AI infers the right query at search time. The database in the middle stays simple.

Each knowledge trace:
type: decision | convention | fact | state | preference
content: "Chose CSS custom properties over Tailwind theme config"
context: "Tailwind doesn't support runtime theme switching"
tags: [topic:theming, topic:css, project:my-app, branch:main]
confidence: high | medium | lowTags with project: / branch: use AND logic (must all match). topic: tags use OR logic (any match counts). Combined with full-text search and recency scoring.
MCP Tools
Tool | Description |
| Create a knowledge trace |
| Search by tags, keywords, type, time range |
| Session briefing — load project context on startup |
| Update content, status, tags, or supersede a trace |
| Get full trace by ID |
| Health report — type distribution, stale ratio, trends |
| Scan for stale knowledge (type-specific half-lives) |
| Confirm or deprecate a stale trace |
| Bootstrap knowledge from git commit history |
trapic-create
Parameter | Type | Required | Description |
| string | Yes | The knowledge content (max 5000 chars) |
| string | No | Why — the causal explanation |
| string[] | No | Type + topic + project/branch tags |
|
| No | Default: |
trapic-search
Parameter | Type | Required | Description |
| string | No | Keyword search (max 500 chars) |
| string[] | No | Filter tags (project/branch = AND, topic = OR) |
|
| No | Default: |
| string[] | No | Filter by trace type |
| number | No | Only last N days |
| number | No | Max results (default: 10, max: 50) |
trapic-recall
Parameter | Type | Required | Description |
| string | Yes | What you're working on |
| string | No | Project name to scope |
| string[] | No | Additional filter tags |
| number | No | Max context clusters (default: 5, max: 10) |
trapic-update
Parameter | Type | Required | Description |
| UUID | Yes | Trace to update |
| string | No | New content |
| string | No | New context |
|
| No | New status |
| UUID | No | ID of replacing trace |
| string[] | No | New tags |
|
| No | New confidence |
trapic-get
Parameter | Type | Required | Description |
| UUID | Yes | Trace ID |
trapic-health
Parameter | Type | Required | Description |
| string | No | Project name to scope |
| string[] | No | Additional filter tags |
trapic-decay
Parameter | Type | Required | Description |
| string | No | Project name to scope |
| string[] | No | Additional filter tags |
| number | No | Decay score threshold (default: 0.3) |
| boolean | No | Preview only (default: |
trapic-review-stale
Parameter | Type | Required | Description |
| UUID | Yes | Stale trace ID |
|
| Yes | Confirm (reset decay) or deprecate |
| string | No | Reason for the action |
trapic-import-git
Parameter | Type | Required | Description |
| string | Yes | Git repository URL (HTTPS) |
| string | Yes | Project name |
| string | No | Branch (default: |
| number | No | Max commits (default: 100, max: 500) |
| string | No | After this date (YYYY-MM-DD) |
| boolean | No | Preview only (default: |
Database
Three backends, switchable via TRAPIC_DB_ADAPTER:
Backend | Best for | Scaling | Full-text search |
SQLite (default) | Local dev, single user | Single instance | FTS5 |
PostgreSQL | Production, teams | Horizontal (multiple replicas) | tsvector + GIN |
MariaDB | Production, teams | Horizontal (multiple replicas) | FULLTEXT index |
SQLite
Zero config. Data in ./data/trapic.db.
docker compose upPostgreSQL
cp .env.example .env # set PG_PASSWORD
docker compose -f docker-compose.postgres.yml upEnv Variable | Default | Description |
|
| Host |
|
| Port |
|
| User |
| — | Password |
|
| Database |
MariaDB
cp .env.example .env # set MARIADB_PASSWORD
docker compose -f docker-compose.mariadb.yml upEnv Variable | Default | Description |
|
| Host |
|
| Port |
|
| User |
| — | Password |
|
| Database |
Authentication
Open by default (localhost, no auth needed). Enable user management by setting an admin password:
TRAPIC_ADMIN_PASSWORD=my-secret docker compose upThen open http://localhost:3000/admin to create users and teams.
How auth works
State | Behavior |
No users, no admin password | Open mode — all requests accepted |
Admin password set, no users yet | Open mode — create users at |
Users exist in database | Bearer token required ( |
Users and API keys
Open Admin UI (
/admin)Create user — gets auto-generated API key (
sk-...)Configure MCP client with the key:
{
"mcpServers": {
"trapic": {
"type": "http",
"url": "http://localhost:3000/mcp",
"headers": {
"Authorization": "Bearer sk-a1b2c3d4..."
}
}
}
}API keys are stored as SHA-256 hashes. The plaintext key is shown only once at creation.
Teams
Users in the same team can see each other's traces.
Team: backend-team
├── alice (sees bob's traces)
└── bob (sees alice's traces)A user can belong to multiple teams.
Admin API
All endpoints require Authorization: Bearer <TRAPIC_ADMIN_PASSWORD>.
Method | Endpoint | Description |
|
| List users |
|
| Create user |
|
| Delete user |
|
| Regenerate API key |
|
| List teams |
|
| Create team |
|
| Delete team |
|
| List members |
|
| Add member |
|
| Remove member |
Deployment
Docker
Public image: ghcr.io/trapicAi/trapic-core:latest
# SQLite (default)
docker compose up
# PostgreSQL
docker compose -f docker-compose.postgres.yml up
# MariaDB
docker compose -f docker-compose.mariadb.yml upKubernetes
Manifests in k8s/.
SQLite (single replica):
kubectl apply -f k8s/namespace.yaml
kubectl apply -f k8s/pvc.yaml
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yamlMariaDB (scalable):
# Create secret first (copy from example, fill in passwords)
cp k8s/mariadb-secret.example.yaml k8s/mariadb-secret.yaml
kubectl apply -f k8s/namespace.yaml
kubectl apply -f k8s/mariadb-secret.yaml
kubectl apply -f k8s/mariadb.yaml
kubectl apply -f k8s/deployment-mariadb.yaml
kubectl apply -f k8s/service.yamlNode.js
npm install && npm run build && npm startConfiguration
Env Variable | Default | Description |
|
| Server port |
|
| Bind address ( |
|
|
|
|
| SQLite database path |
|
| Default user ID (open mode) |
| — | Enables Admin UI at |
Architecture

┌─────────────┐ ┌──────────────┐ ┌──────────────┐
│ AI Client │ ── MCP/HTTP ──► │ Trapic Core │ ── adapter ──► │ Database │
│ Claude Code │ POST /mcp │ MCP Server │ │ SQLite / PG │
│ Cursor, etc │ ◄── JSON ── │ │ │ / MariaDB │
└─────────────┘ └──────────────┘ └──────────────┘Protocol: Model Context Protocol (Streamable HTTP)
Search: Structured tags + full-text search, no embeddings
Decay: Type-specific half-lives (state: 30d, decision: 90d, convention: 180d, fact: 365d)
Security: API keys hashed (SHA-256), admin rate limiting, constant-time auth comparison
Cloud Version
Don't want to self-host? trapic.ai offers a managed version with OAuth login and team collaboration.
Use the Trapic Plugin for one-click setup.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/trapicAi/trapic-core'
If you have feedback or need assistance with the MCP directory API, please join our Discord server