@一个来源/mcp
统一MCP服务器 单一来源 --在单个服务器中提供27个用于区块链数据和实时链查询的工具。
什么是MCP? 这 模型上下文协议 让AI助手调用工具并访问数据源。该服务器将OneSource区块链API及其文档作为工具公开。
快速开始
克劳德代码
claude mcp add onesource -- npx -y @one-source/mcp@latest克劳德桌面/光标
添加到MCP配置中:
{
"mcpServers": {
"onesource": {
"command": "npx",
"args": ["-y", "@one-source/mcp@latest"]
}
}
}任何MCP客户端(stdio)
npx -y @one-source/mcp@latestHTTP服务器(自托管)
npx -y @one-source/mcp@latest --http
npx -y @one-source/mcp@latest --http --port=8080然后将您的MCP客户端连接到 http://localhost:3000/.
健康检查: GET http://localhost:3000/health
工具(27)
区块链API-直播链(12个工具)
| 工具 | 说明 |
|---|---|
1s_allowance_live | ERC20津贴检查 |
1s_contract_info_live | 通过ERC165进行合同类型检测 |
1s_erc1155_balance_live | 通过RPC结算ERC1155余额 |
1s_erc20_balance_live | ERC20余额通过余额 |
1s_erc20_transfers_live | 通过eth_getLogs传输ERC20日志 |
1s_erc721_tokens_live | ERC721令牌枚举 |
1s_events_live | 通过eth_getLogs记录事件日志 |
1s_multi_balance_live | ETH+多个ERC20余额 |
1s_nft_metadata_live | 通过tokenURI的NFT元数据 |
1s_nft_owner_live | NFT所有者通过ownerOf |
1s_total_supply_live | 代币总供应量 |
1s_tx_details_live | 通过RPC进行交易+接收 |
区块链API-链实用程序(13个工具)
仅限RPC。
| 工具 | 说明 |
|---|---|
1s_block_by_number | 通过RPC按编号阻止详细信息 |
1s_block_number | 最新区块编号 |
1s_chain_id | EIP-155链ID |
1s_contract_code | 合约字节码 |
1s_ens_resolve | ENS名称/地址解析 |
1s_estimate_gas | 天然气估算 |
1s_network_info | 链ID、区块编号、天然气价格 |
1s_nonce | 交易计数 |
1s_pending_block | 内存池中的挂起块 |
1s_proxy_detect | 代理合约检测 |
1s_simulate_call | 模拟eth_call |
1s_storage_read | 读取存储插槽 |
1s_tx_receipt | 交易收据 |
设置和操作(2个工具)
无需身份验证。
| 工具 | 目的 | 何时使用 |
|---|---|---|
1s_setup_check | 服务器运行状况、版本、身份验证状态、安装说明 | 首先要调用的是——检查是否已配置所有内容 |
1s_report_bug | 向Slack报告错误(或GitHub问题回退) | 当工具错误或用户想要报告问题时 |
网络
所有区块链API工具都接受可选 network 参数:
| 网络 | 描述 |
|---|---|
ethereum | 以太坊主网(默认) |
sepolia | 以太坊Sepolia测试网 |
avax | 雪崩C链 |
认证
区块链API工具需要身份验证。有两个选项可用—若同时设置了这两个选项,则API键优先。
| 方法 | 变量 | 描述 |
|---|---|---|
| API密钥 | ONESOURCE_API_KEY | 无限通话,无每次通话费用 |
| x402小额支付 | X402_PRIVATE_KEY | 每次通话通过Base上的USDC支付,无需账户 |
选项1:API密钥
- 首选 app.onesource.io 并创建一个帐户。
- 订阅开发者计划(Stripe结账)。
- 引导到 API密钥 并生成密钥。
- 复制密钥——它以开头
sk_.
克劳德代码
claude mcp add onesource -e ONESOURCE_API_KEY= -- npx -y @one-source/mcp@latest克劳德桌面/光标
添加 env 阻止您的MCP配置:
{
"mcpServers": {
"onesource": {
"command": "npx",
"args": ["-y", "@one-source/mcp@latest"],
"env": {
"ONESOURCE_API_KEY": ""
}
}
}
}任何MCP客户端(stdio)
ONESOURCE_API_KEY= npx -y @one-source/mcp@latest添加后,重新加载MCP服务器并调用 1s_setup_check --它应该显示 Status: Configured (API key).
选项2:x402小额支付
区块链API端点通过 x402.设置时 X402_PRIVATE_KEY,服务器自动处理付款——工具调用是透明地支付和重试的,无需代理进行任何额外工作。
- 获取EVM私钥 --从MetaMask、Coinbase钱包或任何EVM钱包导出一个,或生成一个新的。密钥是一个64个字符的十六进制字符串
0x前缀是可选的,两种格式都可以接受。 - 将密钥传递给服务器 使用以下方法之一。
- 重新加载并找到您的钱包地址 --重新加载MCP服务器,然后调用
1s_setup_check。它将在“钱包地址”下显示从您的密钥导出的钱包地址。 - 在Base上与USDC联系的资金 --将USDC发送至所示地址
1s_setup_check,在 基础 几美元(1-5美元)就足够打几百个电话了。如果您的USDC在以太坊主网上,请使用 基础桥. - 验证 --呼叫
1s_network_info以太坊。如果它返回链数据(区块号、天然气价格),x402支付将端到端工作。
克劳德代码
claude mcp add onesource -e X402_PRIVATE_KEY= -- npx -y @one-source/mcp@latest克劳德桌面/光标
添加 env 阻止您的MCP配置:
{
"mcpServers": {
"onesource": {
"command": "npx",
"args": ["-y", "@one-source/mcp@latest"],
"env": {
"X402_PRIVATE_KEY": ""
}
}
}
}任何MCP客户端(stdio)
X402_PRIVATE_KEY= npx -y @one-source/mcp@latest配置文件位置
如果您更喜欢直接编辑配置文件而不是使用CLI命令:
| 客户端 | 配置文件路径 |
|---|---|
| 克劳德代码 | 运行 claude mcp get onesource 查看文件路径 |
| 克劳德桌面(macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| 克劳德桌面(Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| 光标(macOS) | ~/.cursor/mcp.json |
| 光标(Windows) | %USERPROFILE%\.cursor\mcp.json |
添加 onesource 进入里面 "mcpServers" 使用上面显示的JSON块。
替代方案:设置为环境变量
而不是 env config块,您可以将变量设置为shell或系统环境变量: export ONESOURCE_API_KEY= (bash/zsh)或 $env:ONESOURCE_API_KEY = "" (PowerShell)。在操作系统级别设置它,以实现跨会话的持久性。
安全
切勿将密钥提交给源代码管理。使用环境变量,a .env 文件(从git中排除)或机密管理器。
任何配置更改后: 跑 /reload-plugins 在克劳德代码中,或重新启动克劳德桌面/光标。必须重新加载MCP服务器才能获取新的环境变量。环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
ONESOURCE_API_KEY | - | 承载令牌身份验证的OneSource API密钥。优先于x402。 |
X402_PRIVATE_KEY | -- | EVM私钥(64字符十六进制, 0x 前缀可选)用于在Base上自动支付x402 USDC |
ONESOURCE_BASE_URL | https://skills.onesource.io | API基本URL |
ONESOURCE_ANALYTICS | -- | 设置为 false 禁用分析 |
ONESOURCE_ANALYTICS_URL | -- | 用于分析的仪表板端点 |
X402_ANALYTICS_KEY | - | 用于仪表板分析的API密钥 |
故障排除
1s_setup_check 显示“未配置” 设置其中之一 ONESOURCE_API_KEY 或 X402_PRIVATE_KEY设置任一变量后重新加载MCP服务器(见上文注释)。如果密钥仍未到达服务器,请直接将其设置为shell环境变量。
尽管设置正确,但激活了403/错误的密钥 shell配置文件中的密钥集(例如。 ~/.zshrc, ~/.bash_profile)即使它不在您的Claude MCP配置中,也会被MCP服务器进程接收。跑 echo $ONESOURCE_API_KEY 在您的终端进行检查。如果它打印了一个你不想打印的值,请取消设置它(unset ONESOURCE_API_KEY)或者在添加服务器时明确清除它: claude mcp add onesource -e ONESOURCE_API_KEY= -e X402_PRIVATE_KEY= -- npx -y @one-source/mcp@latest. 1s_setup_check 显示活动键的前6个字符,以便您确认服务器正在使用哪个键。
重新安装后,说明显示错误的身份验证方法 /reload-plugins 在Claude Code中重新连接工具,但可能不会刷新LLM看到的系统提示。如果您切换身份验证方法(例如API密钥→ x402),重新启动完整的Claude代码以确保指令反映新的身份验证。
“MCP服务器一个源已存在”错误 跑 claude mcp remove onesource 首先,使用更新后的配置重新添加。
窗户: npx 需要 cmd /c 包装器 克劳德代码 /doctor 命令可能会对此发出警告。更新MCP配置以使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "@one-source/mcp@latest"].
npx 挂起,无输出 这很正常——stdio模式等待stdin上的JSON-RPC输入。使用 --http 如果你想要一个HTTP服务器,你可以curl。
端口已在使用中 指定其他端口: npx -y @one-source/mcp@latest --http --port=8080
注册表发布
此包列在 MCP官方注册 在已验证的命名空间下 io.onesource/mcp 继续 格拉玛.发布新版本时,更新两个注册表。
MCP注册表
首次设置
1.安装Go
从下载适用于您平台的安装程序 go.dev/dl 并运行它。验证:
go version2.安装mcp发布器
go install github.com/modelcontextprotocol/registry/cmd/mcp-publisher@latest如果Go模块路径已更改且命令失败,请直接从 取而代之的是页面。
在Windows上,如果无法识别命令,请将Go的bin目录添加到PATH中:
$env:PATH += ";$env:USERPROFILE\go\bin"验证:
mcp-publisher --help3.DNS身份验证(已完成)
这 onesource.io 域有一个DNS TXT记录,证明其所有权 io.onesource 命名空间。这已经配置好了,您不需要重做。
记录位于根域中(onesource.io,不 _mcp-registry.onesource.io):
v=MCPv1; k=ed25519; p=7D3U5rufgNXb/lH2MthTRZdDzEGeE7/Jvg8YkiArQc8=您可以验证它是否解决:
nslookup -type=TXT onesource.io 8.8.8.84.获取私钥
身份验证需要ed25519私钥 十六进制格式 其对应于DNS记录中的公钥。向团队负责人索要此密钥——它存储在团队的密码管理器/保管库中。
如果需要重新生成密钥对(这将使当前DNS记录无效并需要更新):
- 生成新的ed25519密钥对(例如。,
openssl genpkey -algorithm Ed25519 -out key.pem) - 提取原始的32字节私钥种子并转换为十六进制:
openssl pkey -in key.pem -outform DER | tail -c 32 | xxd -p -c 32- 提取DNS TXT记录的base64公钥:
openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64- 更新DNS TXT记录
onesource.io使用新的公钥:
v=MCPv1; k=ed25519; p=- 在尝试登录之前,请等待DNS传播。
发布新版本
每次发布新的npm版本时,更新MCP注册表:
- 发布到npm (注册表验证包是否存在,因此必须首先进行验证):
npm run build
npm publish --access public- 更新
server.json--设置两者version字段以匹配新的npm版本:
{
"version": "x.y.z",
...
"packages": [{ "version": "x.y.z", ... }]
}这 mcpName 领域 package.json 必须 "io.onesource/mcp" 并且必须与 name 领域 server.json。这已经设置好了,不要删除它。
- 验证 (令牌过期,所以每次都要这样做):
mcp-publisher login dns --domain onesource.io --private-key - 发布到注册表:
mcp-publisher publish- 验证:
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=onesource"格拉玛
Glama每天从GitHub仓库自动同步。发布后不需要手动步骤,只需确保将更改推送到 mainThe glama.json repo根目录中的文件控制所有权。手动重新同步可从 Glama管理面板 在认领服务器之后。
许可证
Apache 2.0——请参阅 许可证 了解详情。
