mcpField
T
token-safety-check

token-safety-check

ローカル
github.com/lx1112金融データ04 日前に更新

token-safety-check について

token-safety-check は、記載されたチェーン上のトークンをエージェントやスクリプト向けに評価するサービスです。ルールベースのスコア、平易な理由、変更追跡を提供し、チェック料金は x402 経由で Base 上の USDC で支払います。

主な機能

  1. 010~100 のリスクスコア
  2. 02権限とコントラクトリスクの説明
  3. 03流動性と保有集中度の確認
  4. 04フィンガープリントによる変更追跡
  5. 05x402 による都度払い

活用シーン

  1. 01取引前のトークン確認
  2. 02トークンリスク情報の比較
  3. 03権限や流動性の変化の監視

MCP 対応

MCP クライアントに `check_token_safety` ツールを提供し、トークンアドレスと任意のチェーンまたは前回のフィンガープリントを受け取ります。各チェックの料金は x402 経由で Base 上の USDC で支払います。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"lx1112-token-safety-check": {
"command": "npx",
"args": [
"-y",
"token-safety-check"
],
"env": {
"X402_PRIVATE_KEY": "<X402_PRIVATE_KEY>",
"TOKEN_SAFETY_MAX_USD": "<TOKEN_SAFETY_MAX_USD>"
}
}
}
}
起動コマンドnpx -y token-safety-check
設定が必要な環境変数
X402_PRIVATE_KEYシークレットPrivate key of a dedicated wallet holding a little USDC on Base; pays $0.01 per check
TOKEN_SAFETY_MAX_USDシークレットRefuse checks priced above this many USD (default 0.05)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmtoken-safety-check0.4.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

token-safety-check

このトークンは安全ですか? AI エージェントやスクリプト向けに、Base、Ethereum、Arbitrum、Optimism、Polygon または Solana 上のあらゆるトークンをラグチェックできます。各チェックでは、次の情報が返されます。

  • 0~100 のリスクスコアとレベル(低、中、高、重大)、および平易な言葉による理由:
    • 誰がミント、凍結、ブラックリスト登録、一時停止、手数料変更を行えるか
    • アップグレード可能なコントラクトコード
    • Token-2022 の恒久的な委任、送金手数料、フック
    • 保有者の集中度
    • 流動性の薄さ、または流動性がないこと
  • スコアの根拠となる事実:所有者、権限、供給量、上位保有者、プール
  • USD 価格と流動性
  • フィンガープリント。これを since として渡すと、次のチェックで変更点(新たなリスク、権限の変更、流動性や価格の変動)がわかります。定期的なトークン監視が簡単になります。

チェック料金は Base 上で 1 回につき 0.01 USDC で、x402 を使って、ご自身が管理するウォレットから自動的に支払われます。アカウントや API キーは不要です。エラーや無効な入力に料金はかからず、上限を超える料金のチェックは支出上限によって停止されます(デフォルトは 0.05 ドル)。

スコアはルールベースであり、投資助言ではありません。流動性が深いトークンでは、権限の影響は小さく評価されます。そうした権限は通常、大手発行者のコンプライアンス管理機能だからです(たとえば USDC は凍結やミントが可能です)。

Claude Desktop、Cursor、または任意の MCP クライアントから使う

この用途専用の新しいウォレットを作成し、Base 上で少額の USDC を送金してください。1 ドルで 100 回チェックできます。その後、MCP 設定に以下を追加します(Claude Desktop の場合は claude_desktop_config.json です)。

{
  "mcpServers": {
    "token-safety-check": {
      "command": "npx",
      "args": ["-y", "token-safety-check"],
      "env": { "X402_PRIVATE_KEY": "0x<private key of the dedicated wallet>" }
    }
  }
}

このサーバーには check_token_safety というツールが 1 つあります(address、任意の chain と since)。任意の環境変数は次のとおりです。

  • TOKEN_SAFETY_MAX_USD:チェック 1 回あたりの支出上限。デフォルトは 0.05 です。
  • TOKEN_SAFETY_ENDPOINT:別のデプロイ先を指定します。

コードから使う

npm install token-safety-check
import { createTokenSafetyClient } from "token-safety-check";

const client = createTokenSafetyClient({ privateKey: process.env.X402_PRIVATE_KEY as `0x${string}` });

const first = await client.checkToken({ chain: "base", address: "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed" });
console.log(first.risk.score, first.risk.level, first.risk.summary);
// 15 low Low risk: the owner can pause all transfers; ownership is not renounced.

// Later: what changed since then?
const later = await client.checkToken({ address: first.address, chain: "base", since: first.watch.fingerprint });
if (later.watch.changes?.anythingChanged) console.log(later.watch.changes);

Coinbase AgentKit で使う

import { customActionProvider } from "@coinbase/agentkit";
import { z } from "zod";
import { createTokenSafetyClient } from "token-safety-check";

const safety = createTokenSafetyClient({ privateKey: process.env.X402_PRIVATE_KEY as `0x${string}` });

export const tokenSafety = customActionProvider({
  name: "check_token_safety",
  description: "Rug check a token on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana: 0-100 risk score with reasons.",
  schema: z.object({
    address: z.string().describe("Token contract or Solana mint address"),
    chain: z.enum(["base", "eth", "arbitrum", "optimism", "polygon", "solana"]).optional(),
  }),
  invoke: async (args) => JSON.stringify(await safety.checkToken(args)),
});
// Add tokenSafety to the actionProviders you pass to AgentKit.from(...).

LangChain(JS)で使う

import { tool } from "@langchain/core/tools";
import { z } from "zod";
import { createTokenSafetyClient } from "token-safety-check";

const safety = createTokenSafetyClient({ privateKey: process.env.X402_PRIVATE_KEY as `0x${string}` });

export const checkTokenSafety = tool(async (args) => JSON.stringify(await safety.checkToken(args)), {
  name: "check_token_safety",
  description: "Rug check a token on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana: 0-100 risk score with reasons.",
  schema: z.object({
    address: z.string(),
    chain: z.enum(["base", "eth", "arbitrum", "optimism", "polygon", "solana"]).optional(),
  }),
});

出力例(抜粋)

{
  "address": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed",
  "chain": "base",
  "name": "Degen",
  "symbol": "DEGEN",
  "risk": {
    "score": 15,
    "level": "low",
    "reasons": [
      { "code": "can-pause", "points": 10, "text": "The owner can pause all transfers." },
      { "code": "owner-not-renounced", "points": 5, "text": "Ownership is not renounced." }
    ],
    "summary": "Low risk: the owner can pause all transfers; ownership is not renounced."
  },
  "market": { "dex": "uniswap-v3", "pairedWith": "WETH", "priceUsd": 0.000963, "quoteSideLiquidityUsd": 134000 },
  "watch": { "fingerprint": "eyJzIjoxNSwi…", "changes": null }
}

このパッケージを使わない場合

このチェックは通常の x402 エンドポイントなので、任意の x402 クライアントから直接呼び出せます: GET https://ca-tax-api-mainnet.lxtap.workers.dev/token?chain=<chain>&address=<address>[&since=<fingerprint>]。 x402 Bazaar にも掲載されています。

安全性に関する注意

  • 少額の残高を入れた専用ウォレットを使用してください。秘密鍵がマシンの外に出ることはありません。表示された料金の USDC 支払いに署名するためだけに使われます。
  • 各チェックの料金は支払い前にサーバーの支払いリクエストから取得され、maxUsdPerCheck / TOKEN_SAFETY_MAX_USD を超える金額は拒否されます。

MIT ライセンスです。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。