Files
CodingInCarhartts 6ad6748e6e feat: add session memory tools with semantic search and logging
Adds comprehensive session memory management with the following tools:
- start_logging_session: Begin logging a session with optional name
- log_message: Log user/agent messages to active sessions
- search_session: Semantic search within a specific session
- search_all_sessions: Semantic search across all logged sessions
- list_sessions: List all sessions with optional active filter
- get_session: Get session details and messages
- end_session: End session with optional summary
Database schema includes:
- sessions table with name, timestamps, summary, and active status
- session_messages table with role, content, and creation time
- Proper indexes for performance
- Foreign key relationships
All tools support semantic search using the existing embedding model.
2025-12-14 22:19:18 -08:00

5.2 KiB

🧠 opencode-personal-knowledge

A personal knowledge MCP server with vector database for the Opencode ecosystem

npm version License: MIT Opencode Compatible


Store and retrieve knowledge using semantic search, powered by local embeddings. No external API keys required.

Features

  • 🔍 Semantic Search — Find knowledge using vector embeddings (BGE-small-en-v1.5)
  • 📝 Text Search — Keyword-based search fallback
  • 🏷️ Tag Organization — Categorize entries with tags
  • 🔌 Plug-and-Play — No external services required (embeddings run 100% locally)
  • 💾 Persistent Storage — Data stored in ~/.local/share/opencode-personal-knowledge/
  • 🔄 Automatic Indexing — Entries are vectorized on creation

🚀 Quick Start

Add to ~/.config/opencode/opencode.jsonc:

{
  "mcp": {
    "personal-knowledge": {
      "type": "local",
      "command": ["bunx", "opencode-personal-knowledge"],
      "enabled": true
    }
  }
}

Restart Opencode — the MCP tools will be available immediately.

Source Installation (Development)

git clone https://github.com/NocturnLabs/opencode-personal-knowledge.git
cd opencode-personal-knowledge
bun install
bun run mcp  # Start MCP server

🛠️ MCP Tools

Knowledge Tools

Tool Description
store_knowledge Store a new knowledge entry with optional tags
search_knowledge Semantic similarity search
search_knowledge_text Keyword-based text search
get_knowledge Retrieve entry by ID
update_knowledge Update an existing entry
delete_knowledge Delete an entry
list_knowledge List entries with filters
get_knowledge_stats Database statistics

Session Memory Tools

Log and search across entire OpenCode sessions.

Tool Description
start_logging_session Begin logging a session
log_message Log a user/agent message to the session
search_session Semantic search within a session
search_all_sessions Search across ALL logged sessions
list_sessions List all sessions
get_session Get session details and messages
end_session End session with optional summary

📖 Example Usage

Storing Knowledge

User: "store a knowledge entry about Opencode Features"

Agent: Researches and stores entry:

✅ Stored knowledge entry #2: "Opencode Features"
📊 Indexed for semantic search

Searching Knowledge

User: "@search_knowledge for opencode"

Agent: Returns semantic matches:

Found 1 similar entry:

### 1. Opencode Features (85% similar)
Opencode is an open source AI coding agent...

Session Memory

User: "Start logging this session, call it 'auth debugging'"

Agent: Starts session and logs all exchanges:

✅ Started session #1: "auth debugging"

User: "Search this session for JWT"

Agent: Returns semantic matches from the session:

Found 2 matches in session #1:

### 1. [user] (92% match)
The JWT token expires too fast...

### 2. [agent] (88% match)
The TTL is set to 60 instead of 3600...

⚙️ Configuration

Data Location

By default, data is stored in:

~/.local/share/opencode-personal-knowledge/
├── knowledge.db      # SQLite database
└── vectors/          # LanceDB vector store

Override with environment variable:

export OPENCODE_PK_DATA_DIR=/custom/path

Embedding Model

Uses BGE-small-en-v1.5 via FastEmbed (auto-downloads on first use).

🏗️ Technology Stack

📄 License

MIT © NocturnLabs


Made with 🖤 for the Opencode ecosystem