Skip to main content
Glama

Base MCP Server

License: MIT Built for Base

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

get_wallet_balance

ETH balance of an address

get_recent_transactions

Most recent transactions for an address

get_wallet_activity

0-100 heuristic on-chain activity score

check_contract_verification

Source verification, proxy status, owner status

check_rugpull_risk

0-100 heuristic scam-pattern risk score

check_token_approvals

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

2. Install

git clone https://github.com/YOUR_USER/base-mcp-server.git
cd base-mcp-server
pip install -r requirements.txt

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

Any 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 like owner() and allowance() 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 tools
check_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 6 tool updatesv0.1.0
    • First observedcheck_contract_verification
    • First observedcheck_rugpull_risk
    • First observedcheck_token_approvals
    • First observedget_recent_transactions
    • First observedget_wallet_activity
    • First observedget_wallet_balance

TDQS

A4.3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A read-only MCP server connecting AI agents to MTRKR wallet intelligence on MegaETH, enabling wallet portfolio, DeFi positions, security scanning, and transaction analytics.
    14
    20
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI-driven on-chain interactions with the Zora Protocol on Base, supporting token queries, swaps, and transfers via natural language.
    19
    2
    MIT

Latest Blog Posts

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