Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Ontonym

REMOTE · MCP.ONTONYM.COM · SCANNED OCT 3

Give your agents your team's real data — read the shared graph, propose actions your team approves.

Available components

0 this week 38 Trust /100
Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Endpoint Security94
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
  • Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
  • Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified

Unverified: 6 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.

Install

How do I install the Ontonym MCP server?

Ontonym is a hosted endpoint at https://mcp.ontonym.com/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.

remote · mcp.ontonym.com

# add to Claude Code
claude mcp add --transport http com-ontonym-memory 'https://mcp.ontonym.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-ontonym-memory": {
      "url": "https://mcp.ontonym.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-ontonym-memory": {
      "type": "http",
      "url": "https://mcp.ontonym.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-ontonym-memory]
url = "https://mcp.ontonym.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-ontonym-memory": {
      "type": "remote",
      "url": "https://mcp.ontonym.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-ontonym-memory --url 'https://mcp.ontonym.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-ontonym-memory:
    url: "https://mcp.ontonym.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-ontonym-memory": {
      "Transport": "http",
      "Url": "https://mcp.ontonym.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-ontonym-memory -t streamable-http -u 'https://mcp.ontonym.com/mcp'
// mcp.json
{
  "mcpServers": {
    "com-ontonym-memory": {
      "type": "http",
      "url": "https://mcp.ontonym.com/mcp"
    }
  }
}

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

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 11 Sept 26 0
    • Endpoint reachability: reachable → behind authorisation ▼ security
    • Transport: unverified → pass ▲ security
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Authorization: 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. security
    • MCP protocol: unverified → pass ▲ functional
    • Tool coverage: unverified → 100 ▲ functional
    • First check of Tool coverage: 0 functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: excellent functional
    • First check of Destructive annotations: 100 functional
    • First check of Schema quality: pass functional
    • First check of Tool coverage: 100 functional
  • 9 Sept 26 38

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Oct 2026 · Probed https://mcp.ontonym.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=mcp.ontonym.com CN=YE1,O=Let's Encrypt,C=US 12 Aug 2026 10 Nov 2026 ECDSA 256 ECDSA-SHA384 5e47be104e25c6376fed8e933286ee73fff
SANs: mcp.ontonym.com
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.ontonym.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
ontonym.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On connection
HTTP status 401

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.ontonym.com/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://mcp.ontonym.com/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
www-authenticate Bearer resource_metadata="https://mcp.ontonym.com/.well-known/oauth-protected-resource"

Protected resource metadata

Document https://mcp.ontonym.com/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.ontonym.com/mcp
Authorisation server https://api.ontonym.com

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.ontonym.com/mcp Auth required 401
http (plaintext) http://mcp.ontonym.com/mcp HTTPS enforced 308 https://mcp.ontonym.com/mcp
MCP tools · 22 exposed · ~2,236 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
embed_memory ~156

Build (or top up) the vector index a memory's semantic_search reads. `semantic_search` matches against stored embeddings, so a memory that has never been embedded answers every query with ZERO results — indistinguishable from "nothing matches". Run this once per memory, and again after a large ingestion, to make newly added objects findable by meaning. Idempotent: entities already embedded for the current model are skipped unless `force`. `kinds` defaults to ['object', 'class']. Requires write scope. Large memories take a while — this can run for minutes.

NameTypeReqDescription
forceboolean––
kinds–––
memorystringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_change_impact ~72

"What should I watch out for if I change this object?" — event-class neighbours, actions touching it, property conflicts, top related objects, and provenance. One composite call. `memory` is the slug.

NameTypeReqDescription
memorystringyes–
object_idintegeryes–

Structured output declared, but exposes no named fields.

No examples provided.

get_extraction_prompt ~209

Add a document to the knowledge graph by extracting it YOURSELF, in this chat. STEP 1 of 4. Use whenever the user shares a document/notes/transcript and wants it captured in the graph, and you (this assistant) should do the extraction. `memory` is the slug from list_my_memories. Returns a `passes` list. The flow: (1) run the `classes` pass prompt over the document you already have; (2) run the `objects` pass prompt and draft candidate objects/events; (3) call resolve_names ONCE with every candidate name and reuse each returned canonical name + class; (4) call submit_extraction_from_llm(memory, results). The document is NOT sent to the server, and no object list is embedded in the prompts — resolve_names is how you see what already exists.

NameTypeReqDescription
memorystringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_feed ~33

Recent ingestions in a memory — what changed lately.

NameTypeReqDescription
limitinteger––
memorystringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_graph ~28

The class-level graph (classes + relationships) of a memory.

NameTypeReqDescription
memorystringyes–

Structured output declared, but exposes no named fields.

No examples provided.

get_object ~39

Full detail/subgraph for one object in a memory (id from search/list).

NameTypeReqDescription
memorystringyes–
object_idintegeryes–

Structured output declared, but exposes no named fields.

No examples provided.

get_paths ~161

Shortest relationship paths between two objects in a memory — the one-call answer to "how are A and B connected?". `start` and `target` accept an object id or an exact name/display name. Each returned path is a list of steps {from, rel, direction, to}; paths are all of minimal length. `found: false` with `frontier_truncated: true` means the search hit its breadth cap, NOT proof the objects are disconnected. Use this instead of chaining get_object calls hop by hop.

NameTypeReqDescription
limitinteger––
max_depthinteger––
memorystringyes–
startstringyes–
targetstringyes–

Structured output declared, but exposes no named fields.

No examples provided.

list_class_objects ~39

List objects of one class in a memory (class_id from list_classes).

NameTypeReqDescription
class_idintegeryes–
memorystringyes–

Structured output declared, but exposes no named fields.

No examples provided.

list_classes ~32

List the classes (schema) in a memory (slug from list_my_memories).

NameTypeReqDescription
memorystringyes–

Structured output declared, but exposes no named fields.

No examples provided.

list_my_memories ~44

List the memories YOU can read and ingest into. Call this first, then pass the chosen `slug` as the `memory` argument to every other tool.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

list_objects ~75

List objects in a memory, optionally filtered to one exact class (by canonical snake_case name; descendants NOT included). Each row carries `status` — defer on 'unapproved'. `memory` is the slug.

NameTypeReqDescription
class_name–––
limitinteger––
memorystringyes–

Structured output declared, but exposes no named fields.

No examples provided.

list_owned_objects ~53

Reverse ownership lookup — what objects does this person (object_id) own? Approved ownerships only. `memory` is the slug.

NameTypeReqDescription
memorystringyes–
person_object_idintegeryes–

Structured output declared, but exposes no named fields.

No examples provided.

list_unapproved ~88

The review queue — rows still status='unapproved', which an agent should defer on. `kind` filters to one of class/property/action/ relationship/rule/flow/flow_step/object/object_property/object_action/ object_relationship/object_flow/object_flow_step; omit to scan all.

NameTypeReqDescription
kind–––
limitinteger––
memorystringyes–

Structured output declared, but exposes no named fields.

No examples provided.

list_unapproved_owners ~36

Pending-review ownership suggestions in a memory, newest first.

NameTypeReqDescription
limitinteger––
memorystringyes–

Structured output declared, but exposes no named fields.

No examples provided.

merge_objects ~229

Fold a DUPLICATE object into the object it duplicates, then delete it. Extraction coins near-duplicates (`turkey` beside `country_tur`) because the known-objects hint it sees is capped at the newest rows. Use this when two objects of the SAME class denote one real thing: `winner_id` is the one to keep, and the loser's properties, edges, mentions and ownership move onto it before it goes. Edges the move turns into self-loops or exact duplicates are dropped. Identify the loser by `loser_id` or by `loser_name` (its canonical snake_case name, resolved within the winner's class). Irreversible, and the loser id stops resolving afterwards — confirm the two really are one thing (get_object on both) before calling. Refuses a cross-class pair. Requires write access to the memory.

NameTypeReqDescription
loser_id–––
loser_name–––
memorystringyes–
winner_idintegeryes–

Structured output declared, but exposes no named fields.

No examples provided.

propose_action ~213

Queue ONE action for HUMAN APPROVAL — nothing is sent or written until a memory owner approves it in the Agents tab. The kind that makes this powerful from an AI client: `workspace_write` creates a record in the memory's own apps once approved — an issue on the Agile board, a support ticket, a CRM deal, a note. Fields: target=record title, body=record body, extra.class_name=the app class (issue/ticket/deal/note/…), extra.properties=a {property: value} object, extra.relationships=[{type, target_name}]. Outbound kinds (jira_comment, slack_message, gmail_send, …) address connected external tools; see the API's action registry for their fields. `memory` is the slug. Requires write scope.

NameTypeReqDescription
body–––
extra–––
kindstringyes–
memorystringyes–
target–––

Structured output declared, but exposes no named fields.

No examples provided.

remove_owner ~62

Drop an ownership row by (object, owner). Idempotent — `removed=false` when the pair wasn't linked. Requires write scope.

NameTypeReqDescription
memorystringyes–
object_idintegeryes–
owner_object_idintegeryes–

Structured output declared, but exposes no named fields.

No examples provided.

resolve_names ~162

Ask which of your candidate names already exist in the memory — call ONCE per document during extraction, after drafting candidate entities and before emitting the final JSON. `items` = [{"kind": "object"|"class", "name": "...", "class_name": "..."?}, ...] (max 200). Each result carries `exact` (case-insensitive name hits) and `matches` (spelling/semantic look-alikes with scores). REUSE a returned canonical `name` + its class instead of creating a duplicate; only names with no hits should be created new. Read-only.

NameTypeReqDescription
itemsarrayyes–
memorystringyes–
top_kinteger––

Structured output declared, but exposes no named fields.

No examples provided.

semantic_search ~172

Semantic search over a memory's classes and objects. `memory` is the slug from list_my_memories. `kind` = 'class' | 'object' | omit. Check `status` and defer on 'unapproved'. `expand=1` inlines each top object hit's FIRST RING — properties plus relationship groups with counts and member previews — so you learn what a hit is and what it touches without a get_object per hit. Prefer expand=1 whenever you intend to follow relationships; for reach beyond one ring, use get_paths instead of hopping get_object calls.

NameTypeReqDescription
expandinteger––
kind–––
memorystringyes–
querystringyes–
top_kinteger––

Structured output declared, but exposes no named fields.

No examples provided.

set_owner ~74

Set ownership directly (status='approved'). `role` is 'primary' (demotes any existing approved primary to secondary) or 'secondary'. Requires write scope.

NameTypeReqDescription
memorystringyes–
object_idintegeryes–
owner_object_idintegeryes–
rolestring––

Structured output declared, but exposes no named fields.

No examples provided.

submit_extraction_from_llm ~179

Save the extraction you produced — the LAST step after get_extraction_prompt and your single resolve_names call. `memory` is the slug. `results` maps each pass `key` to that pass's JSON, e.g. {"classes": {...}, "objects": {...}}. `source_doc` is an optional label (filename/title) for provenance. New rows land status='unapproved'. The response may carry `validation_errors` (rows the server could not place — report them to the user instead of ignoring them) and `near_duplicates` (new objects that look like an existing one — review with the user and fold confirmed pairs with merge_objects).

NameTypeReqDescription
memorystringyes–
resultsobjectyes–
source_doc–––

Structured output declared, but exposes no named fields.

No examples provided.

suggest_owner ~80

File an ownership SUGGESTION (status='unapproved') for review instead of writing it directly. Idempotent and sticky. Requires write scope.

NameTypeReqDescription
memorystringyes–
object_idintegeryes–
owner_object_idintegeryes–
rolestring––
suggestion_sourcestring––

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the Ontonym MCP server?

Ontonym is an MCP server listed in the public MCP registry as com.ontonym/memory. Give your agents your team's real data, read the shared graph, propose actions your team approves. This page covers its hosted endpoint (https://mcp.ontonym.com/mcp).

Is the Ontonym MCP server safe to use?

Ontonym scores 38 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 Ontonym MCP server expose?

Ontonym exposes 22 tools: list_my_memories, semantic_search, get_paths, resolve_names, list_classes, and 17 more. Their descriptions and schemas cost roughly 2,236 tokens of context every time the server is loaded.

Does the Ontonym MCP server require authentication?

Yes. Ontonym 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 Ontonym MCP server still maintained?

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