MCP.Market

Qdrant RBAC MCP server

by fidonis.de·de.fidonis/qdrant-mcp-rbac·v0.4.0

Role-based access to your Qdrant vector store, via MCP. OIDC in, scoped JWTs out.

B75/100grade B
What users say
No reviews yet
Be the first
Safety scan
B75/100

full report

Adoption
New

0 stars

Reviews

Write one

Nobody has reviewed Qdrant RBAC yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Qdrant RBAC tools

No tool declarations could be read from the package source. They show once the server is installed.

Public scan report

scanner v0.1.10 · 2026-10-13 · same rubric, same numbers if you re-run it

no findings
  • –Code scanpackage could not be scannedn/a
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 2 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; website matches verified namespace9/10
Overall 75/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Qdrant RBAC compares

Against every graded E-commerce MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
75/100
higher than 50% of 2,176 E-commerce servers

Install Qdrant RBAC in Claude Code, Cursor or VS Code

claude mcp add qdrant-mcp-rbac -- docker run -i --rm ghcr.io/fidonis/qdrant-mcp-rbac:0.4.0
Add to Cursor

What the publisher says

From the Qdrant RBAC repository's README, as published. We do not edit it. Read it on GitHub

qdrant-mcp-rbac

Maintained by Fidonis · See TRADEMARK.md for the trademark notice.

A FastMCP server that exposes a Qdrant vector database over streamable HTTP with OIDC-based authentication (Keycloak-compatible) and role-based access control mapped onto Qdrant's native JWT access rules.

Role grants are stored as data inside a dedicated Qdrant collection, not in configuration files — admins manage them at runtime via MCP tools.

┌──────────┐   OIDC Bearer   ┌─────────────────┐   Qdrant JWT    ┌──────────┐
│ MCP host │ ──────────────▶ │ qdrant-mcp-rbac │ ──────────────▶ │  Qdrant  │
│ (client) │                 │   (FastMCP)     │                 │          │
└──────────┘                 └─────────────────┘                 │  ┌─────┐ │
                                     │                           │  │_rbac│ │
                                     ▼                           │  │_acl │ │
                                 Keycloak                        │  └─────┘ │
                                 (JWKS, OIDC discovery)          └──────────┘

Quick start (Docker)

docker run --rm -p 8000:8000 \
  -e OIDC_ISSUER_URL=https://kc.example.com/realms/myrealm \
  -e OIDC_AUDIENCE=mcp-server \
  -e QDRANT_URL=http://qdrant:6333 \
  -e QDRANT_JWT_SECRET=<same secret as Qdrant's api-key> \
  ghcr.io/fidonis/qdrant-mcp-rbac:latest

/mcp is the streamable-HTTP endpoint, /health is unauthenticated. See the full docker/.env.example for every variable.

How it works

(signature, expiry, audience, issuer; see Token validation).

  1. The MCP client sends a request with an OIDC access token (Authorization: Bearer …).
  2. The OIDCAuthMiddleware validates the token against the OIDC provider's JWKS
  1. The JWTBuilder derives a Qdrant JWT for the user:

a global-manage token is minted directly.

  • If the user is in the break-glass admin role (RBACADMINROLE),

mapping built from the ACL collection (RBACACLCOLLECTION, default rbacacl).

  • Otherwise, the AclResolver returns the cached role -> [grants]

and forwards the request to Qdrant using the derived JWT.

  1. The Qdrant JWT is attached to the request scope.
  2. Each MCP tool checks the user's effective access for the targeted collection

Token validation

Tokens are validated with PyJWT against the keys published by the issuer ({OIDCISSUERURL}/.well-known/openid-configuration, then its jwks_uri):

ES256 for an RSA / EC key without one), never from the token header. Only RS256, RS384, RS512, ES256, ES384 and ES512 are accepted; symmetric (HS*) and none tokens are rejected.

  • Signature algorithm comes from the signing key (its alg, or RS256 /

equal the issuer in the discovery document) and a non-empty sub. A token without exp or aud is rejected. nbf is enforced when present.

  • Required claims: exp, aud (must contain OIDC_AUDIENCE), iss (must

provider does not reject freshly issued tokens.

  • iat is not checked, so clock skew between this host and the identity

with an unknown kid triggers exactly one JWKS refresh before it is rejected.

  • Key rotation: keys are cached for OIDCJWKSCACHE_TTL seconds. A token
  • Roles are read from realmaccess.roles and from every resourceaccess..roles.

ACL collection schema

Each grant is one point in rbacacl. The point id is a deterministic uuid5(role, collection), so re-granting is idempotent. Payload:

{ "role": "data-scientist", "collection": "embeddings_v2", "access": "rw" }

access is one of:

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Qdrant RBAC: common questions

Is Qdrant RBAC MCP server safe?
Mostly: it is graded B (75/100). Read the Qdrant RBAC safety report
How do I install Qdrant RBAC?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Qdrant RBAC need an API key?
Yes. The registry entry asks for QDRANT_JWT_SECRET.
Is Qdrant RBAC maintained?
The last commit was 22 days ago (2026-10-11). The latest release is v0.4.0.
What can I use instead of Qdrant RBAC?
Servers from other publishers that do the same job: Qdrant MCP server, Apify MCP server and Heimdall MCP server.

Alternatives to Qdrant RBAC

Same job from other publishers: the closest match first, then the best rated.

  • Qdrant MCP
    Exposes the full Qdrant vector database API as 56 MCP tools, not just store/find.
    B
  • Apify
    Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
    A
  • Heimdall
    Every App Store Connect + StoreKit 2 endpoint. 929 tools in 13 profiles, narrow to 27.
    B
  • Buywhere
    Agent-native product catalog: 300M+ products, 150,000+ stores, deliver_to ranking.
    A
  • NativeKeel
    React Native and Expo health check: upgrade blockers, store rules, crash risks, security findings
    A