Base MCP Server
Click on "Install 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 MCP ServerWhat is the ETH balance of 0xabc...def?"
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 MCP Server
A read-only MCP (Model Context Protocol) server that lets any MCP-compatible AI agent — Claude Desktop, Claude Code, or any other MCP client — inspect wallets and contracts on Base directly through natural conversation, instead of manually looking things up on a block explorer.
This server distills five standalone tools from this collection (a transaction monitor, a contract verifier, an airdrop eligibility checker, a rug-pull risk scorer, and a token approval checker) into one always-available set of MCP tools, backed by the same well-tested Base data logic.
Tools exposed
Tool | What it does |
| ETH balance of an address |
| Most recent transactions for an address |
| 0-100 heuristic on-chain activity score |
| Source verification, proxy status, owner status |
| 0-100 heuristic scam-pattern risk score |
| Active ERC-20/NFT approvals granted by a wallet |
Related MCP server: wallet-inspector-mcp
⚠️ This server is read-only
It never asks for or handles a private key, and cannot send transactions, sign anything, or revoke approvals — every tool only reads public Base blockchain data (via the Blockscout Pro API and Base's public RPC node).
Setup
1. Requirements
Python 3.10+
A free Blockscout Pro API key: https://dev.blockscout.com/ → Login → create a key
2. Install
git clone https://github.com/YOUR_USER/base-mcp-server.git
cd base-mcp-server
pip install -r requirements.txt3. Configure your MCP client
Claude Desktop — edit your claude_desktop_config.json
(Settings → Developer → Edit Config) and add:
{
"mcpServers": {
"base-tools": {
"command": "python",
"args": ["/absolute/path/to/base-mcp-server/server.py"],
"env": {
"BLOCKSCOUT_API_KEY": "your_key_here"
}
}
}
}Claude Code — from the project directory:
claude mcp add base-tools --env BLOCKSCOUT_API_KEY=your_key_here -- python /absolute/path/to/base-mcp-server/server.pyAny other MCP client — point it at python server.py with
BLOCKSCOUT_API_KEY set in its environment; the server speaks
standard MCP over stdio.
Restart your client after editing the config. You should see
base-tools (with its 6 tools) show up as an available MCP server.
4. Try it
Once connected, just ask your agent things like:
"What's the ETH balance of 0x...?"
"Check this Base contract for rug-pull risk: 0x..."
"Does this wallet have any risky unlimited token approvals?"
"Is this contract's source code verified on Base?"
"Show me the last 10 transactions for this address."
The agent will call the relevant tool automatically based on what you ask.
How it works
All tools talk to Base (chainId 8453) through the free, Etherscan-compatible Blockscout Pro API, plus a couple of direct JSON-RPC calls to Base's official public node (
mainnet.base.org) for on-chain reads likeowner()andallowance()that are more reliable done directly than through an explorer's compatibility layer.Every tool degrades gracefully: if an API call fails, the tool returns a clear text message explaining that, instead of crashing the whole server or the agent's turn.
The rug-pull risk score and activity score use the exact same heuristics as the standalone Base Rug Pull Early Warning and Base Airdrop Eligibility Checker tools — see those repos for more detail on the scoring logic.
Limitations
Heuristic tools (
check_rugpull_risk,get_wallet_activity) are not a substitute for a real security audit or official program criteria — always verify independently before acting on the results.Transaction and approval scanning samples up to 1,000 recent events for performance; very old activity outside that window won't be reflected.
Depends on the free tiers of the Blockscout Pro API and Base's public RPC node; if either is rate-limited or briefly down, the affected tool will report that instead of returning data.
License
MIT — use it, modify it, fork it freely.
Available Tools
6 toolscheck_contract_verificationA
Check whether a contract on Base has verified source code, and basic metadata.
Reports source verification status, whether it's an upgradeable proxy, and whether ownership has been renounced (for contracts following the standard Ownable pattern).
Args: address: The 0x-prefixed contract address to check.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 discloses the tool returns verification status, proxy information, and ownership renouncement, indicating a read-only operation. However, it does not mention authorization, rate limits, or error behavior.
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 concise with three sentences, front-loaded with the purpose, and includes an Args section for clarity. Every sentence adds value without redundancy.
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 has an output schema, so return values are partially explained in the description (status, proxy, ownership). It covers the main functionality but lacks details on error handling or edge cases. Still, it is complete for a simple check tool.
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 has 0% description coverage, but the description compensates by explaining the 'address' parameter requires a 0x-prefixed contract address. This adds meaningful context beyond the schema's type definition.
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 checks contract verification on Base, listing specific metadata (source verification, upgradeable proxy, ownership renounced). It is distinct from sibling tools which focus on rugpull risk, approvals, transactions, wallet activity, and balances.
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 usage for checking contract verification but provides no explicit guidance on when to use this tool versus alternatives, nor when not to use it. It is adequate but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_rugpull_riskA
Run a heuristic rug-pull risk screen on a Base contract.
Checks source verification, common scam-token code patterns (blacklists, arbitrary fee/limit changes, trading kill-switches, uncapped minting, etc.), ownership status, and proxy/upgradeability. Returns a 0-100 risk score. This is a heuristic tool, NOT a security audit — always verify manually before making decisions involving money.
Args: address: The 0x-prefixed contract address to screen.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the transparency burden. It details what the tool checks (verification, scam code patterns, ownership, upgradeability) and explicitly states it is heuristic and not a security audit. It also mentions the output is a 0-100 risk score, leaving no hidden behaviors.
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 concise yet comprehensive. It opens with a clear statement of purpose, then lists checks and caveats in a structured paragraph, followed by an explicit Args section. Every sentence adds value without redundancy.
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 (one parameter, output schema present), the description covers all necessary aspects: what it does, what it checks, what it returns, and a critical caveat. The output schema handles return format details, so the description is appropriately complete.
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 has 0% coverage (no descriptions for parameters), so the description must add meaning. It clearly explains the 'address' parameter as 'The 0x-prefixed contract address to screen,' adding the required prefix format and usage context far beyond the schema's bare type definition.
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 runs a heuristic rug-pull risk screen on a Base contract and returns a risk score. It lists specific checks (source verification, scam patterns, ownership, proxy/upgradeability), making the purpose unambiguous. It also effectively distinguishes from siblings like check_contract_verification and check_token_approvals.
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 clear usage context: it is a heuristic tool, not a security audit, and advises manual verification before financial decisions. While it does not explicitly state when to avoid using it, the caution and scope (Base contract) offer sufficient guidance. Sibling tools are different enough that confusion is unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_token_approvalsA
Check a wallet's active ERC-20 and NFT token approvals on Base.
Scans historical Approval/ApprovalForAll events, then verifies the CURRENT on-chain state of each unique pair found (an old event doesn't mean the approval is still active — it may have been reduced or revoked since). Flags unlimited approvals as high-risk. This tool is READ-ONLY and cannot revoke anything.
Args: address: The 0x-prefixed wallet address to check.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description details the process (scanning events, verifying current state), warns about old events possibly being outdated, and flags unlimited approvals as high-risk. It also clarifies read-only nature. No annotations provided, but description fully covers behavioral traits.
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?
Description is concise with no wasted words: a short intro, a paragraph on behavior, a note on read-only, and clear Args section. Front-loaded purpose.
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 (one parameter, no output schema needed due to its existence), description covers purpose, behavior, limitations, and risk flags. No gaps identified.
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 0%, but description adds meaning for the only parameter: 'The 0x-prefixed wallet address to check.' This compensates for the lack of schema description.
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?
Description clearly states the tool checks a wallet's active ERC-20 and NFT token approvals on Base, using a specific verb and resource. It distinguishes from sibling tools like check_rugpull_risk or get_wallet_balance.
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?
Description explains the tool scans historical events and verifies current state, and explicitly states it is read-only and cannot revoke. While it doesn't give explicit when-to-use vs. siblings, the context implies its specific use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_transactionsA
Get the most recent transactions for an address on Base.
Args: address: The 0x-prefixed address to check. limit: Maximum number of recent transactions to return (default 10, max 50).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It discloses the limit parameter's default and maximum, and the required address format, but lacks behavioral details such as ordering, pagination, error handling, or whether it is a read-only operation (implied by 'Get').
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 four lines total. The purpose is stated first, followed by parameter details in a clean format. No extra words, every sentence earns its place.
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 presence of an output schema (not shown), the description does not need to detail return values. It specifies the blockchain (Base) and provides necessary parameter info. However, it could mention the order of transactions or any constraints like base mainnet only, but for a simple retrieval tool it is largely complete.
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 description coverage is 0%, but the description compensates by clearly explaining both parameters: address is a 0x-prefixed string, and limit is an integer with default 10 and max 50. This adds valuable context beyond the raw schema.
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?
Description explicitly states that the tool gets recent transactions for a given address on Base. The verb 'Get' and resource 'recent transactions' are clear, and it distinguishes from siblings which cover activities like checking contracts, approvals, and balance.
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?
No explicit guidance on when to use this tool versus alternatives like get_wallet_activity. The description simply states what it does without providing usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_activityA
Compute a rough 0-100 on-chain activity score for a wallet on Base.
Based on transaction count, number of unique active days, contract diversity, and wallet age (all sampled from the most recent 1,000 transactions). This is a heuristic indicator, not an official metric of any airdrop or program.
Args: address: The 0x-prefixed wallet address to check.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral traits: it samples from the most recent 1,000 transactions, is a heuristic indicator, and not an official metric. With no annotations, the description carries full weight and provides sufficient detail about what the tool does and its limitations.
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?
Description is two short paragraphs plus an Args line. It is well-structured, front-loaded with the main purpose, and each sentence adds value (methodology, caveat, parameter). No unnecessary text.
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 presence of an output schema (not shown), the description adequately covers inputs, methodology, and caveats. It explains the scoring basis without needing to describe return values, leaving that to the schema. Sufficient for an agent to understand usage.
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 has 1 parameter 'address' with no description. The description adds 'The 0x-prefixed wallet address to check,' which provides format and purpose beyond the schema, compensating for 0% schema description coverage.
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?
Clearly states it computes a 0-100 on-chain activity score for a wallet on Base. The verb 'compute' and resource 'activity score' are specific. It is distinct from sibling tools like get_wallet_balance or check_rugpull_risk, which address different aspects.
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?
Explains the methodology (transaction count, active days, etc.) and that it's a heuristic, not an official metric. However, it does not explicitly state when to use this tool versus alternatives or when not to use it, limiting guidance on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wallet_balanceA
Get the native ETH balance of a wallet or contract address on Base.
Args: address: The 0x-prefixed address to check.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the read action and the target, but does not mention potential errors, rate limits, or the fact that balance queries are typically safe.
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 sentences and an Args section. Every sentence adds value without redundancy.
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 (one parameter), the description fully covers what it does, the parameter format, and the blockchain. Since an output schema exists, the return format does not need to be described.
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 description adds '0x-prefixed' to the address parameter, which is not in the schema (schema description coverage 0%). This provides useful formatting guidance beyond the schema's minimal 'Address' title.
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 verb 'Get' and the resource 'native ETH balance', specifying the blockchain 'Base'. It effectively distinguishes from sibling tools like 'check_contract_verification' and 'get_recent_transactions'.
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?
No guidance is provided on when to use this tool vs alternatives. While the purpose is clear, there is no mention of scenarios where other tools might be more appropriate.
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. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
check_contract_verification - First observed
check_rugpull_risk - First observed
check_token_approvals - First observed
get_recent_transactions - First observed
get_wallet_activity - First observed
get_wallet_balance
TDQS
Each tool targets a distinct aspect of on-chain data—contract verification, rug-pull risk, token approvals, recent transactions, wallet activity, and balance. There is no functional overlap, making it easy for an agent to select the right tool.
All tool names follow a consistent verb_noun pattern with snake_case (check_* and get_*). The verbs are descriptive and the nouns clearly indicate the resource being acted upon, forming a predictable naming scheme.
With 6 tools, the server is lean and focused on essential on-chain analysis functions for the Base ecosystem. Each tool serves a clear purpose without redundancy or unnecessary features, making the set well-scoped.
The tool set covers key queries for contract safety and wallet activity, but lacks tools for fetching specific transaction details or token metadata. These are minor gaps that agents can work around, but the core use cases are addressed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.
51Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.
OpenAI-compatible LLM MCP (7 tools); chat via balance key or x402 USDC on Base
MCP server for AI agents to discover campaigns by humans and donate USDC directly on Base.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that enables LLMs to perform blockchain operations on the Base network through natural language commands, including wallet management, balance checking, and transaction execution.4273MIT
- AlicenseAqualityDmaintenanceAn MCP server that empowers AI agents to inspect any wallet’s balance and onchain activity across major EVM chains and Solana chain.39MIT
- AlicenseAqualityDmaintenanceA read-only MCP server connecting AI agents to MTRKR wallet intelligence on MegaETH, enabling wallet portfolio, DeFi positions, security scanning, and transaction analytics.14204MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI-driven on-chain interactions with the Zora Protocol on Base, supporting token queries, swaps, and transfers via natural language.192MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/khlndaaa/base-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server