unisafe LP insight
Read-only Uniswap v4 LP manager data: position history, fees, operators, best pool. No keys.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"insight": {
"url": "https://unisafe.envelop.is/mcp"
}
}
}远程端点
https://unisafe.envelop.is/mcpstreamable-http它能做什么
工具清单
工具(4)
🟢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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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#"
}社区
证据