神经元MCP
NeuronDB-PostgreSQL扩展的模型上下文协议服务器,用Go实现
使MCP兼容客户端能够访问NeuronDB矢量搜索、ML算法和RAG功能。
   ](https://github.com/neurondb/neurondb)  
概述
NeuronMCP通过stdio使用JSON-RPC 2.0实现模型上下文协议。它为MCP客户端提供了与NeuronDB交互的工具和资源,包括向量操作、ML模型训练和数据库模式管理。
关键能力
- MCP协议 --具有stdio、HTTP和SSE传输的完整JSON-RPC 2.0实现
- 650+工具 --向量操作、机器学习、RAG、PostgreSQL管理、调试、组合、工作流、插件。看 功能.md.
- 资源 --实时访问模式、模型、索引和系统统计数据
- 企业安全 -JWT、API密钥、OAuth2、速率限制和审核日志记录
- 高性能 --TTL缓存、连接池和优化的查询执行
- 可观测性 --Prometheus指标、结构化日志记录和健康检查
目录
Expand full table of contents
- 关键能力
______________________________________________________________________
文档
工具和Claude桌面
服务器在启动时注册所有可用的工具(650多种工具:vector、ML、RAG、PostgreSQL管理等)。没有环境变量来限制或过滤注册的工具。
克劳德桌面: 一些MCP客户端,包括Claude Desktop,可能会对它们显示或使用的工具数量施加限制。如果达到该限制,请使用不同的MCP客户端(例如随附的 neuron-mcp-client)或者在需要完整工具集的上下文中运行服务器。看 安装指南 用于Claude桌面配置。
示例配置(使用构建的二进制文件的路径,例如。 ./bin/neuron-mcp):
{
"mcpServers": {
"neurondb": {
"command": "/path/to/neuron-mcp",
"env": {
"NEURONDB_HOST": "localhost",
"NEURONDB_PORT": "5432",
"NEURONDB_DATABASE": "neurondb",
"NEURONDB_USER": "neurondb",
"NEURONDB_PASSWORD": "your_password"
}
}
}
}官方文件
https://www.neurondb.ai/docs/neuronmcp --工具参考、Claude Desktop设置和配置。
特性
Complete Feature List
| 特性 | 描述 | 计数 |
|---|---|---|
| MCP协议 | 具有stdio、HTTP和SSE传输的完整JSON-RPC 2.0实现 | 是 |
| 向量运算 | 矢量搜索(L2、余弦、内积)、嵌入生成、索引(HNSW、IVF)、量化 | 100+个工具 |
| ML工具 | ML管道:训练、预测、评估、AutoML、ONNX、时间序列(由NeuronDB支持;25+算法家族) | 是 |
| RAG运营 | 文档处理、上下文检索、使用多种重新排序方法生成响应 | 是 |
| PostgreSQL工具 | 完整的数据库控制:DDL、DML、DCL、用户/角色管理、备份/还原 | 100+工具 |
| 调试工具 | 调试工具调用、查询计划、监控连接和性能、跟踪请求 | 5+个工具 |
| 合成工具 | 工具链、并行执行、条件执行、重试逻辑 | 4+个工具 |
| 工作流工具 | 创建、执行、监控工作流 | 4+工具 |
| 插件工具 | 市场、热重载、版本控制、沙盒、测试、构建器 | 6+工具 |
| 数据集加载 | 从HuggingFace、URL、GitHub、S3、自动嵌入的本地文件加载 | 是 |
| 资源 | 架构、模型、索引、配置、workers、统计数据以及实时订阅 | 6+个资源 |
| 提示协议 | 完整提示/列表和提示/使用模板引擎获取 | 是 |
| 取样/完成 | 采样/创建支持流媒体的消息 | 是 |
| 进度跟踪 | 长时间运行的操作进度与进度/获取 | 是 |
| 批量操作 | 事务性批处理工具调用(tools/call_batch) | 是 |
| 工具发现 | 具有分类功能的搜索和筛选工具 | 是 |
| 中间件系统 | 请求验证、日志记录、超时、错误处理、身份验证、速率限制 | 是 |
| 安全 | JWT、API密钥、OAuth2、速率限制、请求验证、安全存储 | 是 |
| 演出 | TTL缓存、连接池、优化查询执行 | 是 |
| 企业功能 | Prometheus指标、webhooks、断路器、重试、健康检查 | 是 |
| 模块化架构 | 19个独立的包,具有清晰的关注点分离 | 是 |
有关与其他MCP服务器的详细比较,请参阅 docs/tool-resource-catalog.md 和那个 MCP协议规范.
建筑
系统架构
graph TB
subgraph CLIENT["MCP Clients"]
CLAUDE[Claude Desktop]
CUSTOM[Custom MCP Clients]
CLI[CLI Tools]
end
subgraph MCP["NeuronMCP Server"]
PROTOCOL[MCP Protocol Handler
JSON-RPC 2.0]
TOOLS[Tool Registry
650+ Tools]
RESOURCES[Resource Manager
Schema, Models, Indexes]
MIDDLEWARE[Middleware Pipeline
Auth, Logging, Rate Limit]
CACHE[TTL Cache
Idempotency]
end
subgraph CATEGORIES["Tool Categories"]
VEC[Vector Operations
50+ tools]
ML[ML Pipeline
25+ algorithm families]
RAG[RAG Operations
Document processing]
PG[PostgreSQL Tools
100+ DDL/DML/DCL
650+ total tools]
DATASET[Dataset Loading
HuggingFace, S3, GitHub]
end
subgraph DB["NeuronDB PostgreSQL"]
VECTOR[Vector Search
HNSW/IVF]
EMBED[Embeddings
Text/Image/Multimodal]
ML_FUNC[ML Functions
25+ algorithm families]
ADMIN[PostgreSQL Admin
Full DDL/DML/DCL]
end
CLAUDE -->|stdio| PROTOCOL
CUSTOM -->|stdio/HTTP/SSE| PROTOCOL
CLI -->|stdio| PROTOCOL
PROTOCOL --> MIDDLEWARE
MIDDLEWARE --> CACHE
CACHE --> TOOLS
CACHE --> RESOURCES
TOOLS --> VEC
TOOLS --> ML
TOOLS --> RAG
TOOLS --> PG
TOOLS --> DATASET
VEC --> VECTOR
ML --> ML_FUNC
RAG --> EMBED
PG --> ADMIN
DATASET --> VECTOR
style CLIENT fill:#e3f2fd
style MCP fill:#fff3e0
style CATEGORIES fill:#f3e5f5
style DB fill:#e8f5e9MCP协议流
sequenceDiagram
participant Client as MCP Client
participant Server as NeuronMCP Server
participant Tools as Tool Registry
participant DB as NeuronDB
Client->>Server: Initialize (JSON-RPC)
Server-->>Client: Server Capabilities
Client->>Server: tools/list
Server->>Tools: Get available tools
Tools-->>Server: Tool catalog
Server-->>Client: Tool list (650+ tools)
Client->>Server: tools/call {"name": "vector_search", ...}
Server->>Server: Validate & authenticate
Server->>Tools: Execute tool
Tools->>DB: Execute SQL query
DB-->>Tools: Query results
Tools-->>Server: Tool response
Server-->>Client: JSON-RPC response
Note over Client,DB: Streaming supported via SSE工具目录概述
graph LR
subgraph TOOLS["650+ Tools"]
VEC_TOOLS[Vector Operations
Search, Embeddings, Indexing]
ML_TOOLS[ML Pipeline
25+ algorithm families
Training, Prediction, Evaluation]
RAG_TOOLS[RAG Operations
Document Processing
Context Retrieval]
PG_TOOLS[PostgreSQL Tools
100+ tools
DDL, DML, DCL, Admin]
DATASET_TOOLS[Dataset Loading
HuggingFace, S3, GitHub
Auto-embedding]
end
style VEC_TOOLS fill:#ffebee
style ML_TOOLS fill:#e8f5e9
style RAG_TOOLS fill:#fff3e0
style PG_TOOLS fill:#e3f2fd
style DATASET_TOOLS fill:#f3e5f5使用 安装指南 克劳德桌面。如果您的客户端限制了工具的数量,请使用另一个MCP客户端,如附带的 neuron-mcp-client.快速开始
先决条件
Prerequisites Checklist
- \[\]已安装PostgreSQL 16或更高版本
- \[\]NeuronDB扩展已安装并启用
- \[\]转到1.23或更高版本(用于从源代码构建)
- \[\]MCP兼容客户端(例如,Claude Desktop)
- \[\]已配置API密钥(用于LLM模型,如果使用嵌入/RAG)
数据库设置
选项1:使用Docker Compose(建议快速入门)
如果你有PostgreSQL和NeuronDB(例如来自 神经元b repo Docker设置):
# Create extension if not already created
psql "postgresql://neurondb:neurondb@localhost:5433/neurondb" -c "CREATE EXTENSION IF NOT EXISTS neurondb;"选项2:原生PostgreSQL安装
createdb neurondb
psql -d neurondb -c "CREATE EXTENSION neurondb;"Neuron MCP可以为LLM模型配置、API键、索引模板、工作者设置和工具默认值使用可选的数据库模式。跑 ./scripts/neuronmcp-setup.sh 从存储库根目录进行设置。看 neurondb-mcp-setup.md 了解详情。
配置
创建 mcp-config.json:
{
"database": {
"host": "localhost",
"port": 5433,
"database": "neurondb",
"user": "neurondb",
"password": "neurondb"
},
"server": {
"name": "neurondb-mcp-server",
"version": "2.0.0"
},
"logging": {
"level": "info",
"format": "text"
},
"features": {
"vector": { "enabled": true },
"ml": { "enabled": true },
"analytics": { "enabled": true }
}
}或者使用环境变量:
export NEURONDB_HOST=localhost
export NEURONDB_PORT=5432
export NEURONDB_DATABASE=neurondb
export NEURONDB_USER=neurondb
export NEURONDB_PASSWORD=neurondb构建并运行
运行服务器
从存储库根目录:
make build
export NEURONDB_HOST=localhost NEURONDB_PORT=5432 NEURONDB_DATABASE=neurondb NEURONDB_USER=neurondb NEURONDB_PASSWORD=neurondb
./bin/neuron-mcp可选:传递一个配置文件 -c 或设置 NEURONDB_MCP_CONFIG 走向你的道路 mcp-config.json.
测试:运行附带的客户端以列出工具:
./bin/neuron-mcp-client ./bin/neuron-mcp tools/list或者发送原始JSON-RPC初始化以确认服务器响应:
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | ./bin/neuron-mcp自动设置(推荐)
使用数据库架构的安装脚本(可选LLM/config表):
# From repository root
./scripts/neuronmcp-setup.sh
# With system service enabled (if supported)
./scripts/neuronmcp-setup.sh --enable-service使用 scripts/neuronmcp-run.sh 或 scripts/neuronmcp-run-server.sh 运行服务器。
手动构建(无Makefile)
go build -o bin/neuron-mcp ./cmd/neurondb-mcp
./bin/neuron-mcp使用Docker
此回购不包括 docker-compose.yml。手动构建并运行映像:
# From repository root
docker build -f docker/Dockerfile -t neurondb-mcp:latest .
docker run -i --rm \
-e NEURONDB_HOST=localhost \
-e NEURONDB_PORT=5432 \
-e NEURONDB_DATABASE=neurondb \
-e NEURONDB_USER=neurondb \
-e NEURONDB_PASSWORD=neurondb \
neurondb-mcp:latest对于全栈Docker(NeuronDB+NeuronMCP),请使用NeuronDB存储库或从其存储库中部署每个组件。
作为服务运行
对于systemd(Linux)或launchd(macOS),请参阅您的系统文档或 neurondb安装服务指南 对于模式。
MCP协议
NeuronMCP在stdio上使用模型上下文协议:
- 通过stdin和stdout进行通信
- 消息遵循JSON-RPC 2.0格式
- 客户端发起所有请求
- 服务器返回结果或错误
请求示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "vector_search",
"arguments": {
"query_vector": [0.1, 0.2, 0.3],
"table": "documents",
"limit": 10
}
}
}配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
NEURONDB_HOST | localhost | 数据库主机名 |
NEURONDB_PORT | 5432 | 数据库端口 |
NEURONDB_DATABASE | neurondb | 数据库名称 |
NEURONDB_USER | neurondb | 数据库用户名 |
NEURONDB_PASSWORD | neurondb | 数据库密码 |
NEURONDB_CONNECTION_STRING | - | 完整连接字符串(覆盖上述内容) |
NEURONDB_MCP_CONFIG | mcp-config.json | 配置文件的路径 |
NEURONDB_LOG_LEVEL | info | 日志级别(调试、信息、警告、错误) |
NEURONDB_LOG_FORMAT | text | 日志格式(json、文本) |
NEURONDB_LOG_OUTPUT | stderr | 日志输出(stdout、stderr、文件) |
NEURONDB_ENABLE_GPU | false | 启用GPU加速 |
配置文件
看 mcp-config.json.example 以获得完整的配置结构。环境变量覆盖配置文件值。
工具
NeuronMCP提供全面的工具,涵盖NeuronDB的所有功能:
| 工具类别 | 工具 |
|---|---|
| 向量运算 | vector_search, vector_search_l2, vector_search_cosine, vector_search_inner_product, vector_search_l1, vector_search_hamming, vector_search_chebyshev, vector_search_minkowski, vector_similarity, vector_arithmetic, vector_distance, vector_similarity_unified |
| 矢量量化 | vector_quantize, quantization_analyze (int8、fp16、二进制、uint8、三进制、int4) |
| 嵌入 | generate_embedding, batch_embedding, embed_image, embed_multimodal, embed_cached, configure_embedding_model, get_embedding_model_config, list_embedding_model_configs, delete_embedding_model_config |
| 混合搜索 | hybrid_search, reciprocal_rank_fusion, semantic_keyword_search, multi_vector_search, faceted_vector_search, temporal_vector_search, diverse_vector_search |
| 重新排序 | rerank_cross_encoder, rerank_llm, rerank_cohere, rerank_colbert, rerank_ltr, rerank_ensemble |
| ML操作 | train_model, predict, predict_batch, evaluate_model, list_models, get_model_info, delete_model, export_model |
| 分析 | analyze_data, cluster_data, reduce_dimensionality, detect_outliers, quality_metrics, detect_drift, topic_discovery |
| 时间序列 | timeseries_analysis (ARIMA,预测,季节分解) |
| 自动机器学习 | automl (模型选择、超参数调整、自动训练) |
| 开放神经网络交换 | onnx_model (导入、导出、信息、预测) |
| 索引管理 | create_hnsw_index, create_ivf_index, index_status, drop_index, tune_hnsw_index, tune_ivf_index |
| RAG运营 | process_document, retrieve_context, generate_response, chunk_document |
| 工人和GPU | worker_management, gpu_info |
| 矢量图 | vector_graph (BFS、DFS、PageRank、社区检测) |
| Vecmap运营 | vecmap_operations (距离、算术、稀疏向量范数) |
| 数据集加载 | load_dataset (HuggingFace、URL、GitHub、S3、自动嵌入的本地文件) |
| PostgreSQL(100多种工具) | 完整的PostgreSQL控制: 数据定义语言 (CREATE/ALTER/DROP用于数据库、模式、表、索引、视图、函数、触发器、序列、类型、域、物化视图、分区、外来表), 数据操作语言 (插入、更新、删除、截断、复制), 直接电流 (授予/撤销), 用户/角色管理 (创建/更改/删除用户/角色), 备份/恢复 (pg_dump/pg_store), 安全 (SQL验证、权限检查、审计),以及所有管理、监控和统计工具 |
工具参考: 工具和资源目录. PostgreSQL工具: docs/postgresql-tools.md.
例如,客户端使用和交互记录,请参见 文档/示例/.
数据集加载示例
这 load_dataset 该工具支持多个数据源,具有自动模式检测、嵌入生成和索引创建功能:
HuggingFace数据集
{
"name": "load_dataset",
"arguments": {
"source_type": "huggingface",
"source_path": "sentence-transformers/embedding-training-data",
"split": "train",
"limit": 10000,
"auto_embed": true,
"embedding_model": "default"
}
}URL数据集(CSV、JSON、Parquet)
{
"name": "load_dataset",
"arguments": {
"source_type": "url",
"source_path": "https://example.com/data.csv",
"format": "csv",
"auto_embed": true,
"create_indexes": true
}
}GitHub存储库
{
"name": "load_dataset",
"arguments": {
"source_type": "github",
"source_path": "owner/repo/path/to/data.json",
"auto_embed": true
}
}S3铲斗
{
"name": "load_dataset",
"arguments": {
"source_type": "s3",
"source_path": "s3://my-bucket/data.parquet",
"auto_embed": true
}
}本地文件
{
"name": "load_dataset",
"arguments": {
"source_type": "local",
"source_path": "/path/to/local/file.jsonl",
"schema_name": "my_schema",
"table_name": "my_table",
"auto_embed": true
}
}主要特点:
- 自动模式检测:分析数据类型并创建优化的PostgreSQL表
- 自动嵌入:使用NeuronDB自动检测文本列并生成向量嵌入
- 索引创建:为向量创建HNSW索引,为全文搜索创建GIN索引
- 批量加载:高效的批量装载和进度跟踪
- 多种格式:支持CSV、JSON、JSONL、Parquet和HuggingFace数据集
资源
NeuronMCP公开以下资源:
| 资源 | 描述 |
|---|---|
schema | 数据库架构信息 |
models | 可用的ML模型 |
indexes | 矢量索引配置 |
config | 服务器配置 |
workers | 后台工作人员状态 |
stats | 数据库和系统统计 |
与Claude Desktop一起使用
NeuronMCP与macOS、Windows和Linux上的Claude Desktop完全兼容。
创建Claude Desktop配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
请参阅此目录中的示例配置文件(claude_desktop_config.*.json)针对特定平台的示例。
配置示例:
{
"mcpServers": {
"neurondb": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--network", "neurondb-network",
"-e", "NEURONDB_HOST=neurondb-cpu",
"-e", "NEURONDB_PORT=5432",
"-e", "NEURONDB_DATABASE=neurondb",
"-e", "NEURONDB_USER=neurondb",
"-e", "NEURONDB_PASSWORD=neurondb",
"neurondb-mcp:latest"
]
}
}
}或者使用本地二进制:
{
"mcpServers": {
"neurondb": {
"command": "/path/to/neuron-mcp",
"env": {
"NEURONDB_HOST": "localhost",
"NEURONDB_PORT": "5432",
"NEURONDB_DATABASE": "neurondb",
"NEURONDB_USER": "neurondb",
"NEURONDB_PASSWORD": "neurondb"
}
}
}
}使用构建二进制文件的完整路径(例如。 /home/user/neuron-mcp/bin/neuron-mcp).
配置更改后重新启动Claude Desktop。
与其他MCP客户端一起使用
以交互方式运行NeuronMCP进行测试:
./bin/neuron-mcp通过stdin发送JSON-RPC消息,通过stdout接收响应。
使用神经元mcp客户端
一个像Claude Desktop一样工作的简单MCP客户端。它处理完整的MCP协议,包括初始化握手。
构建客户端(包含在 make build):
make build用途:
# Initialize and list tools
./bin/neuron-mcp-client ./bin/neuron-mcp tools/list
# Call a tool
./bin/neuron-mcp-client ./bin/neuron-mcp tools/call '{"name":"vector_search","arguments":{}}'
# List resources
./bin/neuron-mcp-client ./bin/neuron-mcp resources/list客户端自动:
- 发送带有正确标头的初始化请求(与Claude Desktop完全相同)
- 读取初始化响应
- 读取初始化通知
- 然后发送您的请求并读取响应
测试脚本:
cd src/client
./example_usage.sh或者使用Python客户端:
cd src/client
python neurondb_mcp_client.py -c ../tests/neuronmcp_server.json -e "list_tools"对于Docker:
docker run -i --rm \
-e NEURONDB_HOST=localhost \
-e NEURONDB_PORT=5432 \
-e NEURONDB_DATABASE=neurondb \
-e NEURONDB_USER=neurondb \
-e NEURONDB_PASSWORD=neurondb \
neurondb-mcp:latest先建立形象: docker build -f docker/Dockerfile -t neurondb-mcp:latest . 从存储库根目录。
文档
| 文档 | 描述 |
|---|---|
| Docker文件和容器部署的入口点 | |
| MCP规范 | 模型上下文协议文档 |
| Claude桌面配置示例 | macOS、Linux和Windows的示例配置 |
系统要求
| 组件 | 要求 |
|---|---|
| PostgreSQL | 16或更高版本 |
| NeuronDB扩展 | 已安装并启用(安装) |
| 转到 | 1.23或更高版本(用于构建) |
| MCP客户端 | MCP兼容客户端 |
与NeuronDB集成
故障排除
标准不起作用
确保stdin和stdout未被重定向:
./bin/neuron-mcp # Correct
./bin/neuron-mcp > output.log # Incorrect - breaks MCP protocol对于Docker,使用交互模式:
docker run -i --rm neurondb-mcp:latest数据库连接失败
验证连接参数:
psql -h localhost -p 5432 -U neurondb -d neurondb -c "SELECT 1;"检查环境变量:
env | grep NEURONDBMCP客户端连接问题
验证容器是否正在运行(如果从另一个仓库使用Docker):
docker ps | grep neurondb-mcp手动测试stdio:
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' | ./bin/neuron-mcp检查客户端配置文件路径和格式。
配置问题
验证配置文件路径:
ls -la mcp-config.json检查环境变量名称(必须以开头 NEURONDB_):
env | grep -E "^NEURONDB_"安全
- 通过环境变量安全存储的数据库凭据
- 支持加密数据库连接的TLS/SSL
- Docker容器中的非root用户
- 无网络端点(仅限stdio)
支持
许可证
看 许可证 获取许可证信息。
______________________________________________________________________
