# GetMyData (remote · getmydata.io)

Public web data as rows from any public website. Free sample first, then one fixed-price payment.

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

## Components

- remote · `getmydata.io`: 58/100 (this document), [markdown](https://verifymcp.io/servers/io-getmydata-getmydata/getmydata.md), [page](https://verifymcp.io/servers/io-getmydata-getmydata/getmydata)

## Channel facts

- Endpoint: `https://getmydata.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.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**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (cancel_request).
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.
  - 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**: 52/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2936 tokens (~183/item across 16 items; 16 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 43/100
  - Stability observed for 13 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 78/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 33% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 40/100
  - Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28.

## Install

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

GetMyData is a hosted endpoint at https://getmydata.io/mcp, 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 io-getmydata-getmydata 'https://getmydata.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-getmydata-getmydata": {
      "url": "https://getmydata.io/mcp"
    }
  }
}
```

### VS Code

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

### Codex

```toml
[mcp_servers.io-getmydata-getmydata]
url = "https://getmydata.io/mcp"
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add io-getmydata-getmydata --url 'https://getmydata.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-getmydata-getmydata:
    url: "https://getmydata.io/mcp"
```

### Netclaw

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

### Vellum

```bash
assistant mcp add io-getmydata-getmydata -t streamable-http -u 'https://getmydata.io/mcp'
```

### Other

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

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 58, +1)

- [security] Tool “cancel_request” rewrote its description, which is the text the model reads
- [cosmetic] “cancel_request” reworded the description of “expected_revision”

### 2026-11-03 (score 57, +1)

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

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

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

### 2026-10-31 (score 55, 0)

- [functional] Server version: 1.1.2 → 1.3.0

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

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

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

- [security] Tool “fetch_delivery” rewrote its description, which is the text the model reads

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

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

### 2026-10-25 (score 53, +1)

- [functional] Server version: 1.1.0 → 1.1.2

## MCP tools (16)

### `refresh_session` (~79 tokens)

Refresh session

Before session expiry, renew using the current Mcp-Session-Id. Save the returned header/token. A session is valid for 7 days; each refresh extends it by up to 7 days, never beyond a hard lifetime of thirty days from initialization; request and delivery expiries do not change.

Input parameters:

- `idempotency_key` (string, required)

### `submit_requisition` (~580 tokens)

Request public web data

Request public web data as rows when browsing it yourself is impractical. Free sample first, one-off payment by the person, no signup or subscription. Collect every required field from the person first (sources, fields, filters, geo, row_target, deadline, language, description) and generate search_keywords yourself; missing or invalid fields are returned as error.missing/error.invalid (HTTP 422) and are not clarified by the service. The service is subject to applicable law. You are responsible for using the data lawfully and must not use the service for abuse such as harassment, spam or fraud. Do not send account passwords, cookies or session tokens. Save the returned request capability privately. The person must verify their email with a one-time code before the sample is shown (ask them to give you the code); sampling starts meanwhile. Then sampling runs asynchronously and every result is emailed to them.

Input parameters:

- `channel_id` (string): The first successful request freezes the session channel, including no channel. Subsequent requests inherit it; this grants no discounts. When omitted, the channel bound to coupon_code (if any) is us…
- `coupon_code` (string): Optional single code applied when the quote is prepared; more codes go in coupon_codes on create_order.
- `deadline` (string, required): Required: ISO 8601 date-time or "none".
- `dedup_keys` (array): Optional compound key of requested field names, all available in the confirmed sample. Empty means canonical whole-row deduplication.
- `description` (string, required): Required: plain description of the data wanted and its purpose.
- `fields` (array, required)
- `filters` (object, required): Required; {} when none.
- `geo` (string, required): Required; "" when not location-specific.
- `human_email` (string, required)
- `idempotency_key` (string, required)
- `language` (string, required): Required: the person’s language.
- `prior_request_capability` (string): Optional valid capability for an accepted, positively paid prior request with the same email.
- `row_commitment` (string, required): best_effort (default to propose): as many as match, up to row_target. guaranteed: row_target rows; a shortfall keeps collecting until reached or cancelled (pro-rata refund of undelivered rows).
- `row_target` (integer, required)
- `search_keywords` (array): Optional hint only: up to five short phrases (platform or site type plus data type, e.g. "app store reviews", "google maps places"; do not put a specific app, product or brand name). GetMyData genera…
- `sources` (array, required): Public page URLs or site names. Any public website is accepted when a collection method exists; otherwise the request ends with reason_code no_capability.

### `get_request` (~90 tokens)

Get request

Read the current request, questions, sample and next action. After accepted payment, remind the customer about returned renewal/referral codes and expiry; pending codes are not ready. When next_action is wait, check again after suggested_check_after_seconds via a scheduled task if available; never loop. The person is emailed on every result.

Input parameters:

- `request_capability` (string, required)
- `request_id` (string, required)

### `revise_requisition` (~472 tokens)

Revise request

Revise an unpaid request using the current expected_revision with the full set of required fields. Existing samples and quotes are replaced. Use it when next_action is revise (including reason_code no_capability: try other sources or fields).

Input parameters:

- `channel_id` (string): The first successful request freezes the session channel, including no channel. Subsequent requests inherit it; this grants no discounts. When omitted, the channel bound to coupon_code (if any) is us…
- `coupon_code` (string): Optional single code applied when the quote is prepared; more codes go in coupon_codes on create_order.
- `deadline` (string, required): Required: ISO 8601 date-time or "none".
- `dedup_keys` (array): Optional compound key of requested field names, all available in the confirmed sample. Empty means canonical whole-row deduplication.
- `description` (string, required): Required: plain description of the data wanted and its purpose.
- `expected_revision` (integer, required)
- `fields` (array, required)
- `filters` (object, required): Required; {} when none.
- `geo` (string, required): Required; "" when not location-specific.
- `human_email` (string)
- `idempotency_key` (string, required)
- `language` (string, required): Required: the person’s language.
- `prior_request_capability` (string): Optional valid capability for an accepted, positively paid prior request with the same email.
- `request_capability` (string, required)
- `request_id` (string, required)
- `row_commitment` (string, required): best_effort (default to propose): as many as match, up to row_target. guaranteed: row_target rows; a shortfall keeps collecting until reached or cancelled (pro-rata refund of undelivered rows).
- `row_target` (integer, required)
- `search_keywords` (array): Optional hint only: up to five short phrases (platform or site type plus data type, e.g. "app store reviews", "google maps places"; do not put a specific app, product or brand name). GetMyData genera…
- `sources` (array, required): Public page URLs or site names. Any public website is accepted when a collection method exists; otherwise the request ends with reason_code no_capability.

### `confirm_scope` (~109 tokens)

Confirm sample scope

Confirm the current immutable sample_id and revision and request a fixed quote. The quote is prepared asynchronously and emailed to the person with the payment link; check get_request on a schedule, never in a loop. After the final quote, use start_order or create_order to read the confirmation link.

Input parameters:

- `expected_revision` (integer, required)
- `idempotency_key` (string, required)
- `request_capability` (string, required)
- `request_id` (string, required)
- `sample_id` (string)

### `confirm_quote` (~77 tokens)

Confirm quote

Record final quote confirmation for quote_id and revision. Use start_order next; start_order also records this selection if not already confirmed.

Input parameters:

- `expected_revision` (integer, required)
- `idempotency_key` (string, required)
- `quote_id` (string, required)
- `request_capability` (string, required)
- `request_id` (string, required)

### `start_email_verification` (~188 tokens)

Send email code

Send (or resend) the one-time code that verifies the person’s email for this request. Needed before the sample is shown (sampling itself starts at once), and again before payment if the verification is older than the re-verify window. human_email may be corrected only before it is verified. Use when next_action is start_email_verification (email_verification.state not_sent, unavailable, expired, replaced or attempts_exceeded after resend_after). Ask the person to give you the code and to check spam; if the state stays unavailable after requesting a new code once, ask them to contact support@getmydata.io; this code email contains no price or link (the later quote email contains the private payment link).

Input parameters:

- `human_email` (string)
- `idempotency_key` (string, required)
- `request_capability` (string, required)
- `request_id` (string, required)

### `verify_email` (~102 tokens)

Verify email code

Submit the code the person read from their email. A wrong code returns otp_invalid with attempts_remaining. On success the sample becomes visible once ready (or, at quote time, the order confirmation link is issued). Results are then emailed to the verified address; check get_request later instead of polling continuously.

Input parameters:

- `idempotency_key` (string, required)
- `otp` (string, required)
- `request_capability` (string, required)
- `request_id` (string, required)

### `start_order` (~94 tokens)

Start order

Select the final quote and read the human confirmation link issued for the verified email (no second code). Save order_id and order_capability before passing confirmation_url to the person.

Input parameters:

- `expected_revision` (integer, required)
- `human_email` (string)
- `idempotency_key` (string, required)
- `quote_id` (string, required)
- `request_capability` (string, required)
- `request_id` (string, required)

### `create_order` (~157 tokens)

Prepare order

Read or update the order for the final quote. Pass explicitly available renewal, referral or channel codes in coupon_codes before payment starts. Tell the person which codes were added and their valid/invalid status. Give confirmation_url to the person to review codes and pay themselves. Never submit payment for them. Save order_id and order_capability before passing confirmation_url to the person. After payment, use get_order even if the original session is lost.

Input parameters:

- `coupon_codes` (array)
- `expected_revision` (integer, required)
- `idempotency_key` (string, required)
- `otp` (string): Deprecated; ignored.
- `quote_id` (string, required)
- `request_capability` (string, required)
- `request_id` (string, required)

### `cancel_request` (~160 tokens)

Cancel request

Cancel an unpaid request before payment starts. Pass expected_revision as an integer from the latest get_request. Only expected_revision is sent in the HTTP body; do not add sample_id or requisition fields. On revision_conflict, retry once with error.revision (error.next_action is cancel) and do not repeat the old revision. On invalid_input, fix error.invalid and error.missing, then retry once with error.revision. Paid orders require support.

Input parameters:

- `expected_revision` (integer, required): Required integer. Current request revision, or error.revision from a cancel revision_conflict / invalid_input. Do not send a string.
- `idempotency_key` (string, required)
- `request_capability` (string, required)
- `request_id` (string, required)

### `get_quote` (~37 tokens)

Get quote

Read the quote or estimated waiting time, without payment credentials.

Input parameters:

- `request_capability` (string, required)
- `request_id` (string, required)

### `get_payment_status` (~56 tokens)

Get payment status

Check email verification, order creation and verified payment status. After payment, return this request’s coupon notifications and a separate delivery token when files are ready.

Input parameters:

- `request_capability` (string, required)
- `request_id` (string, required)

### `get_order` (~172 tokens)

Get order

Use the order_capability saved at order creation to read paid order status and obtain or renew a delivery token. It works with a new valid session if the original session expired; a current session is required. No email recovery; keep this credential private until file retention ends. After an original full refund, top-level add_on describes any separate purchase. If add_on.delivery_available is true, next_action is fetch_delivery and the renewed token can list/download only extra.* files; delivery.rows_url is null. The original refund status and original-file 410 remain unchanged.

Input parameters:

- `order_capability` (string, required)
- `order_id` (string, required): Order number, e.g. GMD7K3P9Q. Lowercase or hyphenated input (gmd-7k3p9q) is accepted.

### `cancel_collection` (~117 tokens)

Stop collection

Only when the person explicitly asks: stop continued collection of a guaranteed-N order whose get_order status is collecting. Rows delivered so far stay available, the order settles as partial, and the undelivered share is refunded pro rata to the original payment method; the person is emailed. Tell them the refund amount shown in collection.refund first.

Input parameters:

- `idempotency_key` (string, required)
- `order_capability` (string, required)
- `order_id` (string, required): Order number, e.g. GMD7K3P9Q.

### `fetch_delivery` (~254 tokens)

Download delivery

After payment, use the delivery token to list files or read rows. Every delivery lists json (the original records) and fields.json (which requested fields were found, with path and type) together. csv and xlsx appear only when the records are already flat and do not replace fields.json. rows pages the original records. A paid excess-rows add-on has its own extra.json and extra.fields.json, plus extra.csv and extra.xlsx only when those rows are flat. XLSX is returned as base64 bytes with its content type. All rows pages for a file count once per token; a full download counts once each. On expiry or download_limit, call get_order with your order capability for a fresh token. A current session is required and the delivery token is bound to it. If the original session expired, initialize a new one and call get_order first.

Input parameters:

- `delivery_token` (string, required)
- `format` (string)
- `limit` (integer)
- `offset` (integer)
- `order_id` (string, required): Order number, e.g. GMD7K3P9Q. Lowercase or hyphenated input (gmd-7k3p9q) is accepted.

## Diagnostics

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

## Score history

- 2026-11-05: 58
- 2026-11-04: 57
- 2026-11-03: 57
- 2026-11-02: 56
- 2026-11-01: 56
- 2026-10-31: 55
- 2026-10-30: 55
- 2026-10-29: 54
- 2026-10-28: 54
- 2026-10-27: 53
- 2026-10-26: 53
- 2026-10-25: 53
- 2026-10-24: 52
- 2026-10-23: 52

## Common questions

### What is the GetMyData MCP server?

GetMyData is an MCP server listed in the public MCP registry as io.getmydata/getmydata. Public web data as rows from any public website. Free sample first, then one fixed-price payment. This page covers its hosted endpoint (https://getmydata.io/mcp).

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

GetMyData scores 58 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 GetMyData MCP server expose?

GetMyData exposes 16 tools: refresh_session, submit_requisition, get_request, revise_requisition, confirm_scope, and 11 more. Their descriptions and schemas cost roughly 2,744 tokens of context every time the server is loaded.

### Does the GetMyData MCP server require authentication?

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

### Is the GetMyData MCP server still maintained?

GetMyData 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://getmydata.io/mcp
- Website: https://getmydata.io/
- Changelog RSS feed: https://verifymcp.io/servers/io-getmydata-getmydata/getmydata.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-getmydata-getmydata/getmydata.json
- HTML version of this page: https://verifymcp.io/servers/io-getmydata-getmydata/getmydata
