Base MCP Server

Base MCP Server

为 Claude AI 提供链上工具,使其能够与 Base 区块链和 Coinbase API 交互,从而实现钱包管理、资金转移和智能合约部署。

远程shell执行
AI集成系统
访问服务器

README

Base MCP 服务器 🔵

OpenRouter 集成

npm 版本 License: MIT

一个模型上下文协议 (MCP) 服务器,为 AI 应用(如 Claude Desktop 和 Cursor)提供链上工具,允许它们与 Base 网络和 Coinbase API 交互。

概述

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

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

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

使用 3P 协议、工具和数据源扩展 Base 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 (导出工具集)
│   ├── [TOOL_NAME]/ <-------------------------- 在此处添加目录
│   │   ├── index.ts (定义和导出工具)
│   │   ├── schemas.ts (定义输入模式)
│   │   └── handlers.ts (实现工具功能)
│   └── utils/ (共享工具实用程序)

工具开发的最佳实践

为 Base MCP 开发新工具时:

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

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

先决条件

  • Node.js(v16 或更高版本)
  • npm 或 yarn
  • Coinbase API 凭据(API 密钥名称和私钥)
  • 钱包助记词
  • Coinbase 项目 ID(用于充值功能)
  • Alchemy API 密钥(NFT 功能需要)
  • 可选:OpenRouter API 密钥(用于购买 OpenRouter 积分)

安装

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

# 全局安装
npm install -g base-mcp

# 或者在您的项目中本地安装
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 凭据
# 您可以从 Coinbase Developer Portal 获取这些凭据:https://cdp.coinbase.com/
COINBASE_API_KEY_NAME=your_api_key_name
COINBASE_API_PRIVATE_KEY=your_private_key

# 钱包助记词(12 或 24 个单词)
# 这是您钱包的助记词
SEED_PHRASE=your seed phrase here

# Coinbase 项目 ID(用于充值功能)
# 您可以从 Coinbase Developer Portal 获取此 ID
COINBASE_PROJECT_ID=your_project_id

# Alchemy API 密钥(NFT 功能需要)
# 您可以从 https://alchemy.com 获取此密钥
ALCHEMY_API_KEY=your_alchemy_api_key

# OpenRouter API 密钥(可选,用于购买 OpenRouter 积分)
# 您可以从 https://openrouter.ai/keys 获取此密钥
OPENROUTER_API_KEY=your_openrouter_api_key

# 链 ID(可选,用于 Base Sepolia 测试网)
# 对于 Base Sepolia 测试网,请使用 84532
# 如果您想使用 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 > 设置 > 开发者 > 编辑配置,轻松地通过 Claude Desktop 应用程序访问此文件。

  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 以使更改生效。

可用工具

get-address

检索您钱包的地址。

向 Claude 发出的示例查询:

"我的钱包地址是什么?"

list-balances

列出您钱包的所有余额。

向 Claude 发出的示例查询:

"显示我的钱包余额。"

transfer-funds

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

参数:

  • destination:要将资金转移到的地址
  • assetId:要转移的资产 ID
  • amount:要转移的资金量

向 Claude 发出的示例查询:

"将 0.01 ETH 转移到 0x1234567890abcdef1234567890abcdef12345678。"

deploy-contract

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

参数:

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

向 Claude 发出的示例查询:

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

check-address-reputation

检查地址的信誉。

参数:

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

向 Claude 发出的示例查询:

"0x1234567890abcdef1234567890abcdef12345678 的信誉是什么?"

get_morpho_vaults

获取 Morpho 上给定资产的金库。

参数:

  • assetSymbol:用于过滤金库的资产符号(可选)

向 Claude 发出的示例查询:

"向我展示 USDC 的可用 Morpho 金库。"

call_contract

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

参数:

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

向 Claude 发出的示例查询:

"调用地址为 0x1234567890abcdef1234567890abcdef12345678 的合约上的 balanceOf 函数。"

get_onramp_assets

获取在给定国家/地区/细分市场中可用于充值的资产。

参数:

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

向 Claude 发出的示例查询:

"我可以在美国充值哪些资产,特别是在纽约?"

onramp

获取通过 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。"

list_nfts

列出特定地址拥有的 NFT。

参数:

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

向 Claude 发出的示例查询:

"向我展示 0x89A93a48C6Ef8085B9d07e46AaA96DFDeC717040 拥有的 NFT。"

transfer_nft

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

参数:

  • contractAddress:NFT 合约的地址
  • tokenId:要转移的 NFT 的代币 ID
  • toAddress:接收者的地址
  • amount:要转移的数量(仅用于 ERC1155,默认值:1)

向 Claude 发出的示例查询:

"将我的 NFT(合约地址为 0x3F06FcF75f45F1bb61D56D68fA7b3F32763AA15c,代币 ID 为 56090175025510453004781233574040052668718235229192064098345825090519343038548)转移到 0x1234567890abcdef1234567890abcdef12345678。"

buy_openrouter_credits

使用 USDC 购买 OpenRouter 积分。

参数:

  • amountUsd:要购买的积分数量(美元)

向 Claude 发出的示例查询:

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

安全注意事项

  • 配置文件包含敏感信息(API 密钥和助记词)。 确保它已正确保护且未共享。
  • 考虑使用环境变量或安全凭据管理器,而不是硬编码敏感信息。
  • 转移资金或部署合约时要小心,因为这些操作在区块链上是不可逆转的。
  • 使用充值功能时,请确保您处于安全连接上。
  • 在确认之前验证所有交易详细信息,尤其是在转移资金或购买积分时。

故障排除

如果您遇到问题:

  1. 检查您的 Coinbase API 凭据是否正确
  2. 验证您的助记词是否有效
  3. 确保您位于正确的网络(Base Mainnet)上
  4. 检查 Claude Desktop 日志中是否有任何错误消息

许可证

MIT 许可证

贡献

欢迎贡献! 请随时提交拉取请求。

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

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

基本贡献步骤:

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

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

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
AIO-MCP Server

AIO-MCP Server

🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。

精选
本地
https://github.com/Streen9/react-mcp

https://github.com/Streen9/react-mcp

react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。

精选
本地
MCP Atlassian

MCP Atlassian

适用于 Atlassian Cloud 产品(Confluence 和 Jira)的 Model Context Protocol (MCP) 服务器。此集成专为 Atlassian Cloud 实例设计,不支持 Atlassian Server 或 Data Center 部署。

精选
any-chat-completions-mcp

any-chat-completions-mcp

将 Claude 与任何 OpenAI SDK 兼容的聊天完成 API 集成 - OpenAI、Perplexity、Groq、xAI、PyroPrompts 等。

精选
Exa MCP Server

Exa MCP Server

一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。

精选
MySQL MCP Server

MySQL MCP Server

允许人工智能助手通过受控界面列出表格、读取数据和执行 SQL 查询,从而使数据库探索和分析更安全、更有条理。

精选