# DPOLens (remote · mcp.dpolens.com)

Privacy law your AI assistant can cite: the exact clause and its version. GDPR and UAE PDPL today.

- Trust score: 78/100 (medium)
- Change this week: +8
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `mcp.dpolens.com`: 78/100 (this document), [markdown](https://verifymcp.io/servers/com-dpolens-dpolens/mcp.md), [page](https://verifymcp.io/servers/com-dpolens-dpolens/mcp)

## Channel facts

- Endpoint: `https://mcp.dpolens.com/`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.2.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 77/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 878 tokens (~219/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 47/100
  - Stability observed for 14 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 4 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 5 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the DPOLens MCP server?

DPOLens is a hosted endpoint at https://mcp.dpolens.com/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-dpolens-dpolens 'https://mcp.dpolens.com/'
```

### Cursor

```json
{
  "mcpServers": {
    "com-dpolens-dpolens": {
      "url": "https://mcp.dpolens.com/"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-dpolens-dpolens": {
      "type": "http",
      "url": "https://mcp.dpolens.com/"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-dpolens-dpolens]
url = "https://mcp.dpolens.com/"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-dpolens-dpolens": {
      "type": "remote",
      "url": "https://mcp.dpolens.com/",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-dpolens-dpolens --url 'https://mcp.dpolens.com/' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-dpolens-dpolens:
    url: "https://mcp.dpolens.com/"
```

### Netclaw

```json
{
  "McpServers": {
    "com-dpolens-dpolens": {
      "Transport": "http",
      "Url": "https://mcp.dpolens.com/"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-dpolens-dpolens -t streamable-http -u 'https://mcp.dpolens.com/'
```

### Other

```json
{
  "mcpServers": {
    "com-dpolens-dpolens": {
      "type": "http",
      "url": "https://mcp.dpolens.com/"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 77, +5)

- [security improvement] HTTPS: unverified → pass

### 2026-11-01 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-30 (score 71, +1)

- [functional] Server version: 0.1.0 → 0.2.0

### 2026-10-29 (score 70, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] Server version: 0.1.0rc3 → 0.1.0

### 2026-10-28 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-26 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-24 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (4)

### `search_policies` (~219 tokens)

Search the law

Search the privacy law this community version holds.

Call this before writing or changing code that collects, stores, logs, shares or deletes
personal data, and before answering a question about what the law requires. What comes back
is the clause itself, word for word, with the key, document and version to cite it by.

Questions asked here are kept 30 days, with nothing about who asked.

Input parameters:

- `as_of`: Read the documents as they stood on this date
- `include_explanatory` (boolean): Include text that explains without obliging, such as a GDPR recital
- `lang`: The language of the question, en or ar. Leave it out to have it read from the letters the question is written in
- `laws`: Only these of the laws this organisation has selected, by slug, such as gdpr or uae-pdpl. Leave it out to search all of them
- `limit` (integer): How many clauses to return
- `query` (string, required): The question, in words

Output parameters:

- `results` (array)
- `searched` (string): What was searched, and as of when

### `get_clause` (~155 tokens)

Read one clause

Read one clause by its key, with where it sits and what sits beneath it.

Use it when a search result points at another clause, or when you need the whole
of an article rather than the part that matched. The call is recorded, with the
key that was read rather than a question.

Input parameters:

- `as_of`: Read the clause as it stood on this date
- `key` (string, required): A canonical key, such as gdpr:art-17:para-1
- `lang` (string): Which language to prefer, as a two letter code
- `whole_subtree` (boolean): Also return this clause and everything beneath it in reading order, which is what you want for a whole article

Output parameters:

- `children` (array): The clauses directly beneath this one
- `clause`
- `cross_references` (array): Keys this clause's own words point at
- `formerly`: Set when this key named a different rule in the policy's version before
- `now`: For a policy's clause read in a version that is no longer in force, where the same rule is in the version in force. A policy's keys follow its printed numbers, so the rule may have another key now
- `subtree` (array): This clause and everything beneath it in reading order, when asked for

### `list_documents` (~62 tokens)

List what can be cited

List the laws this community version can cite, and which version of each is in force.

Input parameters:

- `as_of`: List the documents in force on this date
- `limit` (integer): How many to return
- `offset` (integer): Skip this many first

Output parameters:

- `documents` (array)
- `total` (integer): How many documents are in force, ignoring limit and offset

### `get_document` (~81 tokens)

Read one document's outline

Read one document and its top level structure, without the text.

The outline is where to find a clause key when you know roughly where to look.
Read the words with get_clause. The call is recorded.

Input parameters:

- `as_of`: Read the document as it stood on this date
- `slug` (string, required): The document's slug, such as gdpr

Output parameters:

- `document`
- `outline` (array)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-dpolens-dpolens/mcp#diagnostics

## Score history

- 2026-11-05: 78
- 2026-11-04: 77
- 2026-11-03: 77
- 2026-11-02: 77
- 2026-11-01: 72
- 2026-10-31: 71
- 2026-10-30: 71
- 2026-10-29: 70
- 2026-10-28: 70
- 2026-10-27: 69
- 2026-10-26: 69
- 2026-10-25: 68
- 2026-10-24: 68
- 2026-10-23: 67
- 2026-10-22: 67

## Common questions

### What is the DPOLens MCP server?

DPOLens is an MCP server listed in the public MCP registry as com.dpolens/dpolens. Privacy law your AI assistant can cite: the exact clause and its version. GDPR and UAE PDPL today. This page covers its hosted endpoint (https://mcp.dpolens.com/).

### Is the DPOLens MCP server safe to use?

DPOLens scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the DPOLens MCP server expose?

DPOLens exposes 4 tools: search_policies, get_clause, list_documents, get_document. Their descriptions and schemas cost roughly 517 tokens of context every time the server is loaded.

### Does the DPOLens MCP server require authentication?

No. We connected to DPOLens without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the DPOLens MCP server still maintained?

DPOLens is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://mcp.dpolens.com/
- Repository: https://github.com/alkhatibdev/dpolens
- Website: https://dpolens.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-dpolens-dpolens/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-dpolens-dpolens/mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-dpolens-dpolens/mcp
