mdstn-kb-mcp

module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2025 License: MIT

README ΒΆ

kbVault - Knowledge Base Vault CLI

A high-performance, production-ready Go knowledge management system with multiple storage backends, full-text search, and powerful CLI interface. Designed for managing markdown-based knowledge vaults at scale.

What is kbVault?

kbVault is a command-line tool for managing your knowledge base. Store notes in markdown, organize them with tags and links, search across your entire vault, and access your knowledge from anywhereβ€”all with zero external dependencies for core functionality.

Perfect for:

  • Personal knowledge management systems
  • Team documentation
  • Research note-taking
  • Project-specific vaults
  • Multiple concurrent knowledge bases with profiles

Key Features

  • πŸ“ Simple Note Management - Create, edit, delete, and organize notes with ease
  • πŸ” Full-Text Search - Fast search across all your notes
  • πŸ”— Bidirectional Links - Connect related notes automatically
  • πŸ“¦ Storage Flexibility - Local filesystem or S3-compatible storage
  • πŸ‘₯ Multi-Profile Support - Manage multiple vaults with different configurations
  • βš™οΈ Zero Configuration - Works out-of-the-box with sensible defaults
  • πŸš€ High Performance - Optimized for vaults with thousands of notes
  • 🐚 Shell Completions - Tab completion for bash, zsh, and fish

Quick Start

Installation

macOS & Linux (Homebrew):

brew tap madstone-tech/tap
brew install kbvault

Using Go:

go install github.com/madstone-tech/mdstn-kb-mcp/cmd/kbvault@latest

From Binary: Download from GitHub Releases

Your First Vault
# Initialize a vault
kbvault init ~/my-vault

# Create your first note
kbvault new "Welcome to kbVault"

# List your notes
kbvault list

# Search notes
kbvault search "welcome"

See Getting Started Guide for detailed setup.

Usage Examples

# Create a note
kbvault new "Python Tips"

# Search your vault
kbvault search "async programming"

# List notes with filtering
kbvault list --tag python

# Edit a note
kbvault edit "Python Tips"

# Manage multiple vaults
kbvault --profile work new "Team Meeting"
kbvault --profile personal new "Personal Goal"

# View CLI help
kbvault --help

See CLI Reference for all commands.

Documentation

For Users
For Developers
Project Information

Project Structure

kbvault/
β”œβ”€β”€ cmd/kbvault/              # CLI application
β”‚   β”œβ”€β”€ main.go               # Entry point
β”‚   β”œβ”€β”€ new.go, show.go, ...  # Commands
β”‚   └── *_test.go             # Tests
β”‚
β”œβ”€β”€ pkg/                       # Public packages
β”‚   β”œβ”€β”€ config/               # Configuration & profiles
β”‚   β”œβ”€β”€ storage/              # Storage backends
β”‚   β”‚   β”œβ”€β”€ local/            # Filesystem storage
β”‚   β”‚   └── s3/               # S3-compatible storage
β”‚   β”œβ”€β”€ types/                # Core types
β”‚   β”œβ”€β”€ ulid/                 # ID generation
β”‚   β”œβ”€β”€ retry/                # Retry logic
β”‚   └── vector/               # Vector DB (planned)
β”‚
β”œβ”€β”€ internal/                 # Private packages
β”‚   β”œβ”€β”€ links/                # Link management
β”‚   β”œβ”€β”€ search/               # Search engine
β”‚   β”œβ”€β”€ templates/            # Note templates
β”‚   └── api/, mcp/, tui/      # Future interfaces
β”‚
β”œβ”€β”€ docs/                     # Documentation
β”‚   β”œβ”€β”€ guides/               # User guides
β”‚   β”œβ”€β”€ architecture/         # Architecture docs
β”‚   β”œβ”€β”€ development/          # Development docs
β”‚   └── README.md            # Docs index (MOC)
β”‚
β”œβ”€β”€ scripts/                  # Build & utility scripts
β”œβ”€β”€ completions/              # Shell completions
β”œβ”€β”€ configs/                  # Config templates
β”œβ”€β”€ test/                     # Test data
└── Makefile                  # Build automation

Supported Platforms

Platform Architecture Status
macOS Intel (amd64) βœ… Supported
macOS Apple Silicon (arm64) βœ… Supported
Linux x86_64 (amd64) βœ… Supported
Linux ARM (arm64) βœ… Supported
Windows x86_64 πŸ“‹ Planned

Storage Options

Local Storage (Default)

Store notes in your local filesystem as TOML files. Perfect for personal vaults and development.

[storage]
type = "local"
path = "./notes"
S3-Compatible Storage

Store notes in AWS S3 or any S3-compatible service (MinIO, DigitalOcean Spaces, etc.). Ideal for team vaults and cloud backups.

[storage]
type = "s3"
bucket = "my-kb"
region = "us-east-1"

See Configuration Guide for setup details.

Development

Quick Build
# Build binary
make build

# Run tests
make test

# Format code
make fmt

# Full checks
make check
Requirements
  • Go 1.25 or later
  • Make
  • golangci-lint (for linting)

See Building & Testing Guide for detailed setup.

Testing

# Run full test suite
go test ./...

# With coverage
go test -cover ./...

# With race detector
go test -race ./...

# Specific package
go test -v ./pkg/config

Coverage: 62.8% | Target: 70%+

Performance

kbVault is optimized for performance:

  • ⚑ Fast Search: Indexed full-text search for sub-second results
  • πŸ’Ύ Minimal Memory: Efficient indexing and caching
  • πŸš€ Scalable: Supports vaults with thousands of notes
  • πŸ”„ Incremental Updates: Only updated notes are re-indexed

Benchmark results available in test output.

Configuration

kbVault uses TOML configuration. Profiles allow you to manage multiple vaults:

# Create profiles
kbvault profile create work --storage-path ~/work-vault
kbvault profile create personal --storage-path ~/personal-vault

# Use specific profile
kbvault --profile work list
kbvault --profile personal new "Personal Note"

# Set default profile
kbvault profile set-active work

See Profiles Guide and Configuration Guide.

Feature Status

Fully Implemented (v1.0.0+)
  • βœ… Note management (CRUD operations)
  • βœ… Full-text search with inverted indexing
  • βœ… Local & S3-compatible storage
  • βœ… Multi-profile support for multiple vaults
  • βœ… Bidirectional link detection and management
  • βœ… Shell completions (bash, zsh, fish)
  • βœ… TOML-based configuration system
  • βœ… Template system for note creation
In Progress / Partial
  • 🟑 MCP Protocol - Basic structure in place, not fully functional
  • 🟑 HTTP Server - Configuration exists, API endpoints not yet implemented
Planned (v1.1.0+)
  • πŸ“‹ Vector-based semantic search
  • πŸ“‹ HTTP REST API endpoints
  • πŸ“‹ Terminal UI (TUI)
  • πŸ“‹ gRPC API
  • πŸ“‹ Windows support

See Implementation Plan for details.

Contributing

Contributions are welcome! See CONTRIBUTING.md for:

  • Development setup
  • Code style guidelines
  • Testing requirements
  • Pull request process

License

MIT License - See LICENSE for details.

Support

Acknowledgments

Built with Go and inspired by modern knowledge management systems. Special thanks to all contributors and users.


πŸ“š Documentation | πŸš€ Quick Start | πŸ’» CLI Reference | πŸ”§ API Docs

Directories ΒΆ

Path Synopsis
cmd
kbvault command
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL