{"id":47409688,"url":"https://github.com/Knuckles-Team/vector-mcp","last_synced_at":"2026-04-04T02:01:04.267Z","repository":{"id":313144298,"uuid":"1047482583","full_name":"Knuckles-Team/vector-mcp","owner":"Knuckles-Team","description":"Vector MCP Server for AI Agents - Supports ChromaDB, Couchbase, MongoDB, Qdrant, and PGVector","archived":false,"fork":false,"pushed_at":"2026-03-20T05:00:50.000Z","size":936,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-20T21:45:44.209Z","etag":null,"topics":["a2a","a2a-server","ag-ui","chromadb","couchbase","mcp-server","mongodb","mongodb-atlas","pgvector","python","qdrant","qdrant-vector-database","rag","retrieval-augmented-generation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Knuckles-Team.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-08-30T14:20:49.000Z","updated_at":"2026-03-20T05:00:13.000Z","dependencies_parsed_at":"2026-02-18T06:02:10.844Z","dependency_job_id":null,"html_url":"https://github.com/Knuckles-Team/vector-mcp","commit_stats":null,"previous_names":["knuckles-team/vector-mcp"],"tags_count":62,"template":false,"template_full_name":null,"purl":"pkg:github/Knuckles-Team/vector-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Fvector-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Fvector-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Fvector-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Fvector-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Knuckles-Team","download_url":"https://codeload.github.com/Knuckles-Team/vector-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Fvector-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31384847,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T01:22:39.193Z","status":"online","status_checked_at":"2026-04-04T02:00:07.569Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a2a","a2a-server","ag-ui","chromadb","couchbase","mcp-server","mongodb","mongodb-atlas","pgvector","python","qdrant","qdrant-vector-database","rag","retrieval-augmented-generation"],"created_at":"2026-03-20T23:00:22.187Z","updated_at":"2026-04-04T02:01:04.246Z","avatar_url":"https://github.com/Knuckles-Team.png","language":"Python","readme":"# Vector Database - A2A | AG-UI | MCP\n\n![PyPI - Version](https://img.shields.io/pypi/v/vector-mcp)\n![MCP Server](https://badge.mcpx.dev?type=server 'MCP Server')\n![PyPI - Downloads](https://img.shields.io/pypi/dd/vector-mcp)\n![GitHub Repo stars](https://img.shields.io/github/stars/Knuckles-Team/vector-mcp)\n![GitHub forks](https://img.shields.io/github/forks/Knuckles-Team/vector-mcp)\n![GitHub contributors](https://img.shields.io/github/contributors/Knuckles-Team/vector-mcp)\n![PyPI - License](https://img.shields.io/pypi/l/vector-mcp)\n![GitHub](https://img.shields.io/github/license/Knuckles-Team/vector-mcp)\n\n![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/Knuckles-Team/vector-mcp)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/Knuckles-Team/vector-mcp)\n![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/Knuckles-Team/vector-mcp)\n![GitHub issues](https://img.shields.io/github/issues/Knuckles-Team/vector-mcp)\n\n![GitHub top language](https://img.shields.io/github/languages/top/Knuckles-Team/vector-mcp)\n![GitHub language count](https://img.shields.io/github/languages/count/Knuckles-Team/vector-mcp)\n![GitHub repo size](https://img.shields.io/github/repo-size/Knuckles-Team/vector-mcp)\n![GitHub repo file count (file type)](https://img.shields.io/github/directory-file-count/Knuckles-Team/vector-mcp)\n![PyPI - Wheel](https://img.shields.io/pypi/wheel/vector-mcp)\n![PyPI - Implementation](https://img.shields.io/pypi/implementation/vector-mcp)\n\n*Version: 1.1.52*\n\n## Overview\n\nThis is an MCP Server implementation which allows for a standardized\ncollection management system across vector database technologies.\n\nThis was heavily inspired by the RAG implementation of Microsoft's Autogen V1 framework, however,\nthis was changed to an MCP server model instead.\n\nAI Agents can:\n\n- Hybrid search for document information (lexical/vector)\n- Create collections with documents stored on the local filesystem or URLs\n- Add documents to a collection\n- Utilize collection for retrieval augmented generation (RAG)\n- Delete collection\n\nSupports:\n\n- ChromaDB\n- PGVector\n- Couchbase\n- Qdrant\n- MongoDB\n\nThis repository is actively maintained - Contributions and bug reports are welcome!\n\nAutomated tests are planned\n\n## MCP\n\n### MCP Tools\n\n| Function Name       | Description                                                                                                                        | Tag(s)                  |\n|:--------------------|:-----------------------------------------------------------------------------------------------------------------------------------|:------------------------|\n| `create_collection` | Creates a new collection or retrieves an existing one in the vector database.                                                      | `collection_management` |\n| `semantic_search`           | Retrieves and gathers related knowledge from the vector database instance using the question variable.                             | `semantic_search`              |\n| `add_documents`     | Adds documents to an existing collection in the vector database. This can be used to extend collections with additional documents. | `collection_management` |\n| `delete_collection` | Deletes a collection from the vector database.                                                                                     | `collection_management` |\n| `list_collections`  | Lists all collections in the vector database.                                                                                      | `collection_management` |\n\n## A2A Agent\n\n### Architecture:\n\n```mermaid\n---\nconfig:\n  layout: dagre\n---\nflowchart TB\n subgraph subGraph0[\"Agent Capabilities\"]\n        C[\"Agent\"]\n        B[\"A2A Server - Uvicorn/FastAPI\"]\n        D[\"MCP Tools\"]\n        F[\"Agent Skills\"]\n  end\n    C --\u003e D \u0026 F\n    A[\"User Query\"] --\u003e B\n    B --\u003e C\n    D --\u003e E[\"Platform API\"]\n\n     C:::agent\n     B:::server\n     A:::server\n    classDef server fill:#f9f,stroke:#333\n    classDef agent fill:#bbf,stroke:#333,stroke-width:2px\n    style B stroke:#000000,fill:#FFD600\n    style D stroke:#000000,fill:#BBDEFB\n    style F fill:#BBDEFB\n    style A fill:#C8E6C9\n    style subGraph0 fill:#FFF9C4\n```\n\n### Component Interaction Diagram\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant Server as A2A Server\n    participant Agent as Agent\n    participant Skill as Agent Skills\n    participant MCP as MCP Tools\n\n    User-\u003e\u003eServer: Send Query\n    Server-\u003e\u003eAgent: Invoke Agent\n    Agent-\u003e\u003eSkill: Analyze Skills Available\n    Skill-\u003e\u003eAgent: Provide Guidance on Next Steps\n    Agent-\u003e\u003eMCP: Invoke Tool\n    MCP--\u003e\u003eAgent: Tool Response Returned\n    Agent--\u003e\u003eAgent: Return Results Summarized\n    Agent--\u003e\u003eServer: Final Response\n    Server--\u003e\u003eUser: Output\n```\n\n## Usage\n\n\n### MCP CLI\n\n| Short Flag | Long Flag                          | Description                                                                 |\n|------------|------------------------------------|-----------------------------------------------------------------------------|\n| -h         | --help                             | Display help information                                                    |\n| -t         | --transport                        | Transport method: 'stdio', 'http', or 'sse' [legacy] (default: stdio)       |\n| -s         | --host                             | Host address for HTTP transport (default: 0.0.0.0)                          |\n| -p         | --port                             | Port number for HTTP transport (default: 8000)                              |\n|            | --auth-type                        | Authentication type: 'none', 'static', 'jwt', 'oauth-proxy', 'oidc-proxy', 'remote-oauth' (default: none) |\n|            | --token-jwks-uri                   | JWKS URI for JWT verification                                              |\n|            | --token-issuer                     | Issuer for JWT verification                                                |\n|            | --token-audience                   | Audience for JWT verification                                              |\n|            | --oauth-upstream-auth-endpoint     | Upstream authorization endpoint for OAuth Proxy                             |\n|            | --oauth-upstream-token-endpoint    | Upstream token endpoint for OAuth Proxy                                    |\n|            | --oauth-upstream-client-id         | Upstream client ID for OAuth Proxy                                         |\n|            | --oauth-upstream-client-secret     | Upstream client secret for OAuth Proxy                                     |\n|            | --oauth-base-url                   | Base URL for OAuth Proxy                                                   |\n|            | --oidc-config-url                  | OIDC configuration URL                                                     |\n|            | --oidc-client-id                   | OIDC client ID                                                             |\n|            | --oidc-client-secret               | OIDC client secret                                                         |\n|            | --oidc-base-url                    | Base URL for OIDC Proxy                                                    |\n|            | --remote-auth-servers              | Comma-separated list of authorization servers for Remote OAuth             |\n|            | --remote-base-url                  | Base URL for Remote OAuth                                                  |\n|            | --allowed-client-redirect-uris     | Comma-separated list of allowed client redirect URIs                       |\n|            | --eunomia-type                     | Eunomia authorization type: 'none', 'embedded', 'remote' (default: none)   |\n|            | --eunomia-policy-file              | Policy file for embedded Eunomia (default: mcp_policies.json)              |\n|            | --eunomia-remote-url               | URL for remote Eunomia server                                              |\n\n### Using as an MCP Server\n\nThe MCP Server can be run in two modes: `stdio` (for local testing) or `http` (for networked access). To start the server, use the following commands:\n\n#### Run in stdio mode (default):\n```bash\nvector-mcp --transport \"stdio\"\n```\n\n#### Run in HTTP mode:\n```bash\nvector-mcp --transport \"http\"  --host \"0.0.0.0\"  --port \"8000\"\n```\n\n### Creating Collection\nAI Prompt:\n```text\nCreate a collection called zapdos with the documents in this directory:\n/home/user/Documents/Chroma\n```\n\nAI Response:\n```text\nThe collection named \"zapdos\" has been successfully created or retrieved from the vector database\nusing the documents in the directory /home/user/Documents/Chroma.\nLet me know if you'd like to perform any further actions, such as querying the collection or adding more documents!\n```\n\n### Retrieving from Collection\n\nAI Prompt:\n```text\nCreate a collection called zapdos with the documents in this directory:\n/home/user/Documents/Chroma\n```\n\nAI Response:\n```text\nThe collection named \"zapdos\" has been successfully created or retrieved from the vector database\nusing the documents in the directory /home/user/Documents/Chroma.\nLet me know if you'd like to perform any further actions, such as querying the collection or adding more documents!\n```\n\n### Deleting Collection\n\nAI Prompt:\n```text\nDelete the collection called memory\n```\n\nAI Response:\n```text\nThe collection named \"memory\" has been successfully deleted.\nLet me know if you'd like to create a new collection or perform any other actions!\n```\n\n### A2A CLI\n#### Endpoints\n- **Web UI**: `http://localhost:8000/` (if enabled)\n- **A2A**: `http://localhost:8000/a2a` (Discovery: `/a2a/.well-known/agent.json`)\n- **AG-UI**: `http://localhost:8000/ag-ui` (POST)\n\n| Short Flag | Long Flag         | Description                                                            |\n|------------|-------------------|------------------------------------------------------------------------|\n| -h         | --help            | Display help information                                               |\n|            | --host            | Host to bind the server to (default: 0.0.0.0)                          |\n|            | --port            | Port to bind the server to (default: 9000)                             |\n|            | --reload          | Enable auto-reload                                                     |\n|            | --provider        | LLM Provider: 'openai', 'anthropic', 'google', 'huggingface'           |\n|            | --model-id        | LLM Model ID (default: qwen3:4b)                                       |\n|            | --base-url        | LLM Base URL (for OpenAI compatible providers)                         |\n|            | --api-key         | LLM API Key                                                            |\n|            | --mcp-url         | MCP Server URL (default: http://localhost:8000/mcp)                    |\n|            | --web             | Enable Pydantic AI Web UI                                              | False (Env: ENABLE_WEB_UI) |\n\n\n\n### Deploy MCP Server as a Service\n\nThe MCP server can be deployed using Docker, with configurable authentication, middleware, and Eunomia authorization.\n\n#### Using Docker Run\n\n```bash\ndocker pull knucklessg1/vector-mcp:latest\n\ndocker run -d \\\n  --name vector-mcp \\\n  -p 8004:8004 \\\n  -e HOST=0.0.0.0 \\\n  -e PORT=8004 \\\n  -e TRANSPORT=http \\\n  -e AUTH_TYPE=none \\\n  -e EUNOMIA_TYPE=none \\\n  knucklessg1/vector-mcp:latest\n```\n\nFor advanced authentication (e.g., JWT, OAuth Proxy, OIDC Proxy, Remote OAuth) or Eunomia, add the relevant environment variables:\n\n```bash\ndocker run -d \\\n  --name vector-mcp \\\n  -p 8004:8004 \\\n  -e HOST=0.0.0.0 \\\n  -e PORT=8004 \\\n  -e TRANSPORT=http \\\n  -e AUTH_TYPE=oidc-proxy \\\n  -e OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration \\\n  -e OIDC_CLIENT_ID=your-client-id \\\n  -e OIDC_CLIENT_SECRET=your-client-secret \\\n  -e OIDC_BASE_URL=https://your-server.com \\\n  -e ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/* \\\n  -e EUNOMIA_TYPE=embedded \\\n  -e EUNOMIA_POLICY_FILE=/app/mcp_policies.json \\\n  knucklessg1/vector-mcp:latest\n```\n\n#### Using Docker Compose\n\nCreate a `docker-compose.yml` file:\n\n```yaml\nservices:\n  vector-mcp:\n    image: knucklessg1/vector-mcp:latest\n    environment:\n      - HOST=0.0.0.0\n      - PORT=8004\n      - TRANSPORT=http\n      - AUTH_TYPE=none\n      - EUNOMIA_TYPE=none\n    ports:\n      - 8004:8004\n```\n\nFor advanced setups with authentication and Eunomia:\n\n```yaml\nservices:\n  vector-mcp:\n    image: knucklessg1/vector-mcp:latest\n    environment:\n      - HOST=0.0.0.0\n      - PORT=8004\n      - TRANSPORT=http\n      - AUTH_TYPE=oidc-proxy\n      - OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration\n      - OIDC_CLIENT_ID=your-client-id\n      - OIDC_CLIENT_SECRET=your-client-secret\n      - OIDC_BASE_URL=https://your-server.com\n      - ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/*\n      - EUNOMIA_TYPE=embedded\n      - EUNOMIA_POLICY_FILE=/app/mcp_policies.json\n    ports:\n      - 8004:8004\n    volumes:\n      - ./mcp_policies.json:/app/mcp_policies.json\n```\n\nRun the service:\n\n```bash\ndocker-compose up -d\n```\n\n#### Configure `mcp.json` for AI Integration\n\n```json\n{\n  \"mcpServers\": {\n    \"vector_mcp\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"run\",\n        \"--with\",\n        \"vector-mcp\",\n        \"vector-mcp\"\n      ],\n      \"env\": {\n        \"DATABASE_TYPE\": \"chromadb\",                   // Optional\n        \"COLLECTION_NAME\": \"memory\",                   // Optional\n        \"DOCUMENT_DIRECTORY\": \"/home/user/Documents/\"  // Optional\n      },\n      \"timeout\": 300000\n    }\n  }\n}\n\n```\n\n## Install Python Package\n\n```bash\npython -m pip install vector-mcp\n```\n\nPGVector dependencies\n\n```bash\npython -m pip install vector-mcp[postgres]\n```\n\nAll\n\n```bash\npython -m pip install vector-mcp[all]\n```\n\nor\n\n```bash\nuv pip install --upgrade vector-mcp[all]\n```\n\n## Repository Owners\n\n\n\u003cimg width=\"100%\" height=\"180em\" src=\"https://github-readme-stats.vercel.app/api?username=Knucklessg1\u0026show_icons=true\u0026hide_border=true\u0026\u0026count_private=true\u0026include_all_commits=true\" /\u003e\n\n![GitHub followers](https://img.shields.io/github/followers/Knucklessg1)\n![GitHub User's stars](https://img.shields.io/github/stars/Knucklessg1)\n\nSpecial shoutouts to Microsoft Autogen V1 ♥️\n","funding_links":[],"categories":["Database \u0026 Messaging Mcp Servers"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKnuckles-Team%2Fvector-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKnuckles-Team%2Fvector-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKnuckles-Team%2Fvector-mcp/lists"}