Base MCP Server
为 Claude AI 提供链上工具,使其能够与 Base 区块链和 Coinbase API 交互,从而实现钱包管理、资金转移和智能合约部署。
README
Base MCP 服务器 🔵
一个模型上下文协议 (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 服务器添加新工具,请按照以下步骤操作:
- 在
src/tools
目录中为您的工具创建一个新目录 - 按照现有模式实现该工具:
index.ts
:定义和导出您的工具schemas.ts
:定义工具的输入模式handlers.ts
:实现工具的功能
- 将您的工具添加到
src/tools/index.ts
中可用工具的列表中 - 在 README.md 中添加工具的文档
- 在 examples.md 中添加如何使用您的工具的示例
- 为您的工具编写测试
项目结构
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:从源代码安装
-
克隆此存储库:
git clone https://github.com/base/base-mcp.git cd base-mcp
-
安装依赖项:
npm install
-
构建项目:
npm run build
-
(可选)全局链接它:
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:
-
创建或编辑 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
- macOS:
您可以通过导航到 Claude > 设置 > 开发者 > 编辑配置,轻松地通过 Claude Desktop 应用程序访问此文件。
-
添加以下配置:
{ "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": [] } } }
-
重新启动 Claude Desktop 以使更改生效。
可用工具
get-address
检索您钱包的地址。
向 Claude 发出的示例查询:
"我的钱包地址是什么?"
list-balances
列出您钱包的所有余额。
向 Claude 发出的示例查询:
"显示我的钱包余额。"
transfer-funds
将资金从您的钱包转移到另一个地址。
参数:
destination
:要将资金转移到的地址assetId
:要转移的资产 IDamount
:要转移的资金量
向 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
:合约的 ABIvalue
:要随交易发送的 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 的代币 IDtoAddress
:接收者的地址amount
:要转移的数量(仅用于 ERC1155,默认值:1)
向 Claude 发出的示例查询:
"将我的 NFT(合约地址为 0x3F06FcF75f45F1bb61D56D68fA7b3F32763AA15c,代币 ID 为 56090175025510453004781233574040052668718235229192064098345825090519343038548)转移到 0x1234567890abcdef1234567890abcdef12345678。"
buy_openrouter_credits
使用 USDC 购买 OpenRouter 积分。
参数:
amountUsd
:要购买的积分数量(美元)
向 Claude 发出的示例查询:
"购买价值 20 美元的 OpenRouter 积分。"
安全注意事项
- 配置文件包含敏感信息(API 密钥和助记词)。 确保它已正确保护且未共享。
- 考虑使用环境变量或安全凭据管理器,而不是硬编码敏感信息。
- 转移资金或部署合约时要小心,因为这些操作在区块链上是不可逆转的。
- 使用充值功能时,请确保您处于安全连接上。
- 在确认之前验证所有交易详细信息,尤其是在转移资金或购买积分时。
故障排除
如果您遇到问题:
- 检查您的 Coinbase API 凭据是否正确
- 验证您的助记词是否有效
- 确保您位于正确的网络(Base Mainnet)上
- 检查 Claude Desktop 日志中是否有任何错误消息
许可证
贡献
欢迎贡献! 请随时提交拉取请求。
有关贡献 Base MCP 的详细指南,包括:
- 报告错误
- 建议增强功能
- 开发设置
- 编码标准
- 添加新工具、协议和数据源(另请参阅上面的 使用 3P 协议、工具和数据源扩展 Base MCP 部分)
- 测试要求
- 文档标准
请参阅我们全面的 CONTRIBUTING.md 指南。
基本贡献步骤:
- Fork 存储库
- 创建您的功能分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 将其推送到分支 (
git push origin feature/amazing-feature
) - 打开拉取请求
请确保您的代码遵循现有样式并包含适当的测试。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
AIO-MCP Server
🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。
https://github.com/Streen9/react-mcp
react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。
MCP Atlassian
适用于 Atlassian Cloud 产品(Confluence 和 Jira)的 Model Context Protocol (MCP) 服务器。此集成专为 Atlassian Cloud 实例设计,不支持 Atlassian Server 或 Data Center 部署。

any-chat-completions-mcp
将 Claude 与任何 OpenAI SDK 兼容的聊天完成 API 集成 - OpenAI、Perplexity、Groq、xAI、PyroPrompts 等。
Exa MCP Server
一个模型上下文协议服务器,它使像 Claude 这样的人工智能助手能够以安全和受控的方式,使用 Exa AI 搜索 API 执行实时网络搜索。
MySQL MCP Server
允许人工智能助手通过受控界面列出表格、读取数据和执行 SQL 查询,从而使数据库探索和分析更安全、更有条理。