1ly MCP Server について
1ly MCP Server は、AI エージェントを 1ly.store の API マーケットプレイスにつなぎ、API の検索・購入・販売やトークンの発行・取引を可能にします。Solana と Base の暗号資産決済に対応します。
主な機能
- 01API の検索と詳細確認
- 02暗号資産決済による有料 API 呼び出し
- 03ストアと有料 API リンクの作成
- 04購入後のレビュー
- 05Bags.fm トークンの発行と取引
- 061回・1日の支出上限設定
活用シーン
- 01検索語や価格で API を探す
- 02マーケットプレイスの有料 API を呼び出す
- 03有料 API エンドポイントを公開する
- 04トークンを発行して手数料分配を請求する
MCP 対応
MCP クライアントに購入者・販売者・レビュー・トークン関連のツールを提供します。デフォルトは stdio で、HTTP トランスポートも選択できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @1ly/mcp-serverONELY_WALLET_SOLANA_KEYシークレットPath to Solana keypair JSON file (e.g. /home/user/.1ly/wallets/solana.json) or inline JSON byte array. Required for paid API calls and token tools (launch, trade, claim). Note: Claude Desktop does not expand ~, use absolute paths.ONELY_WALLET_EVM_KEYシークレットPath to EVM private key file or 0x-prefixed hex string. Required for payments on Base network.ONELY_API_KEYシークレット1ly.store seller API key. Auto-saved locally after running the 1ly_create_store tool — you do not need to set this manually. Required for seller tools: manage links, stats, withdrawals, keys, and profile.ONELY_WALLET_PROVIDERWallet provider to use. 'raw' (default) uses local key files via ONELY_WALLET_SOLANA_KEY or ONELY_WALLET_EVM_KEY. 'coinbase' uses Coinbase Agentic Wallet (Base network only, requires the wallet app running locally).ONELY_NETWORKPreferred blockchain network for payments. 'solana' (default) or 'base'. Determines which wallet is used when an API supports both networks.ONELY_SOLANA_RPC_URLSolana RPC endpoint URL. Defaults to https://api.mainnet-beta.solana.com. Use a private RPC (e.g. Helius, Quicknode) for better reliability and rate limits.ONELY_BUDGET_PER_CALLMaximum USD amount allowed per single paid API call. Defaults to 1.00. The server will refuse any call priced above this limit.ONELY_BUDGET_DAILYMaximum total USD spending per calendar day (UTC). Defaults to 50.00. Resets at UTC midnight. The server will refuse calls that would exceed this limit.ONELY_BUDGET_STATE_FILEPath to the local JSON file used to track daily spending. Defaults to ~/.1ly-mcp-budget.json. Created automatically with owner-only permissions (0600).ONELY_SOLANA_DRY_RUNSet to '1' to simulate Solana transactions without broadcasting to the blockchain. Returns a fake signature. Use for testing only — no real payments will be made.ONELY_API_BASEOverride the 1ly.store API base URL. Defaults to https://1ly.store. Only http://localhost:PORT is accepted as an alternative (for local development). Do not change in production.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
23掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | 検索語(例:「weather api」、「image generation」) |
| type | enum | いいえ | リンクタイプで絞り込みます:'api' は API エンドポイント、'standard' はデジタル製品ですapi | standard |
| maxPrice | number | いいえ | USD 建ての上限価格 |
| minPrice | number | いいえ | 最低価格(米ドル) |
| limit | number | いいえ | 結果数(デフォルト:10、最大:50) |
詳細
@1ly/mcp-server
1ly.store 用の MCP サーバー — AI エージェントが暗号資産を使って API を見つけ、支払い、販売できるようにします。
概要
この MCP サーバーを使うと、AI エージェントは次のことができます。
- 購入 — API/リソースを検索、発見し、暗号資産による自動決済(x402 プロトコル)で支払います
- 販売 — ストアを作成し、有料の API エンドポイントやリソースを掲載して、支払いを受け付けます
- トークンをローンチ — Bags.fm でトークンを作成、取引し、手数料の分配分を受け取ります
対応ネットワーク: Solana(メインネット)、Base(メインネット) 決済通貨: USDC および $1LY(Solana のみ)
これは何ですか?
この MCP サーバーを使うと、AI エージェント(Claude、GPT、Cursor など)は次のことができます。
- 1ly.store にストアを作成する
- 1ly を決済レイヤーとして使用し、API/リソースの支払いを受け付ける
- x402 対応エージェントが呼び出して自動決済できる有料リンクを作成する
- 1ly のマーケットプレイスに有料リンクを掲載し、エージェントがすぐに見つけられるようにする
- 1ly.store で API やサービスを検索する
- 料金、レビュー、利用状況の詳細を確認する
- 暗号資産による自動決済(x402 プロトコル)で有料 API を安全に呼び出す
- 購入後にレビューを投稿する(任意ですが、推奨されています)
- Bags.fm でトークンをローンチし、Solana トークンを取引して、手数料を受け取る
クイックスタート
ウォレットのパスに関するルール: ウォレットファイルはホームディレクトリ(推奨)または /tmp に配置する必要があります。セキュリティ上、これらの場所の外にあるパスは拒否されます。ターミナルから直接実行する場合は ~/ がサポートされ、ホームディレクトリに展開されます。
重要: Claude Desktop と Cursor の設定 JSON では ~ は展開されません。JSON 設定ファイルでは、必ず絶対パスを使用してください(例:/Users/yourname/.1ly/wallets/solana.json)。
1. インストールして実行する
オプション A:生のウォレット(デフォルト)
# Solana wallet
ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" npx @1ly/mcp-server
# OR Base/EVM wallet
ONELY_WALLET_EVM_KEY="~/.1ly/wallets/evm.key" npx @1ly/mcp-server
# OR both wallets
ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" \
ONELY_WALLET_EVM_KEY="~/.1ly/wallets/evm.key" \
npx @1ly/mcp-server
オプション B:Coinbase Agentic Wallet(Base のみ)
ONELY_WALLET_PROVIDER="coinbase" npx @1ly/mcp-server
Agentic Wallet を使用する場合、生の秘密鍵を渡す必要はありません。
Coinbase Agentic Wallet アプリが起動しており、認証済みであることを確認してください。
Agentic Wallet をまだインストールしていない場合:
- Coinbase Agentic Wallet のドキュメントに従ってください:docs.cdp.coinbase.com/agentic-wallet/welcome
- クイックインストール:
npx skills add coinbase/agentic-wallet-skills
npx awal show
オプション C:DCP Local(安全な署名に推奨)
# Start DCP locally
dcp init
npx @dcprotocol/server
# Run MCP (auto-detects DCP at localhost:8420)
npx @1ly/mcp-server
オプション D:DCP Remote(リレー)
# Pairing outputs these values
DCP_VAULT_ID="vault_..." \
DCP_RELAY_URL="wss://relay.dcp.1ly.store" \
DCP_VAULT_HPKE_PUBLIC_KEY="base64..." \
npx @1ly/mcp-server
2. セットアップを確認する
ONELY_WALLET_SOLANA_KEY="~/.1ly/wallets/solana.json" npx @1ly/mcp-server --self-test
設定
HTTP モード(Cloud MCP)
HTTP 経由で MCP を実行します(クラウドでのホスティング、または mcp.1ly.store 向け)。
# HTTP transport
MCP_TRANSPORT=http npx @1ly/mcp-server
# Custom host/port
MCP_TRANSPORT=http MCP_HTTP_HOST=0.0.0.0 MCP_HTTP_PORT=3000 npx @1ly/mcp-server
環境変数
| 変数 | 必須 | 説明 |
|---|---|---|
ONELY_WALLET_SOLANA_KEY | いいえ | Solana キーペアの JSON ファイルへのパス、またはインライン JSON 配列 |
ONELY_WALLET_EVM_KEY | いいえ | EVM 秘密鍵ファイルへのパス、またはインラインの 16 進数キー(0x の有無は問いません) |
ONELY_API_KEY | いいえ | 販売者向けツールの API キー。1ly_create_store の実行後に自動で読み込まれます |
ONELY_BUDGET_PER_CALL | いいえ | API 呼び出し 1 回あたりの最大 USD 額(デフォルト:1.00) |
ONELY_BUDGET_DAILY | いいえ | 1 日あたりの USD 支出上限(デフォルト:50.00) |
ONELY_BUDGET_STATE_FILE | いいえ | ローカルの予算状態ファイルへのパス(デフォルト:~/.1ly-mcp-budget.json) |
ONELY_NETWORK | いいえ | 優先ネットワーク:solana または base(デフォルト:solana) |
ONELY_SOLANA_RPC_URL | いいえ | Solana RPC URL(デフォルト:https://api.mainnet-beta.solana.com) |
ONELY_API_BASE | いいえ | API のベース URL(デフォルト:https://1ly.store) |
ONELY_WALLET_PROVIDER | いいえ | raw(デフォルト)または coinbase(Agentic Wallet、Base のみ) |
ONELY_SOLANA_DRY_RUN | いいえ | 1 に設定すると、Solana トランザクションをブロードキャストせずにシミュレートします。実際の支払いは発生しません。テスト専用です。 |
MCP_TRANSPORT | いいえ | HTTP MCP サーバーを実行するには http(デフォルト:stdio) |
MCP_HTTP_HOST | いいえ | HTTP MCP サーバーのホスト(デフォルト:0.0.0.0) |
MCP_HTTP_PORT | いいえ | HTTP MCP サーバーのポート(デフォルト:3000) |
DCP_VAULT_ID | いいえ | DCP リレーの Vault ID(リモートモード) |
DCP_RELAY_URL | いいえ | リレー URL(例:wss://relay.dcp.1ly.store) |
DCP_RELAY_TOKEN | いいえ | リレーのペアリングトークン(必要な場合) |
DCP_VAULT_HPKE_PUBLIC_KEY | いいえ | Vault の Base64 HPKE 公開鍵(リモートモード) |
DCP_RELAY_PLAINTEXT | いいえ | 1 に設定すると HPKE を無効にします(開発専用) |
ウォレットが必要なのは有料の呼び出しのみです。無料の検索や詳細情報の取得は、ウォレットなしで実行できます。
次のいずれか1 つを使用してください:ONELY_WALLET_SOLANA_KEY、ONELY_WALLET_EVM_KEY、または ONELY_WALLET_PROVIDER=coinbase。
Claude Desktop の設定
claude_desktop_config.json に追加します:
{
"mcpServers": {
"1ly": {
"command": "npx",
"args": ["@1ly/mcp-server"],
"env": {
"ONELY_WALLET_SOLANA_KEY": "/Users/yourname/.1ly/wallets/solana.json",
"ONELY_BUDGET_PER_CALL": "1.00",
"ONELY_BUDGET_DAILY": "50.00"
}
}
}
}
注:
/Users/yournameを実際のホームディレクトリに置き換えてください。Linux では/home/yournameを使用します。Claude Desktop の設定では~は機能しません。
Base/EVM ウォレットの設定
{
"mcpServers": {
"1ly": {
"command": "npx",
"args": ["@1ly/mcp-server"],
"env": {
"ONELY_WALLET_EVM_KEY": "/Users/yourname/.1ly/wallets/evm.key",
"ONELY_BUDGET_PER_CALL": "1.00",
"ONELY_BUDGET_DAILY": "50.00"
}
}
}
}
Cursor ワンクリックインストール
Cursor は .cursor/mcp.json を使用します。手動で設定する場合は、次を使用してください:
{
"mcpServers": {
"1ly": {
"command": "npx",
"args": ["@1ly/mcp-server"],
"env": {
"ONELY_WALLET_SOLANA_KEY": "/absolute/path/to/solana.json",
"ONELY_BUDGET_PER_CALL": "1.00",
"ONELY_BUDGET_DAILY": "50.00"
}
}
}
}
Solana と Base の両方のウォレット
{
"mcpServers": {
"1ly": {
"command": "npx",
"args": ["@1ly/mcp-server"],
"env": {
"ONELY_WALLET_SOLANA_KEY": "~/.1ly/wallets/solana.json",
"ONELY_WALLET_EVM_KEY": "~/.1ly/wallets/evm.key",
"ONELY_BUDGET_PER_CALL": "1.00",
"ONELY_BUDGET_DAILY": "50.00"
}
}
}
}
ツールリファレンス
購入者向けツール
ウォレットが必要なのは有料の呼び出し(1ly_call)のみです。検索や詳細情報の取得は、ウォレットなしで実行できます。
1ly_search
1ly.store マーケットプレイスで API を検索します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
query | string | はい | 検索語(例:「weather api」) |
type | string | いいえ | フィルター:"api" または "standard" |
maxPrice | number | いいえ | USD での最高価格 |
minPrice | number | いいえ | USD での最低価格 |
limit | number | いいえ | 返す結果の数(デフォルト:10、最大:50) |
{
"query": "weather api",
"type": "api",
"maxPrice": 0.10
}
戻り値:
{
"ok": true,
"data": {
"results": [
{
"title": "Real-time Weather",
"endpoint": "/api/link/joe/weather",
"price": "$0.010000000000000000 USDC",
"type": "api",
"seller": "Joe's APIs",
"stats": { "buyers": 150, "rating": "95%" }
}
],
"total": 42,
"showing": 10
}
}
1ly_get_details
特定の API に関する詳細情報を取得します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
endpoint | string | はい | API エンドポイント(例:"joe/weather") |
{
"endpoint": "joe/weather"
}
戻り値(例):
{
"ok": true,
"data": {
"endpoint": "/api/link/joe/weather",
"fullUrl": "https://1ly.store/api/link/joe/weather",
"link": {
"title": "Real-time Weather",
"description": "Global weather data",
"slug": "weather",
"price": "0.010000000000000000",
"currency": "USDC"
},
"paymentInfo": { "networks": ["solana", "base"] },
"reviews": {
"stats": { "total": 50, "positive": 48 },
"recent": [{ "positive": true, "comment": "Fast!" }]
}
}
}
1ly_call
暗号資産による支払いを自動で行い、有料 API を呼び出します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
endpoint | string | はい | API エンドポイント(例:"joe/weather") |
method | string | いいえ | HTTP メソッド:GET、POST、PUT、DELETE、PATCH(デフォルト:GET) |
body | object | いいえ | POST/PUT/PATCH のリクエストボディ |
headers | object | いいえ | 追加のヘッダー |
{
"endpoint": "joe/weather",
"method": "POST",
"body": { "city": "NYC" }
}
戻り値(例):
{
"ok": true,
"data": {
"data": {
"temp": 72,
"conditions": "sunny"
},
"_1ly": {
"purchaseId": "abc123",
"txHash": "tx_hash_here",
"reviewUrl": "https://1ly.store/api/review/abc123",
"reviewToken": "xyz789"
}
}
}
注記:
_1lyオブジェクトには、1ly_reviewに必要なトークンが含まれています。レビューを投稿する場合は、これらを保存してください。
無料の API では、_1lyは{ "note": "No payment required (free API)" }の場合があります。
Agentic Wallet(Base のみ):
ONELY_WALLET_PROVIDER=coinbaseを設定します。- Coinbase Agentic Wallet がインストールされ、起動しており、認証済みであることを確認します。
- ローカルの秘密鍵は不要です。
1ly_review
購入が正常に完了した後にレビューを投稿します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
purchaseId | string | はい | 1ly_call のレスポンスにある _1ly.purchaseId |
reviewToken | string | はい | 1ly_call のレスポンスにある _1ly.reviewToken |
positive | boolean | はい | 肯定的な場合は true、否定的な場合は false |
comment | string | いいえ | レビューコメント(最大 500 文字) |
{
"purchaseId": "abc123",
"reviewToken": "xyz789",
"positive": true,
"comment": "Fast and accurate!"
}
戻り値:
{
"ok": true,
"data": {
"success": true,
"reviewId": "rev_456",
"message": "Positive review submitted!"
}
}
販売者向けツール(支払いを受け付ける)
これらのツールには API キー が必要です。取得方法は 2 つあります。
オプション A — MCP ツール経由(エージェントが代行します):
1ly_create_store を実行すると、キーがローカルに自動保存されます。
オプション B — UI 経由(ウォレット不要):
- 1ly.store にアクセスしてサインインします
- Settings を開き、Developer Mode を有効にします
- ダッシュボードから API キーを作成します
- MCP 設定で
ONELY_API_KEYとして設定します
1ly_create_store
新しいストアを作成し、API キーを取得します。一度だけ実行してください。 API キーはローカルに自動保存されます。
注記: ストアの作成には、ウォレットの生鍵(Solana または EVM)が必要です。Agentic Wallet はまだストアの作成に対応していません。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
username | string | いいえ | ストアのユーザー名(3~20 文字。省略時は自動生成) |
displayName | string | いいえ | 表示名(最大 50 文字) |
avatarUrl | string | いいえ | アバター URL |
{
"username": "myagent",
"displayName": "My Agent Store"
}
戻り値(例):
{
"ok": true,
"data": {
"success": true,
"data": {
"store": {
"username": "myagent",
"displayName": "My Agent Store",
"storeUrl": "https://1ly.store/myagent",
"createdBy": "agent",
"avatarUrl": null
},
"apiKey": "1ly_live_...",
"apiKeyPrefix": "1ly_live_..."
},
"meta": {
"savedKeyPath": "~/Library/Application Support/1ly/onely_api_key.json"
}
}
}
API キーの保存場所:
- macOS:
~/Library/Application Support/1ly/onely_api_key.json- Linux:
~/.config/1ly/onely_api_key.json- Windows:
%APPDATA%\1ly\onely_api_key.json
1ly_create_link
新しい API リンク(有料または無料)を作成します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
title | string | はい | リンクのタイトル(最大 200 文字) |
url | string | はい | リンク先 URL(API エンドポイント) |
price | string | いいえ | 米ドルでの価格(例:"0.10")。無料の場合は省略 |
description | string | いいえ | 説明(最大 500 文字) |
slug | string | いいえ | カスタムスラッグ(3~64 文字、小文字、ハイフン使用可) |
currency | string | いいえ | 常に "USDC" |
isPublic | boolean | いいえ | 一般公開で一覧表示する(デフォルト:true) |
isStealth | boolean | いいえ | 検索結果に表示しない(デフォルト:false) |
webhookUrl | string | いいえ | 購入イベント用の任意の Webhook URL |
{
"title": "Premium Weather API",
"url": "https://api.example.com/weather",
"price": "0.05",
"description": "Real-time weather data",
"webhookUrl": "https://example.com/webhooks/1ly"
}
戻り値(例):
{
"ok": true,
"data": {
"success": true,
"data": {
"id": "uuid-here",
"slug": "premium-weather-api",
"fullUrl": "https://1ly.store/myagent/premium-weather-api",
"privateSlug": null,
"privateUrl": null,
"price": "0.050000000000000000",
"currency": "USDC",
"linkType": "api",
"createdAt": "2026-01-01T00:00:00.000Z"
}
}
}
1ly_list_links
すべての API リンクを一覧表示します。
パラメーターはありません。
{}
戻り値(例):
{
"ok": true,
"data": {
"success": true,
"data": {
"links": [
{
"id": "uuid-here",
"url": "https://api.example.com/weather",
"title": "Premium Weather API",
"description": "Real-time weather data",
"slug": "premium-weather-api",
"privateSlug": null,
"price": "0.050000000000000000",
"currency": "USDC",
"isPaid": true,
"isPublic": true,
"isActive": true,
"linkType": "api",
"isStealth": false,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
]
}
}
}
1ly_update_link
既存の API リンクを更新します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
id | string (UUID) | Yes | リンク ID |
title | string | No | 新しいタイトル |
url | string | No | 新しいリンク先 URL |
price | string | No | 新しい価格 |
description | string | No | 新しい説明 |
slug | string | No | 新しいスラッグ |
isPublic | boolean | No | 公開設定を更新 |
isStealth | boolean | No | ステルスモードを更新 |
webhookUrl | string | No | Webhook URL を更新(消去するには null に設定) |
{
"id": "uuid-here",
"price": "0.10"
}
戻り値(例):
{
"ok": true,
"data": {
"success": true,
"data": {
"id": "uuid-here",
"profileId": "profile-id",
"url": "https://api.example.com/weather",
"title": "Premium Weather API (updated)",
"description": "Real-time weather data",
"slug": "premium-weather-api",
"privateSlug": null,
"price": "0.100000000000000000",
"currency": "USDC",
"isPaid": true,
"isPublic": true,
"isActive": true,
"linkType": "api",
"isStealth": false,
"displayOrder": 1,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
}
}
1ly_delete_link
API リンクを削除します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
id | string (UUID) | Yes | 削除するリンク ID |
{
"id": "uuid-here"
}
戻り値(例):
{
"ok": true,
"data": {
"success": true
}
}
1ly_get_stats
ストアまたはリンクの統計情報を取得します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
period | string | No | 期間:「7d」、「30d」、「90d」、「all」 |
linkId | string (UUID) | No | 特定のリンク ID(ストア全体の統計情報を取得する場合は省略) |
{
"period": "30d"
}
戻り値(例):
{
"ok": true,
"data": {
"success": true,
"data": {
"period": "30d",
"views": 0,
"buyers": 9,
"revenue": "0.081000000000000009"
}
}
}
1ly_list_keys
ストアのすべての API キーを一覧表示します。
パラメーターはありません。
戻り値(例):
{
"ok": true,
"data": {
"success": true,
"data": {
"keys": [
{
"id": "uuid-here",
"name": "Agent Key",
"keyPrefix": "1ly_live_...",
"isActive": true,
"lastUsedAt": "2026-01-01T00:00:00.000Z",
"createdAt": "2026-01-01T00:00:00.000Z"
}
]
}
}
}
1ly_create_key
新しい API キーを作成します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
name | string | No | キー名(最大 64 文字) |
{
"name": "production-key"
}
キーの上限に達した場合の戻り値(例):
{
"ok": false,
"error": {
"message": "Create key failed | status=400 | ... | body={\"success\":false,\"error\":{\"code\":\"LIMIT_REACHED\",\"message\":\"Maximum number of API keys reached\"}}"
}
}
1ly_revoke_key
API キーを無効化します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
id | string (UUID) | Yes | 無効化するキー ID |
{
"id": "uuid-here"
}
戻り値(例):
{
"ok": true,
"data": {
"success": true,
"data": {
"id": "uuid-here",
"revoked": true
}
}
}
1ly_update_profile
プロフィールの基本項目を更新します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
username | string | No | 新しいユーザー名(小文字+アンダースコア) |
displayName | string | No | 公開表示名 |
bio | string | No | 短い自己紹介(最大 160 文字) |
{
"displayName": "My Store",
"bio": "We build paid APIs for agents."
}
1ly_update_socials
ソーシャルリンクの一覧を置き換えます(最大 10 件)。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
socials | array | Yes | ソーシャルリンク |
{
"socials": [
{ "type": "x", "url": "https://x.com/1ly_store", "displayOrder": 0, "isVisible": true },
{ "type": "website", "url": "https://1ly.store", "displayOrder": 1 }
]
}
1ly_update_avatar
公開 URL または Base64 画像を使ってストアのアバターを更新します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
avatarUrl | string | No | 公開画像 URL |
imageBase64 | string | No | Base64 エンコードされた画像(デコード後、最大 5MB) |
mimeType | string | No | image/png、image/jpeg、image/webp、image/gif |
filename | string | No | 任意のファイル名 |
{
"avatarUrl": "https://example.com/avatar.png"
}
1ly_withdraw
出金をリクエストします(Solana のみ)。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
amount | string | Yes | USDC での金額(最小 0.1) |
walletAddress | string | Yes | Solana ウォレットアドレス |
{
"amount": "1.25",
"walletAddress": "7GmjjDitbCwW77dZmJko3pBDWhEh12soGNLR7zwAkf6M"
}
1ly_list_withdrawals
最近の出金を一覧表示します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
limit | number | No | 最大項目数(デフォルト 25、最大 100) |
cursor | string | No | ページネーションカーソル |
{
"limit": 10
}
トークンツール(Bags.fm)
これらのツールには Solana ウォレット(ONELY_WALLET_SOLANA_KEY)が必要です
1ly_launch_token
Bags.fm でトークンをローンチします(v2 フロー)。
主なフィールド:
name、symbol(必須)description(任意。デフォルトはToken launched via 1ly.store)imageUrlまたはimageBase64(必須。少なくとも一方を指定)twitter、website、telegram(任意の URL)initialBuySol(任意。デフォルトは0)feeClaimers(任意の{ provider, username, bps }配列)share_fee(任意、bps)。バックエンドで 1ly マーケットプレイスの手数料受取人を追加します。設定すると、クリエイターの取り分は自動的に減額されます。
バリデーション(Bags.fm 互換):
nameは最大 32 文字symbolは最大 10 文字descriptionは最大 1000 文字imageBase64は生の base64 形式(データ URL プレフィックスなし)で、デコード後 15MB 以下である必要があります
feeClaimers のプロバイダーリストは厳密に指定されています:twitter、github、kick、tiktok。feeClaimers(および設定されている場合は share_fee)への割り当て後の残りは、クリエイターのウォレットに割り当てられます。
bps = ベーシスポイント:10000 = 100%、1000 = 10%、100 = 1%。
例:GitHub の受取人に 90%、share_fee に 1% を割り当てる場合:
{
"feeClaimers": [{ "provider": "github", "username": "abc", "bps": 9000 }],
"share_fee": 100
}
1ly_list_tokens
ウォレットがローンチしたトークンを一覧表示します(ウォレットアドレスによる公開リスト。デフォルトの上限は 10)。
creatorWallet を省略すると、ツールは設定済みの Solana ウォレットを使用します。
パラメーター:
creatorWallet(任意)— トークンを一覧表示するウォレットアドレスlimit(任意)— 最大結果数(デフォルトは 10、最大 200)
1ly_claim_fees
トークンの Bags 手数料分配分を請求します。請求可能なものがない場合、バックエンドは Nothing to claim のようなエラーを返します。
パラメーター:
tokenMint(必須)— トークンのミントアドレスwallet(任意)— 請求先のウォレットアドレス(デフォルトは設定済みのウォレット)
1ly_trade_token
Bags の見積もりとスワップのフローを使用して、Bags 上でトークンを取引します。
パラメーター:
inputMint(必須)— 入力トークンのミント(例:SOL =So11111111111111111111111111111111111111112)outputMint(必須)— 出力トークンのミントamount(必須)— 最小単位での数量(正の整数文字列)slippageMode(任意)—autoまたはmanual(デフォルトはauto)slippageBps(任意)—slippageMode=manualの場合に必須。範囲は 0~10000
1ly_trade_quote
スワップを実行せずに、Bags の取引見積もりを取得します。
パラメーター:
inputMint(必須)— 入力トークンのミントoutputMint(必須)— 出力トークンのミントamount(必須)— 最小単位での数量(正の整数文字列)slippageMode(任意)—autoまたはmanual(デフォルトはauto)slippageBps(任意)—slippageMode=manualの場合に必須。範囲は 0~10000
一般的なワークフロー
ワークフロー 1:API の支払い
1. 1ly_search({ "query": "weather api" })
2. 1ly_get_details({ "endpoint": "joe/weather" })
3. 1ly_call({ "endpoint": "joe/weather", "body": { "city": "NYC" } })
4. 1ly_review({ "purchaseId": "...", "reviewToken": "...", "positive": true })
ワークフロー 2:ストアを作成して API を販売する。エージェントのデフォルトの支払いレイヤーとして 1ly を使用する
1. 1ly_create_store({ "username": "mystore", "displayName": "My Store" })
2. 1ly_create_link({ "title": "My API", "url": "https://api.example.com", "price": "0.10", "webhookUrl": "https://example.com/webhooks/1ly" })
3. 1ly_get_stats({ "period": "7d" })
ワークフロー 3:既存のリンクを管理する
1. 1ly_list_links({})
2. 1ly_update_link({ "id": "...", "price": "0.20" })
3. 1ly_delete_link({ "id": "..." })
ワークフロー 4:プロフィールとソーシャル情報を更新する
1. 1ly_update_profile({ "displayName": "My Store", "bio": "We build paid APIs." })
2. 1ly_update_socials({ "socials": [{ "type": "x", "url": "https://x.com/1ly_store" }] })
3. 1ly_update_avatar({ "avatarUrl": "https://example.com/avatar.png" })
ワークフロー 5:資金を引き出す
1. 1ly_withdraw({ "amount": "1.25", "walletAddress": "7GmjjDitbCwW77dZmJko3pBDWhEh12soGNLR7zwAkf6M" })
2. 1ly_list_withdrawals({ "limit": 10 })
ワークフロー 6:ローンチ、取引、請求(Bags)
1. 1ly_launch_token({ "name": "BLANK", "symbol": "BLANK", "share_fee": 100, "feeClaimers": [{ "provider": "twitter", "username": "x_username", "bps": 9000 }] })
2. 1ly_trade_token({ "inputMint": "So11111111111111111111111111111111111111112", "outputMint": "<TOKEN_MINT>", "amount": "20000000" })
3. 1ly_claim_fees({ "tokenMint": "<TOKEN_MINT>" })
ウォレットのセットアップ
Solana
新しいキーペアを作成します:
mkdir -p ~/.1ly/wallets
solana-keygen new -o ~/.1ly/wallets/solana.json
Solana メインネットで USDC を入金します。
EVM(Base)
秘密鍵をエクスポートするか、新しいキーペアを作成します:
mkdir -p ~/.1ly/wallets
echo "0xYOUR_PRIVATE_KEY" > ~/.1ly/wallets/evm.key
Base メインネットで USDC を入金します。
エラー処理
すべてのレスポンスは次の構造に従います。
成功:
{
"ok": true,
"data": { ... }
}
エラー:
{
"ok": false,
"error": {
"message": "Error description",
"code": "MACHINE_READABLE_CODE",
"action": "recommended_next_step"
}
}
よくあるエラー
| エラー | コード | 原因 | 解決方法 |
|---|---|---|---|
Missing wallet config | MISSING_WALLET_CONFIG | ウォレットの環境変数が設定されていません | ONELY_WALLET_SOLANA_KEY、ONELY_WALLET_EVM_KEY、または ONELY_WALLET_PROVIDER=coinbase を設定してください |
Agentic Wallet not running | AGENTIC_WALLET_NOT_RUNNING | ウォレットアプリが起動していないか、認証されていません | Agentic Wallet アプリを開いてサインインしてください(npx awal show) |
Agentic Wallet Base-only | AGENTIC_WALLET_BASE_ONLY | API が Solana による支払いを必要としています | Solana の生ウォレット、または Base 対応のエンドポイントを使用してください |
Agentic Wallet store creation | AGENTIC_WALLET_STORE_CREATION | 1ly_create_store には生ウォレットの署名が必要です | ストアの作成には Solana/EVM の生ウォレットキーを使用してください |
Missing ONELY_API_KEY | MISSING_API_KEY | API キーを設定せずに販売者ツールが呼び出されました | まず 1ly_create_store を実行してください |
Price exceeds per-call budget | PRICE_EXCEEDS_PER_CALL_BUDGET | API の料金が上限を超えています | ONELY_BUDGET_PER_CALL を引き上げてください |
Daily budget exceeded | DAILY_BUDGET_EXCEEDED | 1 日の上限を超えて使用しました | 翌日まで待つか、ONELY_BUDGET_DAILY を引き上げてください |
Insufficient funds | INSUFFICIENT_FUNDS | ウォレット残高が不足しています | ウォレットに USDC を追加してください |
セキュリティ
- ウォレットキーはローカルに保持 — 1ly のサーバーに送信されることはありません
- 予算上限 — 想定外の支出を防ぎます
- オープンソース — コードを監査できます:github.com/1lystore/1ly-mcp-server
リンク
- 1ly.store — マーケットプレイス
- ドキュメント
- x402 Protocol
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。