返回市场
基础-MCP

基础-MCP

作者:base323 星标更新:2025-06-17

项目介绍

Base MCP Server 🔵

OpenRouter 集成

npm 版本 许可证: MIT

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

概述

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

  • 获取钱包地址
  • 列出钱包余额
  • 在钱包之间转移资金
  • 部署智能合约
  • 通过Morpho金库进行链上借贷
  • 调用合约函数
  • 通过Coinbase进行资金入金
  • 管理ERC20代币
  • 列出和转移NFT(ERC721和ERC1155)
  • 使用USDC购买OpenRouter积分
  • 将Farcaster用户名解析为以太坊地址

该服务器与Base交互,由Base开发者工具和AgentKit驱动。

扩展Base MCP与第三方协议、工具和数据源

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

添加新工具

如果您想向Base MCP服务器添加新工具,请遵循以下步骤:

  1. src/tools目录中为您的工具创建一个新目录
  2. 根据现有模式实现工具:
    • index.ts:定义并导出您的工具。工具被定义为AgentKit ActionProviders。
    • schemas.ts:定义您的工具的输入模式
    • types.ts:定义您的工具所需类型
    • utils.ts:您的工具的实用程序
  3. 将您的工具添加到src/main.ts中的可用工具列表中
  4. 在README.md中为您的工具添加文档
  5. 在examples.md中添加使用您的工具的示例
  6. 为您的工具编写测试

项目结构

Base MCP服务器遵循以下工具结构:

src/
├── tools/
│   ├── [TOOL_NAME]/ <-------------------------- 在此处添加目录
│   │   ├── index.ts (定义并导出工具)
│   │   ├── schemas.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开发者门户获取这些凭证: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开发者门户获取此项目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测试网)
# 使用84532用于Base Sepolia测试网
# 如果您想使用Base主网,则无需包含此参数
CHAIN_ID=your_chain_id

# Neynar API密钥(Farcaster功能所需)
# 您可以从https://neynar.com获取此密钥
NEYNAR_API_KEY=

测试

测试MCP服务器,确保其正常工作:

npm test

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

示例

查看examples.md文件,了解如何通过Claude与Base MCP工具进行交互的详细示例。

与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 > 设置 > 开发者 > 编辑配置轻松访问此文件。

  2. 添加以下配置:

    {
      "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": []
        }
      }
    }
    
  3. 重启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的token ID
  • toAddress:接收者的地址
  • amount:要转移的数量(仅用于ERC1155,默认:1)

向Claude查询示例:

"将我的合约0x3F06FcF75f45F1bb61D56D68fA7b3F32763AA15c和token ID 56090175025510453004781233574040052668718235229192064098345825090519343038548的NFT转移到0x1234567890abcdef1234567890abcdef12345678。"

buy_openrouter_credits

使用USDC购买OpenRouter积分。

参数:

  • amountUsd:要购买的积分金额,以美元计

向Claude查询示例:

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

安全注意事项

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

故障排除

如果遇到问题:

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

许可证

MIT许可证

贡献

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

对于如何为Base MCP做出贡献的详细指南,包括:

  • 报告错误
  • 建议改进
  • 开发环境设置
  • 编码标准
  • 添加新的工具、协议和数据源(另见上述扩展Base MCP部分)
  • 测试要求
  • 文档标准

请参考我们的综合CONTRIBUTING.md指南。

基本贡献步骤:

  1. 分叉仓库
  2. 创建您的功能分支(git checkout -b feature/amazing-feature
  3. 提交您的更改(git commit -m '添加一些精彩功能'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开拉取请求

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