base-lp-locker-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@base-lp-locker-mcplock 1000 LP tokens for 90 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
base-lp-locker-mcp
An MCP server for AI agents to lock, manage, and withdraw LP tokens on Base. Trustless liquidity locking with time-based unlock.
Install
npx -y base-lp-locker-mcpRelated MCP server: baselings-mcp
Tools
Tool | Description |
| Lock LP tokens for a specified duration (handles approval automatically) |
| Get lock details by lock ID |
| Get all locks for a wallet address |
| Get contract info, fees, and total locks |
| Withdraw LP tokens after lock expires |
| Extend a lock's duration |
Setup
{
"mcpServers": {
"base-lp-locker": {
"command": "npx",
"args": ["-y", "base-lp-locker-mcp"],
"env": {
"DEPLOYER_PRIVATE_KEY": "your-private-key"
}
}
}
}Use Cases
Rug-proof launches: Lock LP tokens to prove liquidity is safe
Vesting: Time-lock LP positions for team or investor allocations
Trust: Show holders that liquidity cannot be pulled
Extend: Add more time to existing locks without withdrawing
Fees
Lock fee: 0.001 ETH per lock — goes to platform treasury
Gas: ~150k gas per lock, ~80k per withdraw/extend
Contract
LPLocker:
0x32049c5B3E107737B8D00346C2241f9F21e9a154(Base mainnet)Verified on Basescan: View contract
License
MIT
Available Tools
6 toolsextend_lockA
Extend the duration of an existing LP lock. Only the lock owner can extend. Requires DEPLOYER_PRIVATE_KEY env var.
| Name | Required | Description | Default |
|---|---|---|---|
| lock_id | Yes | The lock ID to extend | |
| additional_days | Yes | Number of additional days to add to the lock duration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses important behavioral constraints (owner-only, env var requirement) but omits potential side effects, failure conditions (e.g., expired lock, invalid ID), or return behavior. This is adequate but incomplete for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two short sentences that front-load the core action and then add essential constraints. There is no filler or redundant information, making it highly efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter schema and absence of output schema, the description provides enough context for an agent to understand what the tool does and its prerequisites. It stops short of explaining return values or error behavior, but for this simple mutation that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for both parameters (lock_id and additional_days) with clear descriptions. The tool description adds no extra semantic meaning beyond what the schema offers, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Extend the duration of an existing LP lock.' It is easily distinguished from sibling tools such as lock_lp (create) and withdraw_lp (remove), making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use the tool—on an existing lock to add days—and includes prerequisites like ownership and the DEPLOYER_PRIVATE_KEY env var. However, it does not explicitly mention alternatives or exclusions, though these are implied by the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lockA
Get details of a specific LP lock by its lock ID. Returns owner, token, amount, unlock time, and status.
| Name | Required | Description | Default |
|---|---|---|---|
| lock_id | Yes | The lock ID to query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries full burden. It discloses the return fields (owner, token, amount, unlock time, status) but doesn't explicitly state that it's a read-only operation or describe behavior when the lock ID doesn't exist. It does add some behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of nine words plus a second sentence listing return fields. It is front-loaded and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one parameter, the description is adequate. It specifies the resource and return fields. However, it lacks information about error handling or not-found responses, and there is no output schema to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with lock_id described as 'The lock ID to query'. The description repeats the concept but doesn't add additional semantics like format or validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves details of a specific LP lock by its ID, listing the returned fields. This distinguishes it from sibling tools like get_user_locks (which lists locks for a user) and get_locker_info (which gets locker-level info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when you have a lock ID and need its details, but it doesn't explicitly state when not to use alternatives or mention alternatives like get_user_locks for listing all locks. It gives clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_locker_infoA
Get LPLocker contract info — current fee, total locks, treasury address. Use to verify the contract is live and check fees before locking.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It discloses what data is returned (fee, total locks, treasury address) and implies a read-only, non-mutating operation. However, it does not explicitly state that it has no side effects, what happens if the contract is not live, or any error conditions. This is adequate for a simple info-getter but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose and followed by usage guidance. Every word earns its place—no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema), the description is fairly complete: it states what the tool does, what data it returns, and when to use it. It does not describe return types or error handling, but for a no-param read-only contract info getter, this is sufficient. The absence of an output schema is partially mitigated by listing the returned fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters and the schema is empty with 100% coverage. The description does not need to explain parameters. The baseline for 0 params is 4, and no additional parameter information is necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get LPLocker contract info — current fee, total locks, treasury address.' It uses a specific verb ('Get') and resource ('LPLocker contract info'), and the list of returned data distinguishes it from siblings like lock_lp or get_lock, which handle individual locks or actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Use to verify the contract is live and check fees before locking.' This gives a clear when-to-use scenario, though it does not explicitly mention alternatives or exclusions. Since the sibling tools are obviously different (locking, withdrawal, extending), the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_locksA
Get all lock IDs for a given wallet address. Returns an array of lock IDs that can be queried individually with get_lock.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Wallet address to query locks for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly indicates a read-only operation via 'Get' and states the return type ('an array of lock IDs'), which implies no side effects. It also briefly explains the relationship to get_lock. While it does not mention error handling or empty results, the description provides sufficient transparency for a simple query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, followed by a useful note about the return value and how to use it. Every sentence contributes to understanding, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema) and the sibling tools, the description is complete. It explains what the tool returns and how to follow up with get_lock, covering all essential aspects for an agent to use it correctly and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter 'address' with 'Wallet address to query locks for.' The description does not add additional meaning beyond rephrasing 'given wallet address.' Since schema coverage is 100%, the baseline applies, and the description offers no extra semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Get all lock IDs for a given wallet address.' It also distinguishes itself from the sibling tool get_lock by noting that the returned IDs can be queried individually with get_lock, which clarifies its role as a list/query tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: this tool fetches all lock IDs for a wallet address, and then mentions that individual locks can be queried with get_lock. This provides a workflow hint and implicitly contrasts with get_lock. However, it does not explicitly mention when to use this over other siblings like get_locker_info, though the distinction is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lock_lpA
Lock LP tokens in the LPLocker contract on Base. Handles ERC-20 approval automatically. Requires DEPLOYER_PRIVATE_KEY env var. Fee: 0.001 ETH per lock.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | LP token contract address to lock | |
| amount | Yes | Amount of LP tokens to lock (human-readable, e.g. '1000') | |
| duration_days | Yes | Lock duration in days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and covers important behaviors: automatic ERC-20 approval, required DEPLOYER_PRIVATE_KEY, and a fee of 0.001 ETH. It does not mention return values or reversibility, but the disclosed operational details are relevant and useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences each deliver distinct value: purpose, handling/requirements, and cost. The description is front-loaded with the action and stays under 30 words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool without an output schema, the description provides sufficient context: what, where, prerequisites, and cost. It does not explain post-lock verification or edge cases, but these are not critical given the tool's simplicity and sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter (token address, amount, duration). The description adds no additional parameter-level meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lock LP tokens'), the target resource ('LPLocker contract on Base'), and distinguishes itself from sibling tools like withdraw_lp and extend_lock by focusing on the locking operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context is provided: it says this handles approval automatically, requires a specific env var, and costs a fee. However, it does not explicitly mention when not to use it or contrast with alternatives, so it lacks full explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
withdraw_lpA
Withdraw LP tokens from an expired lock. Only the lock owner can withdraw. Requires DEPLOYER_PRIVATE_KEY env var.
| Name | Required | Description | Default |
|---|---|---|---|
| lock_id | Yes | The lock ID to withdraw from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behavioral traits: ownership restriction, env var requirement, and the 'expired lock' precondition. It does not detail post-withdrawal effects or return behavior, but the essential safety and authorization context is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, information-dense sentences. The main action leads, followed by two critical constraints. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with a single parameter, and the description covers the necessary operational context (who, when, what). Without an output schema, a return-type note would be useful, but overall the description is sufficiently complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the only parameter (lock_id) with 100% coverage. The description adds no extra parameter-level detail, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Withdraw LP tokens from an expired lock') with a specific verb and resource, distinctly differentiating it from sibling tools like lock_lp and extend_lock.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context: only for expired locks, only the owner can withdraw, and a required env var. It does not explicitly name alternatives or exclusion scenarios, but the conditions are precise.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.0.0- First observed
extend_lock - First observed
get_lock - First observed
get_locker_info - First observed
get_user_locks - First observed
lock_lp - First observed
withdraw_lp
TDQS
Scored across 6 tools
Each tool has a distinct purpose: locking, querying specific locks, listing user locks, checking contract info, withdrawing, and extending. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case (lock_lp, get_lock, get_user_locks, get_locker_info, withdraw_lp, extend_lock).
Six tools is well-scoped for an LP locker management server, covering core actions without unnecessary bloat.
The surface covers the full LP lock lifecycle: create (lock), read (get_lock, get_user_locks, get_locker_info), update (extend_lock), and delete/terminal action (withdraw_lp). No significant gaps.
Maintenance
Related MCP Connectors
Non-custodial USDC yield vaults on Base mainnet with 9 MCP tools for AI agent treasury.
MCP server for AI agents to discover campaigns by humans and donate USDC directly on Base.
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
HiveCapital MCP Server — autonomous investment layer for AI agents
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceAn MCP server for AI agents to automate token swaps on Uniswap DEX across multiple blockchains.5 npm39MIT
- AlicenseBqualityCmaintenanceMCP server for AI agents to play Baselings, a yield-generating pet game on Base chain. Enables agents to manage workers, claim yields, and execute strategies to earn USDC, ETH, or BTC.4911 npmMIT
- AlicenseAqualityDmaintenanceAn MCP server that provides AI agents with real-time access to DEX liquidity pool data, enabling smarter trading, analytics, and automated strategies.101MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives AI agents real-time access to DeFi across multiple chains, enabling non-custodial crypto trading, portfolio queries, and transaction execution.5 npm7MIT