unisafe LP insight

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

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~907Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (0.71% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "insight": {
      "url": "https://unisafe.envelop.is/mcp"
    }
  }
}

Remote endpoints

https://unisafe.envelop.is/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_position_history(chainId, manager, salt)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "chainId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EVM chain id, e.g. 42161 for Arbitrum One"
    },
    "manager": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Manager NFT contract address"
    },
    "salt": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{64}$",
      "description": "Position key"
    }
  },
  "required": [
    "chainId",
    "manager"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_operators(chainId, manager)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "chainId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EVM chain id, e.g. 42161 for Arbitrum One"
    },
    "manager": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Manager NFT contract address"
    }
  },
  "required": [
    "chainId",
    "manager"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢rank_pools(chainId, manager)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "chainId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EVM chain id, e.g. 42161 for Arbitrum One"
    },
    "manager": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Manager NFT contract address"
    }
  },
  "required": [
    "chainId",
    "manager"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢suggest_move(chainId, manager, salt, minGainPct)

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. 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.

Input Schema

{
  "type": "object",
  "properties": {
    "chainId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "EVM chain id, e.g. 42161 for Arbitrum One"
    },
    "manager": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "Manager NFT contract address"
    },
    "salt": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{64}$",
      "description": "Position key"
    },
    "minGainPct": {
      "description": "Minimum APR advantage, in percentage points, before moving is suggested. Default 1.",
      "type": "number",
      "minimum": 0
    }
  },
  "required": [
    "chainId",
    "manager",
    "salt"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools