关于 Vector DB MCP
输入中的 README 介绍的是 Plojure,一个用于 Lisp、Python 和 x86_64 汇编实验的项目,并非 Vector DB MCP。它包含 macOS 上的 FASM 示例、共享库构建路径和小型 Lisp 解释器。
主要功能
- 01Lisp、Python 和汇编实验
- 02macOS 上的 FASM 示例
- 03构建 macOS 动态库示例
- 04包含小型 Lisp 解释器
适用场景
- 01运行汇编示例并查看输出
- 02在 macOS 上构建共享库示例
- 03运行 Lisp 程序
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/kroq86/vector-db-mcp:0.1.1本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/kroq86/vector-db-mcp:0.1.1stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Plojure
Plojure 是用于进行 Lisp、Python 和 x86_64 汇编实验的 playground。当前的 hybrid 分支还包含一条用于移植 FASM 示例的 macOS 路径。
macOS 上的目标工作流刻意保持简单:
fasm fasm/basic/fib.asm
./fasm/basic/fib
关键路径中没有 Docker 命令,也不会出现 exec format error,更不会让 Linux ELF 二进制伪装成 macOS 程序。
macOS FASM 设置
从 kroq86/fasm-mac 安装配套的 fasm shim:
git clone https://github.com/kroq86/fasm-mac
cd fasm-mac
./install.sh
export PATH="$HOME/.local/bin:$PATH"
安装的命令名为 fasm。
在 Apple Silicon 上,它会生成 x86_64 Mach-O 二进制,因此需要 Rosetta:
arch -x86_64 /usr/bin/true
如果失败:
softwareupdate --install-rosetta
独立示例
这些示例现在使用 fasm/core/platform.inc,而不再使用硬编码的 Linux 系统调用编号:
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
预期行为:
fib.asm输出斐波那契数值。arg.asm输出作为 argv[1] 传入的文件。mycat.asm输出fasm/basic/lol.txt。bin_s.asm输出找到的索引。
共享库示例
现在,简单的 C/Python 原生库示例可以在 macOS 上构建 .dylib 文件:
cd fasm/advanced/add
./run.sh
cd ../binary_search/wrapper
./run.sh
cd ../../oop_game
./build.sh
构建路径为:
fasm --emit=macho-obj add.asm add.o
clang -arch x86_64 -dynamiclib wrapper.c add.o -o mylib.dylib
在 Apple Silicon 上,Python ctypes 需要使用 x86_64/Rosetta Python 才能加载这些库。默认的 Homebrew Python 通常是 arm64,无法加载 x86_64 .dylib。
Vector DB
projects/vector-db 现在会在 Darwin 上查找 .dylib,在 Linux 上查找 .so。macOS 构建路径为:
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
如果无法加载原生库,Python 代码会在可用时沿用现有的回退行为。
尚未完成的事项
- fasm classic 本身仍没有上游风格的
format Mach-O格式化器。 - 此移植不包含原生 arm64 汇编输出。
- Mach-O 对象转换器目前不支持 ELF 重定位。
- 协程有意留待后续处理,因为它们会手动切换栈,并跨越 Python 回调边界。
- 在 Apple Silicon 上,如果 Python 示例要加载 x86_64
.dylib文件,就需要使用 x86_64 Python 运行时。
原始 Lisp 解释器
仓库还包含一个小型 Lisp 解释器:
python projects/lisp-interpreter/main.py projects/lisp-interpreter/program.lisp
它支持递归函数、lambda 表达式、算术运算、条件语句和函数调用。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。