哈希密钥MCP服务器🔵
](https://www.npmjs.com/package/hashkey-mcp) 
一个模型上下文协议(MCP)服务器,为Claude Desktop和Cursor等AI应用程序提供链上工具,允许它们与Hashkey网络交互。
使用3P协议、工具和数据源扩展Hashkey MCP
Hashkey MCP被设计为可扩展的,允许您添加自己的第三方协议、工具和数据源。本节概述了如何用新功能扩展Hashkey MCP服务器。
添加新工具
如果要向Hashkey MCP服务器添加新工具,请执行以下步骤:
- 在中创建一个新目录
src/tools工具的目录 - 按照现有模式实施该工具:
- index.ts:定义并导出您的工具 - schemas.ts:为您的工具定义输入模式 - handlers.ts:实现工具的功能
- 将您的工具添加到中的可用工具列表中
src/tools/index.ts - 在README.md中为您的工具添加文档
- 在examples.md中添加如何使用工具的示例
- 为您的工具编写测试
项目结构
Hashkey MCP服务器遵循以下工具结构:
src/
├── tools/
│ ├── index.ts (exports toolsets)
│ ├── [TOOL_NAME]/ 设置>开发人员>编辑配置,通过Claude Desktop应用程序轻松访问此文件。
2. 添加以下配置:
{ "mcpServers": { "hashkey-mcp": { "command": "npx", "args": ["-y", "hashkey-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": "177" }, "disabled": false, "autoApprove": [] } } }
1. 重新启动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的信誉如何?”
### get_morph_vaults
获取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平衡
获取ERC20代币的余额。
参数:
- `contractAddress`:ERC20合同的地址
对Claude的示例查询:
> “我在0x1234567890abcdef12345678900abcdef2345678的令牌余额是多少?”
### erc20_传输
将ERC20令牌转移到另一个地址。
参数:
- `contractAddress`:ERC20合同的地址
- `toAddress`:收件人的地址
- `amount`:要转移的代币数量
对Claude的示例查询:
> “将10美元转入0x1234567890abcdef12345678900abcdef2345678。”
### list_nfts
列出特定地址拥有的NFT。
参数:
- `ownerAddress`:要列出NFT的所有者的地址
- `limit`:要返回的最大NFT数(默认值:50)
对Claude的示例查询:
> “显示0x89A93a48C6Ef8085B9d07e46aA96DFDeC717040拥有的NFT。”
### transfer_nft
将NFT转移到另一个地址。支持ERC721和ERC1155标准。
参数:
- `contractAddress`NFT合同的地址
- `tokenId`:要传输的NFT的令牌ID
- `toAddress`:收件人的地址
- `amount`:转账金额(仅用于ERC1155,默认值:1)
对Claude的示例查询:
> “将我的NFT与合同0x3F06FcF75f45F1bb61D56D68fA7b3F32763AA15c和令牌ID 5609017502551045300478123357404005668718235229192064098345825019519343038548一起转移到0x1234567890abcdef12345678900abcdef1235678。”
### 购买_供应商_积分
用美元购买OpenRouter积分。
参数:
- `amountUsd`:购买信用额度,单位为美元
对Claude的示例查询:
> “购买价值20美元的OpenRouter点数。”
## 安全考虑
- 配置文件包含敏感信息(API密钥和种子短语)。确保它得到妥善保护,不被共享。
- 考虑使用环境变量或安全凭证管理器,而不是硬编码敏感信息。
- 在转移资金或部署合约时要小心,因为这些操作在区块链上是不可逆转的。
- 使用入口功能时,请确保您处于安全连接状态。
- 在确认之前,请核实所有交易细节,特别是在转账或购买信用时。
## 故障排除
如果您遇到问题:
1. 检查您的Coinbase API凭证是否正确
1. 验证您的种子短语是否有效
1. 确保你在正确的网络上(Hashkey主网)
1. 检查Claude Desktop日志中是否有任何错误消息
## 许可证
[MIT许可证](LICENSE)
## 贡献
欢迎投稿!请随时提交拉取请求。
有关为Hashkey MCP做出贡献的详细指南,包括:
- 报告错误
- 建议增强功能
- 开发设置
- 编码标准
- **添加新的工具、协议和数据源** (另见 [扩展哈希键MCP](#extending-hashkey-mcp-with-3p-protocols-tools-and-data-sources) 上文)
- 测试要求
- 文件标准
请参阅我们的综合 [贡献.md](CONTRIBUTING.md) 导游。
基本贡献步骤:
1. 分叉存储库
1. 创建功能分支(`git checkout -b feature/amazing-feature`)
1. 提交您的更改(`git commit -m 'Add some amazing feature'`)
1. 推到分支(`git push origin feature/amazing-feature`)
1. 打开拉取请求
请确保您的代码遵循现有样式并包含适当的测试。