Base MCP Server

Official
by base

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Allows interaction with Coinbase API for retrieving wallet addresses, listing balances, transferring funds, onramping funds, and managing ERC20 tokens

  • Enables deployment of smart contracts written in Solidity to the Base Network blockchain

基础 MCP 服务器

模型上下文协议 (MCP) 服务器为 Claude Desktop 和 Cursor 等 AI 应用程序提供链上工具,允许它们与 Base Network 和 Coinbase API 进行交互。

概述

该 MCP 服务器通过提供在 Base 上执行任何操作的工具来扩展任何 MCP 客户端的功能:

  • 检索钱包地址
  • 列出钱包余额
  • 在钱包之间转移资金
  • 部署智能合约
  • 与 Morpho 保险库互动,实现链上借贷
  • 调用合约函数
  • 通过Coinbase进行 Onramp 融资
  • 管理 ERC20 代币
  • 列出并转移 NFT(ERC721 和 ERC1155)
  • 使用 USDC 购买OpenRouter积分

服务器与 Base 交互,由 Base Developer Tools 和AgentKit提供支持。

使用第三方协议、工具和数据源扩展基础 MCP

Base MCP 的设计具有可扩展性,允许您添加自己的第三方协议、工具和数据源。本节概述了如何扩展 Base MCP 服务器的新功能。

添加新工具

如果您想向 Base MCP 服务器添加新工具,请按照以下步骤操作:

  1. src/tools目录中为你的工具创建一个新目录
  2. 按照现有模式实现该工具:
    • index.ts :定义并导出你的工具
    • schemas.ts :定义工具的输入模式
    • handlers.ts :实现工具的功能
  3. 将您的工具添加到src/tools/index.ts中的可用工具列表中
  4. 在 README.md 中添加工具文档
  5. 在 examples.md 中添加如何使用工具的示例
  6. 为您的工具编写测试

项目结构

Base MCP 服务器的工具结构如下:

src/ ├── tools/ │ ├── index.ts (exports toolsets) │ ├── [TOOL_NAME]/ <-------------------------- ADD DIR HERE │ │ ├── index.ts (defines and exports tools) │ │ ├── schemas.ts (defines input schema) │ │ └── handlers.ts (implements tool functionality) │ └── utils/ (shared tool utilities)

工具开发的最佳实践

为 Base MCP 开发新工具时:

  • 遵循现有的代码风格和模式
  • 确保您的工具具有明确、集中的用途
  • 提供全面的输入验证
  • 包括详细的错误处理
  • 撰写详尽的文档
  • 添加示例来演示如何使用您的工具
  • 包括工具的测试

有关对 Base MCP 做出贡献的更多详细信息,包括添加新工具和协议,请参阅CONTRIBUTING.md文件。

先决条件

  • Node.js(v16 或更高版本)
  • npm 或 yarn
  • Coinbase API 凭证(API 密钥名称和私钥)
  • 钱包种子短语
  • Coinbase 项目 ID(用于 onramp 功能)
  • Alchemy API 密钥(NFT 功能所需)
  • 可选:OpenRouter API 密钥(用于购买 OpenRouter 积分)

安装

选项 1:从 npm 安装(推荐)

# Install globally npm install -g base-mcp # Or install locally in your project npm install base-mcp

安装软件包后,您可以使用以下命令配置客户端:

base-mcp --init

选项 2:从源安装

  1. 克隆此存储库:
    git clone https://github.com/base/base-mcp.git cd base-mcp
  2. 安装依赖项:
    npm install
  3. 构建项目:
    npm run build
  4. 或者,将其全局链接:
    npm link

配置

使用您的凭证创建一个.env文件:

# Coinbase API credentials # You can obtain these from the Coinbase Developer Portal: https://cdp.coinbase.com/ COINBASE_API_KEY_NAME=your_api_key_name COINBASE_API_PRIVATE_KEY=your_private_key # Wallet seed phrase (12 or 24 words) # This is the mnemonic phrase for your wallet SEED_PHRASE=your seed phrase here # Coinbase Project ID (for onramp functionality) # You can obtain this from the Coinbase Developer Portal COINBASE_PROJECT_ID=your_project_id # Alchemy API Key (required for NFT functionality) # You can obtain this from https://alchemy.com ALCHEMY_API_KEY=your_alchemy_api_key # OpenRouter API Key (optional for buying OpenRouter credits) # You can obtain this from https://openrouter.ai/keys OPENROUTER_API_KEY=your_openrouter_api_key # Chain ID (optional for Base Sepolia testnet) # Use 84532 for Base Sepolia testnet # You do not have to include this if you want to use Base Mainnet CHAIN_ID=your_chain_id

测试

测试 MCP 服务器以验证其是否正常工作:

npm test

该脚本将通过测试连接和可用工具来验证您的 MCP 服务器是否正常工作。

示例

有关如何通过 Claude 与 Base MCP 工具交互的详细示例,请参阅examples.md文件。

与 Claude Desktop 集成

要将此 MCP 服务器添加到 Claude Desktop:

  1. 创建或编辑 Claude Desktop 配置文件:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json

您可以通过 Claude Desktop 应用程序导航至 Claude > 设置 > 开发人员 > 编辑配置轻松访问此文件。

  1. 添加以下配置:
    { "mcpServers": { "base-mcp": { "command": "npx", "args": ["-y", "base-mcp@latest"], "env": { "COINBASE_API_KEY_NAME": "your_api_key_name", "COINBASE_API_PRIVATE_KEY": "your_private_key", "SEED_PHRASE": "your seed phrase here", "COINBASE_PROJECT_ID": "your_project_id", "ALCHEMY_API_KEY": "your_alchemy_api_key", "PINATA_JWT": "your_pinata_jwt", "OPENROUTER_API_KEY": "your_openrouter_api_key", "CHAIN_ID": "optional_for_base_sepolia_testnet" }, "disabled": false, "autoApprove": [] } } }
  2. 重新启动 Claude Desktop 以使更改生效。

可用工具

获取地址

检索您的钱包的地址。

对 Claude 的查询示例:

“我的钱包地址是什么?”

清单余额

列出您的钱包的所有余额。

对 Claude 的查询示例:

“显示我的钱包余额。”

转移资金

将资金从您的钱包转移到另一个地址。

参数:

  • destination :资金转账的地址
  • assetId :要转移的资产ID
  • amount :转账金额

对 Claude 的查询示例:

“将 0.01 ETH 转移到 0x1234567890abcdef1234567890abcdef12345678。”

部署合约

将智能合约部署到区块链。

参数:

  • constructorArgs :合约构造函数的参数
  • contractName :要部署的合约名称
  • solidityInputJson :包含合约源和设置的 Solidity 编译器的 JSON 输入
  • solidityVersion :solidity 编译器的版本

对 Claude 的查询示例:

“为我部署一个简单的 ERC20 代币合约。”

检查地址信誉

检查地址的信誉。

参数:

  • address :需要检查的以太坊地址

对 Claude 的查询示例:

“0x1234567890abcdef1234567890abcdef12345678 的声誉如何?”

获取形态库

获取 Morpho 上给定资产的保险库。

参数:

  • assetSymbol :用于筛选保险库的资产符号(可选)

对 Claude 的查询示例:

“向我展示可用于 USDC 的 Morpho 金库。”

调用合约

调用区块链上的合约函数。

参数:

  • contractAddress :要调用的合约地址
  • functionName :要调用的函数的名称
  • functionArgs :传递给函数的参数
  • abi :合约的 ABI
  • value :随交易发送的 ETH 价值(可选)

对 Claude 的查询示例:

“在 0x1234567890abcdef1234567890abcdef12345678 处调用合约上的 balanceOf 函数。”

获取上线资产

获取特定国家/地区/细分市场中可用的资产。

参数:

  • country :ISO 3166-1 两位数国家代码字符串,代表购买用户居住的国家/地区
  • subdivision :ISO 3166-2 两位数国家细分代码(美国必需)

对 Claude 的查询示例:

“我可以在美国,特别是在纽约投资哪些资产?”

入口匝道

获取通过 Coinbase 注入资金的 URL。

参数:

  • amountUsd :需要入场的资金量
  • assetId :要进入的资产 ID

对 Claude 的查询示例:

“我想获得价值 100 美元的 ETH。”

erc20_balance

获取 ERC20 代币的余额。

参数:

  • contractAddress :ERC20 合约的地址

对 Claude 的查询示例:

“我的 0x1234567890abcdef1234567890abcdef12345678 代币余额是多少?”

erc20_transfer

将 ERC20 代币转移到另一个地址。

参数:

  • contractAddress :ERC20 合约的地址
  • toAddress :收件人的地址
  • amount :要转移的代币数量

对 Claude 的查询示例:

“将 10 USDC 转移到 0x1234567890abcdef1234567890abcdef12345678。”

列表_nfts

列出特定地址拥有的 NFT。

参数:

  • ownerAddress :要上架 NFT 的所有者的地址
  • limit :返回的 NFT 的最大数量(默认值:50)

对 Claude 的查询示例:

“向我显示 0x89A93a48C6Ef8085B9d07e46AaA96DFDeC717040 拥有的 NFT。”

转移_nft

将 NFT 转移到另一个地址。支持 ERC721 和 ERC1155 标准。

参数:

  • contractAddress :NFT 合约的地址
  • tokenId :要转移的 NFT 的代币 ID
  • toAddress :收件人的地址
  • amount :转账金额(仅用于 ERC1155,默认值:1)

对 Claude 的查询示例:

“将我的合约编号为 0x3F06FcF75f45F1bb61D56D68fA7b3F32763AA15c、代币 ID 为 56090175025510453004781233574040052668718235229192064098345825090519343038548 的 NFT 转移到 0x1234567890abcdef1234567890abcdef12345678。”

购买 openrouter 积分

使用 USDC 购买 OpenRouter 信用。

参数:

  • amountUsd :购买的信用额度(美元)

对 Claude 的查询示例:

“购买价值 20 美元的 OpenRouter 积分。”

安全注意事项

  • 配置文件包含敏感信息(API 密钥和种子短语)。请确保妥善保护这些信息,切勿将其共享。
  • 考虑使用环境变量或安全凭证管理器,而不是硬编码敏感信息。
  • 转移资金或部署合约时要小心谨慎,因为这些操作在区块链上是不可逆的。
  • 使用 onramp 功能时,请确保您处于安全连接中。
  • 确认之前请验证所有交易细节,尤其是在转账或购买信用时。

故障排除

如果您遇到问题:

  1. 检查您的 Coinbase API 凭证是否正确
  2. 验证你的种子短语是否有效
  3. 确保您在正确的网络上(基本主网)
  4. 检查 Claude Desktop 日志中是否有任何错误消息

执照

MIT 许可证

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

有关对 Base MCP 做出贡献的详细指南,包括:

  • 报告错误
  • 建议改进
  • 开发设置
  • 编码标准
  • 添加新工具、协议和数据源(另请参阅上面的“扩展基础 MCP”部分)
  • 测试要求
  • 文档标准

请参阅我们全面的CONTRIBUTING.md指南。

基本贡献步骤:

  1. 分叉存储库
  2. 创建你的功能分支( git checkout -b feature/amazing-feature
  3. 提交您的更改( git commit -m 'Add some amazing feature'
  4. 推送到分支( git push origin feature/amazing-feature
  5. 打开拉取请求

请确保您的代码遵循现有风格并包含适当的测试。

ID: s37x9aoxum