Skip to content

unisafe LP insight

by unisafe.envelop.is · remote · no sign-in to list tools · v0.4.0 · published by is.envelop.unisafe

Read-only Uniswap v4 LP manager data: position history, fees, operators, best pool. No keys.

Changes · 2

4 tools: 2 change things and 2 only read.

Scanned Oct 21, 2026

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

claude mcp add --transport http insight https://unisafe.envelop.is/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "suggest_move" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "suggest_move" says "move": a word for a change.

    What this check looks for

Tools

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

4 tools

Changes things 2Claude Code: ask
  • rank_poolsFee APR over the last complete day for each pool this manager is configured with, best first.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Fee APR over the last complete day for each pool this manager is configured with, best first. Only the manager's own pools are candidates: a move can target a pool only if the owner fixed it into the set when the manager was created. Pools that could not be scored are listed separately with the reason — a pool missing from the ranking is not a bad pool.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • suggest_moveCompares the position's current pool against the rest of the manager's set and, when the gap is worth it, returns the numbers for a move: destination pool, ticks, and how much liqu…1 finding

    Why it is in this group

    • The name "suggest_move" says "move": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "suggest_move" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "suggest_move" says "move": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Compares the position's current pool against the rest of the manager's set and, when the gap is worth it, returns the numbers for a move: destination pool, ticks, and how much liquidity. A pool sharing no currency with the position is suggested only when the manager (v2.2) can bridge to it through another of its own pools; the answer then names that bridge. It returns NUMBERS, never calldata — pass them to the local envelop-mcp-lp server's propose_move, which re-derives each one against chain state and puts it through the policy and the price-oracle guard before anything is signed. The full ranking and the caveats come back with every answer so the suggestion can be disagreed with.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
Only reads 2Claude Code: allow
  • get_position_historyEvery position of a manager, or one position by salt: when it opened, its pool, its lifetime fees and its events.No findings

    Why it is in this group

    • The name "get_position_history" says "get": a word for reading.
    Description, as the server wrote it
    Every position of a manager, or one position by salt: when it opened, its pool, its lifetime fees and its events. Answered from the index, falling back to the Envelop history API and then to a log scan; the answer says which one served it and how current that source is.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • list_operatorsAddresses currently authorised to rebalance a manager's positions.No findings

    Why it is in this group

    • The name "list_operators" says "list": a word for reading.
    Description, as the server wrote it
    Addresses currently authorised to rebalance a manager's positions. They can never withdraw — that is enforced by the contract. On the scan path the answer may be `partial`, which means a revoked operator could still be listed; from the index it never is.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true

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 0.4.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http insight https://unisafe.envelop.is/mcp

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__insight__get_position_history",
      "mcp__insight__list_operators"
    ],
    "ask": [
      "mcp__insight__rank_pools",
      "mcp__insight__suggest_move"
    ],
    "deny": []
  }
}

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 insight. Review it before you use it.