Skip to content

Hashgrid DNA

by hashgrid.ai · remote · no sign-in to list tools · v1.1.0 · published by ai.hashgrid

A search engine that learns from feedback, over embeddings: one tool per API route.

Deletes · 2Changes · 5

12 tools: 2 can delete or cancel things, 5 change things and 5 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http dna https://dna.hashgrid.ai/mcp --header 'Authorization: <your-authorization>'

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

12 tools

Deletes or cancels 2Claude Code: deny
  • delete_edgeDELETE /nodes/{nid}/edges/{eid}: forget a result, so it can be suggested again; its score no longer trains.No findings

    Why it is in this group

    • The name "delete_edge" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    DELETE /nodes/{nid}/edges/{eid}: forget a result, so it can be suggested again; its score no longer trains.
  • delete_nodeDELETE /nodes/{nid}: delete a node and every edge from or to it; its scores no longer train.No findings

    Why it is in this group

    • The name "delete_node" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    DELETE /nodes/{nid}: delete a node and every edge from or to it; its scores no longer train.
Changes things 5Claude Code: ask
  • create_edgePOST /nodes/{nid}/edges, the search: from query node `nid`, the best node it has not been shown yet, among those whose key starts with `prefix` ("" for any), stored as a new edge: …No findings

    Why it is in this group

    • The name "create_edge" says "create": a word for a change.
    Description, as the server wrote it
    POST /nodes/{nid}/edges, the search: from query node `nid`, the best node it has not been shown yet, among those whose key starts with `prefix` ("" for any), stored as a new edge: `id` is the found node's id, `score` is null until you score it (update_edge). Null when nothing is left. Call again for the next.
  • create_nodePOST /nodes: add a node.No findings

    Why it is in this group

    • The name "create_node" says "create": a word for a change.
    Description, as the server wrote it
    POST /nodes: add a node. An item gets a `key`, a path unique in the grid (e.g. "/items/42"), so searches can find it; a query gets none. `emb` is its embedding, 1 to 2048 floats from any model; use one model per grid. Returns its id and key (not its emb, to keep replies short; get_node has it).
  • put_edgePUT /nodes/{nid}/edges/{eid}: score how well node `eid` fits query `nid`, from -1 (wrong) to 1 (perfect), creating the edge if DNA never suggested it, e.g.No findings

    Why it is in this group

    • The name "put_edge" says "put": a word for a change.
    Description, as the server wrote it
    PUT /nodes/{nid}/edges/{eid}: score how well node `eid` fits query `nid`, from -1 (wrong) to 1 (perfect), creating the edge if DNA never suggested it, e.g. scores you already have. Only scores train DNA; a new score replaces the last.
  • update_edgePATCH /nodes/{nid}/edges/{eid}: score a result of query `nid` that create_edge returned, from -1 (wrong) to 1 (perfect).No findings

    Why it is in this group

    • The name "update_edge" says "update": a word for a change.
    Description, as the server wrote it
    PATCH /nodes/{nid}/edges/{eid}: score a result of query `nid` that create_edge returned, from -1 (wrong) to 1 (perfect). Only scores train DNA; a new score replaces the last.
  • update_nodePATCH /nodes/{nid}: change a node.No findings

    Why it is in this group

    • The name "update_node" says "update": a word for a change.
    Description, as the server wrote it
    PATCH /nodes/{nid}: change a node. `key`: a new path, or null to remove it, so the node can no longer be found; leave it out to keep it. `emb`: a new embedding; leave it out to keep it. Its scores keep training, on the new embedding. Returns its id and key.
Only reads 5Claude Code: allow
  • get_edgeGET /nodes/{nid}/edges/{eid}: one result of query `nid`, and its score (null if not scored).No findings

    Why it is in this group

    • The name "get_edge" says "get": a word for reading.
    Description, as the server wrote it
    GET /nodes/{nid}/edges/{eid}: one result of query `nid`, and its score (null if not scored).
  • get_gridGET /: the grid the API key opens, by name.No findings

    Why it is in this group

    • The name "get_grid" says "get": a word for reading.
    Description, as the server wrote it
    GET /: the grid the API key opens, by name.
  • get_nodeGET /nodes/{nid}: a node, with its key (null if it has none) and its embedding `emb`.No findings

    Why it is in this group

    • The name "get_node" says "get": a word for reading.
    Description, as the server wrote it
    GET /nodes/{nid}: a node, with its key (null if it has none) and its embedding `emb`.
  • list_edgesGET /nodes/{nid}/edges: a query's results so far, each an edge with the found node's `id` and its `score` (null if not scored), in id order.No findings

    Why it is in this group

    • The name "list_edges" says "list": a word for reading.
    Description, as the server wrote it
    GET /nodes/{nid}/edges: a query's results so far, each an edge with the found node's `id` and its `score` (null if not scored), in id order. `limit` is 1 to 1024; for the next page, pass the last id as `cursor`.
  • list_nodesGET /nodes: the grid's nodes, each with its id, key and emb, in id order.No findings

    Why it is in this group

    • The name "list_nodes" says "list": a word for reading.
    Description, as the server wrote it
    GET /nodes: the grid's nodes, each with its id, key and emb, in id order. `limit` is 1 to 1024; for the next page, pass the last id as `cursor`.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http dna https://dna.hashgrid.ai/mcp --header 'Authorization: <your-authorization>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__dna__get_grid",
      "mcp__dna__list_nodes",
      "mcp__dna__get_node",
      "mcp__dna__list_edges",
      "mcp__dna__get_edge"
    ],
    "ask": [
      "mcp__dna__create_node",
      "mcp__dna__update_node",
      "mcp__dna__create_edge",
      "mcp__dna__put_edge",
      "mcp__dna__update_edge"
    ],
    "deny": [
      "mcp__dna__delete_node",
      "mcp__dna__delete_edge"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as dna. Review it before you use it.