比特币SV MCP服务器
⚠️ 注意:实验工作正在进行中
该项目处于早期实验阶段。功能可能会发生变化,API 也尚未稳定。欢迎贡献代码、提供反馈和报告错误!欢迎随时提交问题或拉取请求。
适用于模型上下文协议 (MCP) 框架的比特币 SV (BSV) 工具集合。该库提供用于 BSV 区块链交互的钱包、序数函数和实用函数。
安装和设置
使用发髻(可选但推荐)
该项目使用Bun构建,Bun 是一个快速的 JavaScript 运行时和包管理器。虽然建议使用 Bun 以获得最佳性能,但该服务器也可以使用 Node.js 和 npm 运行,因为 Bun 的设计与 Node.js 向后兼容。
安装 Bun
macOS(使用 Homebrew):
macOS/Linux/WSL(使用安装程序脚本):
Windows: Windows 用户应该使用 WSL(Windows Subsystem for Linux)或 Docker 来运行 Bun。
Node.js 和 npm 也可以工作,但可能无法提供相同的性能优势。
连接到 MCP 客户端
该服务器实现了模型上下文协议(MCP),允许人工智能助手使用比特币 SV 的功能。您可以将此服务器连接到各种兼容 MCP 的客户端。
注意:
PRIVATE_KEY_WIF
环境变量现在是可选的。如果没有它,服务器将以受限模式运行,仅提供教育资源和非钱包工具。钱包和 MNEE 代币操作需要有效的私钥。您还可以设置IDENTITY_KEY_WIF
环境变量,以启用 sigma-protocol 对序数铭文进行签名,用于身份验证、策展和信任网络。
光标
要将 BSV MCP 服务器与Cursor一起使用:
- 如果尚未安装 Cursor,请安装
- 打开 Cursor 并导航至“设置”→“扩展”→“模型上下文协议”
- 点击“添加新的全局 MCP 服务器”
- 以 JSON 格式输入以下配置:
- 将
<your_private_key_wif>
替换为您的实际私钥 WIF(请务必妥善保管!)。如果您没有,可以暂时不填写,但您将无法使用需要钱包的工具。<your_identity_key_wif>
也是可选的。它将使用提供的身份密钥通过 Sigma 协议对 1Sat Ordinals 进行签名。 - 点击“保存”
BSV 工具现在将在“比特币 SV”命名空间下供 Cursor 的 AI 助手使用。
npm 用户的替代方案
如果您更喜欢使用 npm 而不是 Bun:
克劳德桌面版
要将此服务器连接到 Claude for Desktop:
- 打开Claude for Desktop并转到 Claude > 设置 > 开发者
- 单击“编辑配置”。
用你喜欢的文本编辑器打开 Claude 配置 json 文件。如果你更喜欢使用命令行方式:
- 将 BSV MCP 服务器添加到您的配置中:
- 将
<your_private_key_wif>
替换为你的实际私钥 WIF - 保存文件并重新启动 Claude for Desktop
- 单击 Claude 桌面版中的工具图标(锤子)时,BSV 工具将会出现
npm 用户的替代方案 (Claude)
如果您更喜欢使用 npm 而不是 Bun,请将“命令”字段替换为“npx”。
可用工具
该工具包分为几类:
钱包工具
钱包工具提供核心 BSV 钱包功能:
工具名称 | 描述 | 示例输出 |
---|---|---|
wallet_getPublicKey | 检索指定协议和密钥 ID 的公钥 | {"publicKey":"032d0c73eb9270e9e009fd1f9dd77e19cf764fbad5f799560c4e8fd414e40d6fc2"} |
wallet_createSignature | 为提供的数据创建加密签名 | {"signature":[144,124,85,193,226,45,140,249,9,177,11,167,33,215,209,38,...]} |
wallet_verifySignature | 根据提供的数据验证加密签名 | {"isValid":true} |
wallet_encryption | 使用钱包密钥加密和解密数据的组合工具。示例: 1. 加密文本: "Encrypt this message: Hello World" 2. 解密数据: "Decrypt this data that was previously encrypted for me" | 加密: {"ciphertext":[89,32,155,38,125,22,49,226,26,...]} 解密: {"plaintext":"hello world"} |
wallet_getAddress | 返回当前钱包或派生路径的 BSV 地址 | {"address":"1ExampleBsvAddressXXXXXXXXXXXXXXXXX","status":"ok"} |
wallet_sendToAddress | 将 BSV 发送到指定地址(支持 BSV 或 USD 金额) | {"status":"success","txid":"a1b2c3d4e5f6...","satoshis":1000000} |
wallet_purchaseListing | 从市场列表中购买 NFT 或 BSV-20/BSV-21 代币 | {"status":"success","txid":"a1b2c3d4e5f6...","type":"nft","origin":"abcdef123456..."} |
wallet_createOrdinals | 在 BSV 区块链上创建并记录序数 | {"txid":"a1b2c3d4e5f6...","inscriptionAddress":"1ExampleAddress...","contentType":"image/png"} |
BSV 工具
与 BSV 区块链和网络交互的工具:
工具名称 | 描述 | 示例输出 |
---|---|---|
bsv_getPrice | 从交易所 API 获取当前 BSV 价格 | Current BSV price: $38.75 USD |
bsv_decodeTransaction | 解码 BSV 交易并返回详细信息 | {"txid":"a1b2c3d4e5f6...","version":1,"locktime":0,"size":225,"inputs":[...],"outputs":[...]} |
bsv_explore | 全面的区块链探索工具,可访问 WhatsOnChain API 端点 | {"chain_info":{"chain":"main","blocks":826458,"headers":826458,"bestblockhash":"0000000000..."}} |
序数工具
在 BSV 上使用序数 (NFT) 的工具:
工具名称 | 描述 | 示例输出 |
---|---|---|
ordinals_getInscription | 检索有关特定铭文的详细信息 | {"id":"a1b2c3d4e5f6...","origin":"a1b2c3d4e5f6...","contentType":"image/png","content":"iVBORw0KGgoAAA..."} |
ordinals_searchInscriptions | 根据各种标准搜索铭文 | {"results":[{"id":"a1b2c3...","contentType":"image/png","owner":"1Example..."},...]} |
ordinals_marketListings | 使用统一界面检索 NFT、BSV-20 和 BSV-21 代币的市场列表 | {"results":[{"txid":"a1b2c3...","price":9990000,"tick":"PEPE","listing":true},...]} |
ordinals_marketSales | 获取有关 BSV-20 和 BSV-21 代币市场销售的信息 | {"results":[{"txid":"a1b2c3...","price":34710050,"tick":"$BTC","sale":true},...]} |
ordinals_getTokenByIdOrTicker | 通过 ID 检索特定 BSV20 代币的详细信息 | {"tick":"PEPE","max":"21000000","lim":"1000","dec":"2"} |
实用工具
通用实用功能:
工具名称 | 描述 | 示例输出 |
---|---|---|
utils_convertData | 在不同的编码格式(utf8、hex、base64、binary)之间转换数据。参数: - data (必需):要转换的字符串 - from (必需):源编码格式(utf8、hex、base64 或 binary) - to (必需):目标编码格式(utf8、hex、base64 或 binary)示例: - UTF-8 到 hex: {"data": "hello world", "from": "utf8", "to": "hex"} → 68656c6c6f20776f726c64 - UTF-8 到 base64: {"data": "Hello World", "from": "utf8", "to": "base64"} → SGVsbG8gV29ybGQ= - base64 到 UTF-8: {"data": "SGVsbG8gV29ybGQ=", "from": "base64", "to": "utf8"} → Hello World - hex 到 base64: {"data": "68656c6c6f20776f726c64", "from": "hex", "to": "base64"} → aGVsbG8gd29ybGQ= 注意: - 所有参数均为必填项 - 该工具将转换后的数据作为字符串返回 - 对于二进制转换,数据表示为字节值数组 | "SGVsbG8gV29ybGQ=" (UTF-8“Hello World”转换为base64) |
MNEE 工具
使用 MNEE 代币的工具:
工具名称 | 描述 | 示例输出 |
---|---|---|
mnee_getBalance | 检索钱包的当前 MNEE 代币余额 | {"balance": {"amount": 2900, "decimalAmount": 0.029}} |
mnee_sendMnee | 将 MNEE 代币发送到指定地址。支持 MNEE 和 USD 金额 | {"success": true, "txid": "d1ce853934964e6c1fe9f44c918a824f175c6ab466b966f49ebc0682a8318895", "rawtx": "0100000002a0be40d8942015f1...", "mneeAmount": 0.01, "usdAmount": "$0.01", "recipient": "15mNxEkyKJXPD8amic6oLUjS45zBKQQoLu"} |
mnee_parseTx | 解析 MNEE 交易,获取其操作和金额的详细信息。所有金额均以原子单位表示,精确到小数点后 5 位(例如,1000 个原子单位 = 0.01 MNEE)。 | {"txid": "d1ce853934964e6c1fe9f44c918a824f175c6ab466b966f49ebc0682a8318895", "environment": "production", "type": "transfer", "inputs": [{"address": "18izL7Wtm2fx3ALoRY3MkY2VFSMjArP62D", "amount": 2900}], "outputs": [{"address": "15mNxEkyKJXPD8amic6oLUjS45zBKQQoLu", "amount": 1000}, {"address": "19Vq2TV8aVhFNLQkhDMdnEQ7zT96x6F3PK", "amount": 100}, {"address": "18izL7Wtm2fx3ALoRY3MkY2VFSMjArP62D", "amount": 1800}]} |
使用 MCP 工具
连接后,您可以通过人工智能助手使用自然语言与比特币 SV 进行交互。以下是一些示例提示:
钱包操作
- “获取我的比特币SV地址”
- “发送 0.01 BSV 到 1ExampleBsvAddressXXXXXXXXXXXXXXXXX”
- “将价值 5 美元的 BSV 发送至 1ExampleBsvAddressXXXXXXXXXXXXXXXXX”
- “向 1ExampleBsvAddressXXXXXXXXXXXXXXXXX 发送 0.01 MNEE”
- “检查我的 MNEE 余额”
- “解析此 MNEE 交易:txid”
- “使用我的钱包密钥加密此消息”
- “解密之前为我加密的数据”
- “购买此 NFT 列表:txid_vout”
- “购买此 BSV-20 代币列表:txid_vout”
序数(NFT)
- “显示有关输出点为 6a89047af2cfac96da17d51ae8eb62c5f1d982be2bc4ba0d0cd2084b7ffed325_0 的 NFT 的信息”
- “搜索 Pixel Zoide NFT”
- “显示 BSV NFT 的当前市场列表”
- “显示代码为 PEPE 的 BSV-20 代币列表”
- “获取最近的 BSV-20 代币销售信息”
区块链操作
- “BSV 目前的价格是多少?”
- “解码此 BSV 交易:(交易十六进制或 ID)”
- “获取最新的比特币SV链信息”
- “显示高度 800000 的区块详细信息”
- “探索地址 1ExampleBsvAddressXXXX 的交易历史记录”
- “检查我的钱包地址中的未使用输出(UTXO)”
- “获取哈希 a1b2c3d4e5f6 的交易详细信息...”
数据转换
- “将‘Hello World’从 UTF-8 格式转换为十六进制格式”
MCP 提示和资源
BSV MCP 服务器提供专门的提示和资源,提供有关比特币 SV 技术的详细信息和背景。人工智能模型可以访问这些信息,以增强其理解力和能力。
可用提示
服务器提供以下教育提示,可通过 MCP 协议直接访问:
序数词提示
- 标识符:
bitcoin_sv_ordinals
- 描述:有关比特币 SV 序数的全面信息,包括它们是什么、如何工作以及如何使用它们。
- 使用方法:向助手询问“比特币 SV 序数”或“1Sat 序数”以获取此信息。
BSV SDK提示
提供有关 Bitcoin SV SDK 详细信息的提示集合:
- 概述
- 标识符:
bitcoin_sv_sdk_overview
- 描述:Bitcoin SV SDK 的概述,包括其用途和主要组件。
- 用法:“告诉我有关 BSV SDK 的信息”或“什么是比特币 SV SDK?”
- 标识符:
- 钱包操作
- 标识符:
bitcoin_sv_sdk_wallet
- 描述:有关 BSV SDK 中的钱包操作的信息。
- 用法:“钱包操作如何在 BSV SDK 中工作?”
- 标识符:
- 交易大楼
- 标识符:
bitcoin_sv_sdk_transaction
- 描述:有关交易创建和操作的详细信息。
- 用法:“解释 BSV SDK 交易构建”或“如何使用 BSV SDK 创建交易?”
- 标识符:
- 验证
- 标识符:
bitcoin_sv_sdk_auth
- 描述:BSV SDK 中的身份验证和身份协议。
- 用法:“BSV SDK 如何使用身份验证?”
- 标识符:
- 密码学
- 标识符:
bitcoin_sv_sdk_cryptography
- 描述:签名、加密和验证功能。
- 用法:“解释 BSV SDK 加密功能”
- 标识符:
- 脚本
- 标识符:
bitcoin_sv_sdk_script
- 描述:比特币脚本和合约功能。
- 用法:“如何使用 BSV SDK 处理比特币脚本?”
- 标识符:
- 原语
- 标识符:
bitcoin_sv_sdk_primitives
- 描述:BSV SDK 中的核心数据类型和结构。
- 用法:“BSV SDK 中有哪些原语可用?”
- 标识符:
可用资源
该服务器还提供对比特币征求意见稿(BRC)规范和文档的访问:
变更日志资源
- 标识符:
bsv-mcp-changelog
- 描述:BSV MCP 服务器的版本历史和更新日志。
- 用法:“向我展示 BSV MCP 更新日志”或“最新版本有什么新内容?”
BRC 资源
- BRC 概览
- 标识符:
brcs_readme
- 描述:BRC 存储库中所有 Bitcoin SV 协议规范的概述。
- 用法:“向我展示比特币 SV BRC 概览”
- 标识符:
- BRC 摘要
- 标识符:
brcs_summary
- 描述:所有比特币 SV BRC 的目录。
- 用途:“请给我一份比特币 SV BRC 的摘要”
- 标识符:
- 具体的BRC规范
- 标识符:
brc_spec
- 描述:按类别和编号访问特定的 BRC 规范。
- 用法:“向我展示交易信封上的 BRC 8”或“BRC 1 指定什么?”
- 标识符:
BRC类别
BRC 规范分为以下类别:
- 钱包
- 交易
- 脚本
- 代币
- 叠加层
- 付款
- 点对点
- 密钥派生
- 出站点
- 观点
- 状态机
- 应用程序
使用提示和资源
AI 模型可以利用这些提示和资源,提供关于比特币 SV 技术的更准确、更详细的答案。作为用户,您可以:
- 询问特定主题:“告诉我有关比特币 SV 序数的信息”或“解释 BSV SDK 交易构建”
- 请求具体的 BRC 详细信息:“BRC 8 指定了什么?”或“向我显示交易创建时的 BRC”
- 获取概述:“什么是 BSV SDK?”或“显示所有 BRC 的摘要”
这些提示和资源增强了人工智能的知识库,即使对于复杂的比特币 SV 主题也能做出更技术性和更准确的反应。
MCP 的工作原理
当您与支持 MCP 的 AI 助手互动时:
- 人工智能会分析你的请求并决定使用哪些工具
- 经您批准后,它会调用适当的 BSV MCP 工具
- 服务器在 Bitcoin SV 区块链上执行请求的操作
- 结果返回给AI助手
- 助手以自然、对话的方式呈现信息
自定义选项
可以使用环境变量定制 BSV MCP 服务器以启用或禁用特定组件:
组件配置
环境变量 | 默认 | 描述 |
---|---|---|
DISABLE_PROMPTS | false | 设置为true 以禁用所有教育提示 |
DISABLE_RESOURCES | false | 设置为true 以禁用所有资源(BRC、变更日志) |
DISABLE_TOOLS | false | 设置为true 以禁用所有工具 |
特定工具配置
环境变量 | 默认 | 描述 |
---|---|---|
DISABLE_WALLET_TOOLS | false | 设置为true 以禁用比特币钱包工具 |
DISABLE_MNEE_TOOLS | false | 设置为true 以禁用 MNEE 令牌工具 |
DISABLE_BSV_TOOLS | false | 设置为true 以禁用 BSV 区块链工具 |
DISABLE_ORDINALS_TOOLS | false | 设置为true 以禁用 Ordinals/NFT 工具 |
DISABLE_UTILS_TOOLS | false | 设置为true 以禁用实用工具 |
IDENTITY_KEY_WIF | not set | 可选的身份密钥 WIF;如果设置,序数铭文将使用 sigma-protocol 进行签名,以进行身份验证、管理和信任网络。 |
DISABLE_BROADCASTING | false | 设置为true 以禁用交易广播;返回原始交易十六进制 - 对于广播前的测试和交易审查很有用 |
示例
仅使用教育资源和提示运行,无需工具:
仅使用 BSV 工具运行,没有钱包或其他功能:
使用除钱包操作之外的所有工具:
创建交易但不广播它们(试运行模式):
故障排除
如果您在使用 BSV MCP 服务器时遇到问题:
连接问题
- 确保你的系统上安装了 Bun 或 Node.js
- 验证您的 WIF 私钥是否在环境中正确设置
- 检查您的客户端是否支持 MCP 并且已正确配置
- 在客户端的控制台输出中查找错误消息
保持 Bun 最新状态
保持 Bun 更新到最新版本以确保兼容性非常重要:
要验证您当前的 Bun 版本:
日志记录和调试
对于 Claude for Desktop,请检查以下日志:
对于 Cursor,请检查设置 → 扩展 → 模型上下文协议中的 Cursor MCP 日志。
最近更新
- 交易广播控制:添加了
DISABLE_BROADCASTING
环境变量,以防止交易被广播到网络 - 区块链浏览器:添加了
bsv_explore
工具,用于访问 WhatsOnChain API 并支持主网/测试网 - 统一工具:将
wallet_encrypt
/wallet_decrypt
合并为单个wallet_encryption
工具 - 增强市场:支持 NFT、BSV-20/21 代币的上架、销售和购买
- 性能:添加价格缓存并优化 API 端点结构
- 改进的验证:更好地处理私钥和参数的错误
比特币SV区块链浏览器
bsv_explore
工具通过 WhatsOnChain API 提供对比特币 SV 区块链的全面访问。这款强大的浏览器工具允许您查询区块链的各个方面,包括链数据、区块、交易和地址信息。
可用端点
该工具支持以下端点类别和特定端点:
链数据
端点 | 描述 | 必需参数 | 示例响应 |
---|---|---|---|
chain_info | 网络统计、难度和链工作 | 没有任何 | {"chain":"main","blocks":826458,"headers":826458,"bestblockhash":"0000000000..."} |
chain_tips | 当前链提示包括高度和状态 | 没有任何 | [{"height":826458,"hash":"000000000000...","branchlen":0,"status":"active"}] |
circulating_supply | BSV 当前流通供应量 | 没有任何 | {"bsv":21000000} |
peer_info | 已连接对等点统计信息 | 没有任何 | [{"addr":"1.2.3.4:8333","services":"000000000000...","lastsend":1621234567}] |
区块数据
端点 | 描述 | 必需参数 | 示例响应 |
---|---|---|---|
block_by_hash | 通过哈希完成区块数据 | blockHash | {"hash":"000000000000...","confirmations":1000,"size":1000000,...} |
block_by_height | 通过高度完成区块数据 | blockHeight | {"hash":"000000000000...","confirmations":1000,"size":1000000,...} |
tag_count_by_height | 特定区块的标签计数统计 | blockHeight | {"tags":{"amp":3,"bitkey":5,"metanet":12,"planaria":7,"b":120}} |
block_headers | 检索最后 10 个区块头 | 没有任何 | [{"hash":"000000000000...","height":826458,"version":536870912,...},...] |
block_pages | 检索大块的交易 ID 页 | blockHash ,可选: pageNumber | ["tx1hash","tx2hash","tx3hash",...] |
统计数据
端点 | 描述 | 必需参数 | 示例响应 |
---|---|---|---|
block_stats_by_height | 特定高度的区块统计信息 | blockHeight | {"size":123456,"txCount":512,"outputTotal":54.12345678,"outputTotalUsd":2345.67,...} |
block_miner_stats | 一段时间内的区块挖矿统计 | 可选: days (默认 7) | {"blocks":{"miner1":412,"miner2":208,...},"total":1008} |
miner_summary_stats | 采矿统计数据摘要 | 可选: days (默认 7) | {"totalBlocks":1008,"totalFees":1.23456789,"totalFeesUsd":53.67,...} |
交易数据
端点 | 描述 | 必需参数 | 示例响应 |
---|---|---|---|
tx_by_hash | 详细交易数据 | txHash | {"txid":"a1b2c3d4e5f6...","version":1,"locktime":0,"size":225,...} |
tx_raw | 原始交易十六进制数据 | txHash | "01000000012345abcdef..." |
tx_receipt | 交易收据 | txHash | {"blockHash":"000000000000...","blockHeight":800000,"confirmations":26458} |
bulk_tx_details | 在一个请求中检索多个交易 | txids (数组) | [{"txid":"a1b2c3d4e5f6...","version":1,...}, {"txid":"b2c3d4e5f6a7...","version":1,...}] |
地址数据
端点 | 描述 | 必需参数 | 示例响应 |
---|---|---|---|
address_history | 地址的交易历史记录 | address ,可选: limit | [{"tx_hash":"a1b2c3d4e5f6...","height":800000},...] |
address_utxos | 地址的未使用输出 | address | [{"tx_hash":"a1b2c3d4e5f6...","tx_pos":0,"value":100000},...] |
网络
端点 | 描述 | 必需参数 | 示例响应 |
---|---|---|---|
health | API 健康检查 | 没有任何 | {"status":"synced"} |
使用示例
bsv_explore
工具可以与自然语言提示一起使用,例如:
在底层,该工具接受参数来指定要检索的数据:
endpoint
:要查询的特定 WhatsOnChain 端点(例如,chain_info
,tx_by_hash
)network
:要使用的 BSV 网络(main
或test
网络)- 特定端点所需的附加参数:
blockHash
:用于 block_by_hash 和 block_pages 端点blockHeight
:用于 block_by_height、tag_count_by_height 和 block_stats_by_height 端点pageNumber
:用于 block_pages 端点(分页)days
:对于 block_miner_stats 和 miner_summary_stats 端点(默认为 7)txHash
:用于与交易相关的端点(tx_by_hash、tx_raw、tx_receipt)txids
:用于 bulk_tx_details 端点(交易 ID 数组)address
:用于与地址相关的端点limit
:address_history 的可选分页限制
网络选项
该工具支持主网和测试网:
main
:比特币 SV 主网(默认)test
:比特币SV测试网
发展
项目设置
如果您想为该项目做出贡献或在本地运行它:
- 克隆存储库:
- 安装依赖项:
运行服务器
运行测试
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
用于模型上下文协议的比特币 SV 工具集合,使 AI 助手能够通过钱包操作、序数 (NFT) 和各种区块链实用程序与 BSV 区块链进行交互。
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server that enables AI assistants to access Flow blockchain data and perform operations such as checking balances, resolving domains, executing scripts, and submitting transactions.Last updated -JavaScript
- AsecurityFlicenseAqualityImplements the Model Context Protocol to allow AI models to access and interact with blockchain data, including reading contract states, retrieving events, and accessing transaction information across various networks.Last updated -104530TypeScript
- -securityAlicense-qualityA Model Context Protocol server for integrating AI assistants like Claude Desktop with the Stellar blockchain, enabling wallet connections, token listings, balance queries, and fund transfers.Last updated -5JavaScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server that connects Claude AI with SOON and other SVM-based blockchains, allowing users to check account balances, fetch recent transactions, and view token holdings on SOON's testnet and mainnet.Last updated -1JavaScript