# Oceanir (remote · mcp.oceanir.ai)

Locate photos from visual clues and assess location claims with candidates and uncertainty.

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

## Components

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

## Channel facts

- Endpoint: `https://mcp.oceanir.ai`
- Transports: `streamable-http`
- Auth: `required`
- Version: `0.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**: 94/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1457 tokens (~161/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 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.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

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

Oceanir is a hosted endpoint at https://mcp.oceanir.ai/, 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 oceanir-oceanir 'https://mcp.oceanir.ai/'
```

### Cursor

```json
{
  "mcpServers": {
    "oceanir-oceanir": {
      "url": "https://mcp.oceanir.ai/"
    }
  }
}
```

### VS Code

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

### Codex

```toml
[mcp_servers.oceanir-oceanir]
url = "https://mcp.oceanir.ai/"
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add oceanir-oceanir --url 'https://mcp.oceanir.ai/' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  oceanir-oceanir:
    url: "https://mcp.oceanir.ai/"
```

### Netclaw

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

### Vellum

```bash
assistant mcp add oceanir-oceanir -t streamable-http -u 'https://mcp.oceanir.ai/'
```

### Other

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

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)

- [security] Tool “geolocate_image” rewrote its description, which is the text the model reads
- [security] Tool “verify_location_claim” rewrote its description, which is the text the model reads
- [functional improvement] Schema quality: 223 → 161
- [functional] Schema quality: good → excellent
- [functional] New tool “analyze_case_image”
- [functional] New tool “create_case”
- [functional] New tool “get_case_summary”
- [functional] New tool “get_usage”
- [functional] New tool “list_analyses”
- [functional] New tool “list_cases”

### 2026-11-04 (score 77, +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.

### 2026-11-03 (score 76, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-11-02 (score 76)

First indexed and scored.

## MCP tools (9)

### `geolocate_image` (~307 tokens)

Locate a photo

Analyze an image and return its probable real-world location. Returns ranked coordinates with a confidence score and the visual evidence chain the analysis used (architecture, signage, vegetation, terrain, lighting). No EXIF or GPS required. Capped at 20 analyses an hour across all Oceanir analysis tools, and a connected app is limited to depth 2 (an agent token with maximum depth 3 can use depth 3). Reads the scene only (architecture, signage, terrain, vegetation), never the people in it. No face recognition, no biometric identification, no person matching. It answers where an image was taken, never who is in it, and must not be used to locate or track a person.

Input parameters:

- `depth` (integer): Analysis depth. 1 = Surface (region scan, 1 credit). 2 = Standard (ranked candidates with evidence, 2 credits). 3 = Forensic (deeper reasoning and contradiction checks, 10 credits).
- `image_b64` (string): Base64-encoded image bytes (no data: prefix).
- `image_url` (string): Public HTTPS URL to the image to analyze.
- `scope` (object): The location being claimed. Oceanir treats this as a search boundary and never as evidence: it can only narrow the search, never raise confidence, and the model will reject it outright on hard image-…

### `verify_location_claim` (~384 tokens)

Check a photo location claim

Test whether an image is consistent with a location someone has already claimed: a listing's stated city, an address on a case file or claim form, a caption. Oceanir locates the image from visual evidence alone FIRST, then compares. Returns a verdict of `agrees`, `contradicts`, or `unverifiable`, with the distance between the claim and the evidence. `unverifiable` means the image does not settle it and the item needs a human. It is a real answer, not a failure. A verdict of `agrees` means the image is consistent with the claim, not that the claim is true. Capped at 20 analyses an hour across all Oceanir analysis tools, and a connected app is limited to depth 2 (an agent token with maximum depth 3 can use depth 3). Reads the scene only (architecture, signage, terrain, vegetation), never the people in it. No face recognition, no biometric identification, no person matching. It answers where an image was taken, never who is in it, and must not be used to locate or track a person.

Input parameters:

- `depth` (integer): Analysis depth. 2 = Standard is the right default for verification; 1 = Surface is city-level only and will rarely contradict anything; 3 = Forensic adds contradiction checks (10 credits).
- `image_b64` (string): Base64-encoded image bytes (no data: prefix).
- `image_url` (string): Public HTTPS URL to the image to test.
- `scope` (object, required): The location being claimed. Oceanir treats this as a search boundary and never as evidence: it can only narrow the search, never raise confidence, and the model will reject it outright on hard image-…

### `check_credits` (~24 tokens)

Check Oceanir credits

Check the authenticated Oceanir account's current credit balance and remaining monthly allowance.

### `list_analyses` (~175 tokens)

List past Oceanir results

List this account's past Oceanir results, newest first: place, coordinates, confidence, depth and date. Read-only: it never runs a new analysis and never spends credits. Use it to find an earlier result instead of analyzing the same image again. Accounts with analysis history switched off return nothing. Reads the scene only (architecture, signage, terrain, vegetation), never the people in it. No face recognition, no biometric identification, no person matching. It answers where an image was taken, never who is in it, and must not be used to locate or track a person.

Input parameters:

- `city` (string): Optional exact city name to filter by.
- `limit` (integer): How many results to return, newest first.
- `query` (string): Optional text to match against the neighborhood, city or file name.

### `list_cases` (~64 tokens)

List Oceanir cases

List this account's cases (named groups of results), newest first, with their ids. Read-only: it never runs an analysis and never spends credits. Use the returned id with get_case_summary or analyze_case_image.

Input parameters:

- `limit` (integer): How many cases to return.

### `get_case_summary` (~116 tokens)

Summarize an Oceanir case

Read a case's summary: what it holds, the results attached to it and where they point. Read-only: it never runs an analysis and never spends credits. Reads the scene only (architecture, signage, terrain, vegetation), never the people in it. No face recognition, no biometric identification, no person matching. It answers where an image was taken, never who is in it, and must not be used to locate or track a person.

Input parameters:

- `case_id` (string, required): A case id from list_cases or create_case.

### `create_case` (~74 tokens)

Create an Oceanir case

Create an empty case to group related results. Free: it spends no credits. Returns the case id to pass to analyze_case_image.

Input parameters:

- `description` (string): Optional context, such as the location the source claims.
- `name` (string, required): A label you will recognise, for example the listing or claim it is about.

### `analyze_case_image` (~234 tokens)

Analyze an image into a case

Analyze one image and attach the result to an existing case. Spends credits (D1 1, D2 2, D3 10) exactly like geolocate_image. Capped at 20 analyses an hour across all Oceanir analysis tools, and a connected app is limited to depth 2. Returns the analysis and the case id. Reads the scene only (architecture, signage, terrain, vegetation), never the people in it. No face recognition, no biometric identification, no person matching. It answers where an image was taken, never who is in it, and must not be used to locate or track a person.

Input parameters:

- `case_id` (string, required): A case id from list_cases or create_case.
- `depth` (integer): Analysis depth. 1 = Surface (1 credit). 2 = Standard (2 credits). 3 = Forensic (10 credits; agent tokens with maximum depth 3 only).
- `image_b64` (string): Base64-encoded image bytes (no data: prefix).
- `image_url` (string): Public HTTPS URL to the image to analyze.

### `get_usage` (~45 tokens)

Check Oceanir usage

Read the last 30 days of Oceanir usage for the authenticated account: calls, credits used, a breakdown by depth, and what remains. Read-only; it never spends credits.

## Diagnostics

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

## Score history

- 2026-11-05: 78
- 2026-11-04: 77
- 2026-11-03: 76
- 2026-11-02: 76

## Common questions

### What is the Oceanir MCP server?

Oceanir is an MCP server listed in the public MCP registry as io.github.Oceanir/oceanir. Locate photos from visual clues and assess location claims with candidates and uncertainty. This page covers its hosted endpoint (https://mcp.oceanir.ai).

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

Oceanir 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 Oceanir MCP server expose?

Oceanir exposes 9 tools: geolocate_image, verify_location_claim, check_credits, list_analyses, list_cases, and 4 more. Their descriptions and schemas cost roughly 1,423 tokens of context every time the server is loaded.

### Does the Oceanir MCP server require authentication?

Yes. Oceanir asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Oceanir MCP server still maintained?

Oceanir 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.oceanir.ai/
- Repository: https://github.com/Oceanir/oceanir-mcp
- Website: https://oceanir.ai/docs/mcp
- Changelog RSS feed: https://verifymcp.io/servers/oceanir-oceanir/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/oceanir-oceanir/mcp.json
- HTML version of this page: https://verifymcp.io/servers/oceanir-oceanir/mcp
