About Vector DB MCP
The README describes Plojure, a project for Lisp, Python, and x86_64 assembly experiments, rather than Vector DB MCP. It includes FASM examples for macOS, shared-library build paths, and a small Lisp interpreter.
Key features
- 01Lisp, Python, and assembly experiments
- 02FASM examples for macOS
- 03Build paths for macOS shared libraries
- 04Includes a small Lisp interpreter
Use cases
- 01Run assembly examples and inspect their output
- 02Build shared-library examples on macOS
- 03Run Lisp programs
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
docker run -i --rm ghcr.io/kroq86/vector-db-mcp:0.1.1Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
ghcr.io/kroq86/vector-db-mcp:0.1.1stdioTools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEPlojure
Plojure is a playground for Lisp, Python, and x86_64 assembly experiments. The
current hybrid branch also contains a macOS porting path for the FASM
examples.
The target workflow on macOS is intentionally boring:
fasm fasm/basic/fib.asm
./fasm/basic/fib
No Docker command in the hot path, no exec format error, no Linux ELF binary
pretending to be a macOS program.
macOS FASM Setup
Install the companion fasm shim from kroq86/fasm-mac:
git clone https://github.com/kroq86/fasm-mac
cd fasm-mac
./install.sh
export PATH="$HOME/.local/bin:$PATH"
The installed command is named fasm.
On Apple Silicon it produces x86_64 Mach-O binaries, so Rosetta is required:
arch -x86_64 /usr/bin/true
If that fails:
softwareupdate --install-rosetta
Standalone Examples
These examples now use fasm/core/platform.inc instead of hardcoded Linux
syscall numbers:
fasm fasm/basic/fib.asm
./fasm/basic/fib
fasm fasm/basic/arg.asm
./fasm/basic/arg fasm/basic/lol.txt
cd fasm/basic
fasm mycat.asm
./mycat
cd ../advanced/binary_search
fasm bin_s.asm
./bin_s
Expected behavior:
fib.asmprints Fibonacci values.arg.asmprints the file passed as argv[1].mycat.asmprintsfasm/basic/lol.txt.bin_s.asmprints the found index.
Shared Library Examples
Simple C/Python native-library examples can now build .dylib files on macOS:
cd fasm/advanced/add
./run.sh
cd ../binary_search/wrapper
./run.sh
cd ../../oop_game
./build.sh
The build path is:
fasm --emit=macho-obj add.asm add.o
clang -arch x86_64 -dynamiclib wrapper.c add.o -o mylib.dylib
On Apple Silicon, Python ctypes needs an x86_64/Rosetta Python to load these
libraries. The default Homebrew Python is usually arm64 and cannot load an
x86_64 .dylib.
Vector DB
projects/vector-db now looks for .dylib on Darwin and .so on Linux. The
macOS build path is:
cd projects/vector-db
fasm --emit=macho-obj assembly/dot_product.asm dot_product.o
clang -arch x86_64 -dynamiclib dot_product.o assembly/wrapper.c -o dot_product.dylib
If the native library cannot be loaded, the Python code keeps the existing fallback behavior where available.
What Still Is Not Done
- fasm classic itself still has no upstream-style
format Mach-Oformatter. - Native arm64 assembly output is not part of this port.
- The Mach-O object converter rejects ELF relocations for now.
- Coroutines are intentionally left for a later pass because they switch stacks manually and cross Python callback boundaries.
- Python examples on Apple Silicon need an x86_64 Python runtime if they load
x86_64
.dylibfiles.
Original Lisp Interpreter
The repository also contains a small Lisp interpreter:
python projects/lisp-interpreter/main.py projects/lisp-interpreter/program.lisp
It supports recursive functions, lambda expressions, arithmetic, conditionals, and function calls.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.