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.
4 tools: 2 change things and 2 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things2Claude Code: ask: see these tools
- Only reads2Claude Code: allow: see these tools
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/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnsuggest_move
The server marks "suggest_move" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "suggest_move" says "move": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "suggest_move" says "move": a word for a change.
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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.