矢量数据库-A2A|AG-UI|MCP
*版本:1.10.0*
概述
这是一个MCP服务器实现,允许标准化 跨矢量数据库技术的采集管理系统。
这在很大程度上受到了微软Autogen V1框架的RAG实现的启发, 这被更改为MCP服务器模型。
AI代理可以:
- 混合搜索文档信息(词汇/向量)
- 使用存储在本地文件系统或URL上的文档创建集合
- 将文档添加到集合
- 利用集合进行检索增强生成(RAG)
- 删除收藏
支持:
- 色度数据库
- PG向量
- Couchbase 的
- Qdrant
- MongoDB
此存储库正在积极维护中-欢迎投稿和错误报告!
计划进行自动化测试
主控程序
MCP工具
| 函数名称 | 描述 | 标签 |
|---|---|---|
create_collection | 在向量数据库中创建新集合或检索现有集合。 | collection_management |
semantic_search | 使用问题变量从向量数据库实例中检索和收集相关知识。 | semantic_search |
add_documents | 将文档添加到矢量数据库中的现有集合中。这可用于使用其他文档扩展集合。 | collection_management |
delete_collection | 从向量数据库中删除集合。 | collection_management |
list_collections | 列出矢量数据库中的所有集合。 | collection_management |
A2A代理
架构:
---
config:
layout: dagre
---
flowchart TB
subgraph subGraph0["Agent Capabilities"]
C["Agent"]
B["A2A Server - Uvicorn/FastAPI"]
D["MCP Tools"]
F["Agent Skills"]
end
C --> D & F
A["User Query"] --> B
B --> C
D --> E["Platform API"]
C:::agent
B:::server
A:::server
classDef server fill:#f9f,stroke:#333
classDef agent fill:#bbf,stroke:#333,stroke-width:2px
style B stroke:#000000,fill:#FFD600
style D stroke:#000000,fill:#BBDEFB
style F fill:#BBDEFB
style A fill:#C8E6C9
style subGraph0 fill:#FFF9C4组件交互图
sequenceDiagram
participant User
participant Server as A2A Server
participant Agent as Agent
participant Skill as Agent Skills
participant MCP as MCP Tools
User->>Server: Send Query
Server->>Agent: Invoke Agent
Agent->>Skill: Analyze Skills Available
Skill->>Agent: Provide Guidance on Next Steps
Agent->>MCP: Invoke Tool
MCP-->>Agent: Tool Response Returned
Agent-->>Agent: Return Results Summarized
Agent-->>Server: Final Response
Server-->>User: Output用法
MCP-CLI
| 短旗 | 长旗 | 描述 |
|---|---|---|
| -h | --help | 显示帮助信息 |
| -t | --transport | 传输方法:“stdio”、“http”或“sse”\[遗留\](默认值:stdio) |
| -s | --host | HTTP传输的主机地址(默认值:0.0.0.0) |
| -p | --port | HTTP传输的端口号(默认值:8000) |
| --auth-type | 身份验证类型:“none”、“static”、“jwt”、“oauth代理”、“oidc代理”和“remote oauth”(默认值:none) | |
| --令牌jwks-uri | 用于JWT验证的jwks uri | |
| --代币发行人 | JWT验证发行人 | |
| --令牌受众 | JWT验证的受众 | |
| --oauth上游授权端点 | oauth代理的上游授权端点 | |
| --oauth上游令牌端点 | oauth代理的上游令牌端点 | |
| --oauth上游客户端id | oauth代理的上游客户端id | |
| --oauth上游客户端机密 | oauth代理的上游客户端机密 | |
| --oauth基本url | oauth代理的基本url | |
| --oidc配置url | oidc配置url | |
| --oidc客户端id | oidc客户端id | |
| -oidc客户端机密 | oidc客户端机密 | |
| --oidc基本url | oidc代理的基本url | |
| --远程身份验证服务器 | 远程OAuth的逗号分隔的授权服务器列表 | |
| --远程基本url | 远程OAuth的基本url | |
| --允许的客户端重定向URI | 逗号分隔的允许客户端重定向URI列表 | |
| --eunomia type | eunomia授权类型:“无”、“嵌入式”、“远程”(默认值:无) | |
| --eunomia策略文件 | 嵌入式eunomia的策略文件(默认:mcp_policies.json) | |
| --eunomia远程url | 远程eunomia服务器的url |
用作MCP服务器
MCP服务器可以在两种模式下运行: stdio (用于本地测试)或 http (用于网络访问)。要启动服务器,请使用以下命令:
在stdio模式下运行(默认):
vector-mcp --transport "stdio"在HTTP模式下运行:
vector-mcp --transport "http" --host "0.0.0.0" --port "8000"创建收藏
AI提示:
Create a collection called zapdos with the documents in this directory:
/home/user/Documents/ChromaAI回应:
The collection named "zapdos" has been successfully created or retrieved from the vector database
using the documents in the directory /home/user/Documents/Chroma.
Let me know if you'd like to perform any further actions, such as querying the collection or adding more documents!从集合中检索
AI提示:
Create a collection called zapdos with the documents in this directory:
/home/user/Documents/ChromaAI回应:
The collection named "zapdos" has been successfully created or retrieved from the vector database
using the documents in the directory /home/user/Documents/Chroma.
Let me know if you'd like to perform any further actions, such as querying the collection or adding more documents!删除收藏
AI提示:
Delete the collection called memoryAI回应:
The collection named "memory" has been successfully deleted.
Let me know if you'd like to create a new collection or perform any other actions!A2A-CLI
端点
- Web 用户界面:
http://localhost:8000/(如果启用) - A2A:
http://localhost:8000/a2a(发现:/a2a/.well-known/agent.json) - AG-UI:
http://localhost:8000/ag-ui(职位)
| 短旗 | 长旗 | 描述 | |
|---|---|---|---|
| -h | --help | 显示帮助信息 | |
| --host | 绑定服务器的主机(默认值:0.0.0.0) | ||
| --port | 绑定服务器的端口(默认值:9000) | ||
| --reload | 启用自动重新加载 | ||
| --provider | LLM提供者:“openai”、“anthropic”、“google”、“huggingface” | ||
| --型号id | LLM型号id(默认:nvidia/nemotron-3-super) | ||
| --基本url | LLM基本url(适用于OpenAI兼容的提供者) | ||
| --api-key | LLM api密钥 | ||
| --mcp url | mcp服务器url(默认值:http://localhost:8000/mcp) | ||
| --web | 启用Pydantic AI web UI | False(环境:Enable_web_UI) |
将MCP服务器部署为服务
MCP服务器可以使用Docker部署,具有可配置的身份验证、中间件和Eunomia授权。
使用Docker运行
docker pull knucklessg1/vector-mcp:latest
docker run -d \
--name vector-mcp \
-p 8004:8004 \
-e HOST=0.0.0.0 \
-e PORT=8004 \
-e TRANSPORT=http \
-e AUTH_TYPE=none \
-e EUNOMIA_TYPE=none \
knucklessg1/vector-mcp:latest对于高级身份验证(例如JWT、OAuth代理、OIDC代理、远程OAuth)或Eunomia,添加相关的环境变量:
docker run -d \
--name vector-mcp \
-p 8004:8004 \
-e HOST=0.0.0.0 \
-e PORT=8004 \
-e TRANSPORT=http \
-e AUTH_TYPE=oidc-proxy \
-e OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration \
-e OIDC_CLIENT_ID=your-client-id \
-e OIDC_CLIENT_SECRET=your-client-secret \
-e OIDC_BASE_URL=https://your-server.com \
-e ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/* \
-e EUNOMIA_TYPE=embedded \
-e EUNOMIA_POLICY_FILE=/app/mcp_policies.json \
knucklessg1/vector-mcp:latest使用Docker Compose
创建一个 docker-compose.yml 文件:
services:
vector-mcp:
image: knucklessg1/vector-mcp:latest
environment:
- HOST=0.0.0.0
- PORT=8004
- TRANSPORT=http
- AUTH_TYPE=none
- EUNOMIA_TYPE=none
ports:
- 8004:8004对于具有身份验证和Eunomia的高级设置:
services:
vector-mcp:
image: knucklessg1/vector-mcp:latest
environment:
- HOST=0.0.0.0
- PORT=8004
- TRANSPORT=http
- AUTH_TYPE=oidc-proxy
- OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration
- OIDC_CLIENT_ID=your-client-id
- OIDC_CLIENT_SECRET=your-client-secret
- OIDC_BASE_URL=https://your-server.com
- ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/*
- EUNOMIA_TYPE=embedded
- EUNOMIA_POLICY_FILE=/app/mcp_policies.json
ports:
- 8004:8004
volumes:
- ./mcp_policies.json:/app/mcp_policies.json运行服务:
docker-compose up -d配置 mcp.json AI集成
{
"mcpServers": {
"vector_mcp": {
"command": "uv",
"args": [
"run",
"--with",
"vector-mcp",
"vector-mcp"
],
"env": {
"DATABASE_TYPE": "chromadb", // Optional
"COLLECTION_NAME": "memory", // Optional
"DOCUMENT_DIRECTORY": "/home/user/Documents/" // Optional
},
"timeout": 300000
}
}
}
安装Python包
python -m pip install vector-mcpPGVector依赖关系
python -m pip install vector-mcp[postgres]全部
python -m pip install vector-mcp[all]或
uv pip install --upgrade vector-mcp[all]存储库所有者
微软Autogen V1特别推荐♥️
MCP配置示例
1.标准IO(stdio)部署
{
"mcpServers": {
"vector-mcp": {
"command": "uv",
"args": [
"run",
"vector-mcp"
],
"env": {
"AGENT_DESCRIPTION": "",
"AGENT_SYSTEM_PROMPT": "",
"API_TOKEN": "",
"CHUNK_SIZE": "",
"COLLECTION_MANAGEMENTTOOL": "True",
"COLLECTION_NAME": "",
"DATABASE_PATH": "",
"DATABASE_TYPE": "",
"DBNAME": "",
"DB_HOST": "",
"DB_PORT": "",
"DEFAULT_AGENT_NAME": "",
"DOCUMENT_DIRECTORY": "",
"LLM_API_KEY": "",
"LLM_BASE_URL": "",
"MISCTOOL": "True",
"MODEL_ID": "",
"PASSWORD": "",
"PROVIDER": "",
"SEARCHTOOL": "True",
"USERNAME": ""
}
}
}
}2.流式HTTP(SSE)部署
{
"mcpServers": {
"vector-mcp": {
"command": "uv",
"args": [
"run",
"vector-mcp",
"--transport",
"http",
"--host",
"0.0.0.0",
"--port",
"8000"
],
"env": {
"AGENT_DESCRIPTION": "",
"AGENT_SYSTEM_PROMPT": "",
"API_TOKEN": "",
"CHUNK_SIZE": "",
"COLLECTION_MANAGEMENTTOOL": "True",
"COLLECTION_NAME": "",
"DATABASE_PATH": "",
"DATABASE_TYPE": "",
"DBNAME": "",
"DB_HOST": "",
"DB_PORT": "",
"DEFAULT_AGENT_NAME": "",
"DOCUMENT_DIRECTORY": "",
"LLM_API_KEY": "",
"LLM_BASE_URL": "",
"MISCTOOL": "True",
"MODEL_ID": "",
"PASSWORD": "",
"PROVIDER": "",
"SEARCHTOOL": "True",
"USERNAME": ""
}
}
}
}