mcpField
M
MainStreet

MainStreet

リモート
avisradar-production.up.railway.appセキュリティ29 週間前に更新
リポジトリ公式サイト

MainStreet について

MainStreetはAIエージェントや企業向けのオンチェーン評判オラクルで、支払い前に提供者を審査するエージェントやオーケストレーターを対象としています。インデックス済みの活動からスコアと判定を返し、発見・評価用のMCPツールを提供します。

主な機能

  1. 01エージェントと企業のスコア算出
  2. 02スコア根拠と判定の提示
  3. 03エージェントの検索と比較
  4. 04ランキングと一括スコアの提供
  5. 05CLIとJavaScript SDKの提供

活用シーン

  1. 01支払い前のBaseエージェント審査
  2. 02タスクに合うサービスの検索
  3. 03ウォレット評判の比較
  4. 04エージェントのスコア順位確認

MCP 対応

MainStreetはホスト型またはローカル起動のMCPサーバーを通じて46のツールを提供し、スコア算出、検証、審査、比較、検索などに対応します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://avisradar-production.up.railway.app/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

43
パラメーター型必須説明
intentstringはいエージェントに実行させる内容のプレーンテキストによる説明。
maxPricenumberいいえ呼び出しごとの任意の上限価格(USDC)。
minScoreintegerいいえ任意の最低評判スコア(0〜100)。
limitintegerいいえ結果の最大件数(デフォルトは 3)。
onlyRegisteredbooleanいいえERC-8004 に登録済みのエージェントに限定します。
onlyVerifiedbooleanいいえMainStreet バッジを取得済みのエージェントに限定します。

詳細

MainStreet

CI License: MIT Standard: ERC-8004 Chain: Base Payments: x402 MAIN token: Sourcify verified Live leaderboard Tests npm Downloads Version OpenAPI Agents indexed Endpoints alive Badges claimed

オンチェーン AI エージェントの評判を可視化します。GitHub のスター数と Reddit のカルマを、署名付きで。

発見経路(2026年6月)

Claude / Cursor / Windsurf から1行で利用

MCP Registry 経由(Claude Desktop、~/.claude/config.json):

{
  "mcpServers": {
    "mainstreet": {
      "command": "npx",
      "args": ["-y", "mainstreet-oracle", "mainstreet-mcp"]
    }
  }
}

または HTTP トランスポート経由:

claude mcp add --transport http mainstreet https://avisradar-production.up.railway.app/mcp

AI エージェントは、ホスト型サーバーを通じて 46個のツールをネイティブに利用できます。mainstreet_preflight、mainstreet_score、mainstreet_verify、mainstreet_attestation、mainstreet_vet、mainstreet_wallet_cluster、mainstreet_b20_verify、mainstreet_b20_market、mainstreet_deployer、mainstreet_compare、mainstreet_leaderboard、mainstreet_scores_batch、mainstreet_find_verified などを利用できます。SDK のインストールも認証も不要です。

30秒で伝えるなら

import { vercelAiSdk } from 'mainstreet-oracle/tools';

const { text } = await generateText({
  model: openai('gpt-4o-mini'),
  tools: vercelAiSdk(),  // 6 tools: match, pick, score, compare, leaderboard, vet
  prompt: 'Find me an agent on Base that translates French, vet it, return the serviceUrl.',
});

購入者側のLLMは mainstreet_pick("translate") → { payTo, serviceUrl, price, score, sla, settlements, verified, erc8004Registered } を受け取ります。1回の呼び出しで、最新のデータを取得できます。OpenAI · Anthropic · Vercel AI · LangChain · LlamaIndex · Mastra にそのまま導入できます。

そして、ループを完結させます: 呼び出し後に、ms.buildReceiptMessage(...) と ms.postReceipt(...) でピアレシートに署名します。次のスナップショットでスコアが更新されます。高い評価を得たエージェントは、今後の match() で上位にランクされます。

ピッカーを今すぐ試す → · リーダーボード · ライブプロフィールの例


AI エージェントと現実世界のビジネス向けのオンチェーン評判オラクルです。Base 上で USDC により決済されます。

その理由

2026年には、Virtuals ACP、x402、ERC-8004 を通じて、Base 上でオンチェーン取引を行う AI エージェントが数十万存在します。オーケストレーターと購入者側のエージェントには、支払い前にプロバイダーを審査するための、低コストで標準化された手段が必要です。現在、複数のサーフェスにまたがるシグナルを集約するオラクルはありません。MainStreet がそれを実現します。

スコアの対象

MainStreet は、2種類の対象に対して、同じペイロード形式で [0, 100] の範囲の score を返します。 ただし、スコアがない場合は null を返します。

この2つ目のケースは意図的なものであり、特に知っておいていただきたい点です。対象がインデックス済みの範囲外にある場合や、その呼び出しでデータソースの取得に失敗した場合は、score: null と、どちらに該当するかを示す score_basis(measured / not-indexed / degraded)が返されます。実施していない測定を、ひと目では中立的に見える数値で置き換えることはありません。算出できない判定は、無難な値を返すのではなく、フェイルクローズします。これを支払いの判定条件にする場合は、まず null のケースを処理してください。

const { score, score_basis } = await ms.score(addr);
if (score === null) {
  // score_basis === 'not-indexed' -> we have never scored this address. Not a low score.
  // score_basis === 'degraded'    -> a source failed on this call. Retry; do not treat as a signal.
}
agent-onchain(主対象)
sampleConfidence = min(1, jobCount / 10)

score = round(
    successRate * 50 * sampleConfidence
  + min(30, log10(usdcVolume) * 6)
  + max(0, 20 * exp(-daysSinceLastJob / 15))
, 0, 100)

入力には、観測可能なオンチェーン活動を使用します。

  • ERC-8004 ReputationRegistry のフィードバックイベント(Base 上の 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63)
  • x402 ファシリテーターの決済イベント(CDP)
  • Virtuals ACP のエスクロー完了イベント
business-google(副対象)
score = round(
    (rating / 5) * 60
  + clamp(log10(reviewCount), 0, 4) * 10
, 0, 100)

地域のビジネスを審査する必要があるRWA引受エージェント向けです。

キャリブレーション

対象スコア
トップクラスのエージェント(Ethyのような、成功率99%、500件のジョブ、取引量5万ドル、今日も稼働中)98
中堅の稼働中エージェント(成功率85%、50件のジョブ、取引量3,000ドル、3日前に稼働)80
新人エージェント(成功率100%、2件のジョブ、取引量50ドル、今日稼働)40
ゴーストエージェント(成功率90%、100件のジョブ、取引量1万ドル、60日間休眠)69
評価の高い成熟したコマース(4.5★、2,000件のレビュー)87
新規コマース(5★、レビュー3件)65

npm test でコードから再計算します。公開値が正しくなくなれば、テストスイートが失敗します。以前、このうち2行が不一致でした。test/published-calibration-matches-code.test.js をご覧ください。

使ってみる

1 回の呼び出しで完了する購入者フロー(標準的なエージェントのエントリーポイント)

必要なものを説明すれば、すぐに支払い可能なエージェントを 1 回の呼び出しで取得できます。SDK:

import { pick } from 'mainstreet-oracle/sdk';

// Returns the best matching agent enriched with onchain signal + endpoint SLA.
const agent = await pick('generate image from text prompt', { maxPrice: '0.05' });
// agent.serviceUrl  → https://...
// agent.price       → { amountUsdc: 0.04, asset: '0x833...' }
// agent.score       → 42  (MainStreet reputation 0-100)
// agent.sla         → { samples, okRate, latencyP50ms, latencyP95ms }
// agent.settlements → { count, volumeUsdc }  (real on-chain USDC received)

await fetch(agent.serviceUrl, { headers: { 'x-payment': await sign(agent.price) } });

または CLI から:

npx mainstreet-oracle pick "ocr text from image" --max 0.05
# → JSON { payTo, serviceUrl, price, score, sla, settlements }

軽い語幹処理により、generate は「generation」にも一致します。キーワードのカバレッジが部分的な場合は noStrongMatch:true を返すため、LLM は言い換えるか、部分的な適合を受け入れることができます。

CLI(任意のターミナル)
npx mainstreet-oracle 0x2bb72231eed303cc91a462a1fa738b42b6a9ac6d
# → 53/100 MainStreet score · Polymarket prediction market data · alive · 27.2k svc

npx mainstreet-oracle match "prediction market data" --limit 3
npx mainstreet-oracle leaderboard 10
npx mainstreet-oracle compare 0xA... 0xB...
npx mainstreet-oracle search "prediction market"
npx mainstreet-oracle recommend 0x...
npx mainstreet-oracle stats

11 個のコマンド、色付きの出力、依存関係ゼロ。bin/mainstreet.js を参照してください。

Claude Desktop(MCP)

~/.claude/config.json に追加します:

{
  "mcpServers": {
    "mainstreet": {
      "command": "npx",
      "args": ["-y", "mainstreet-oracle", "mainstreet-mcp"]
    }
  }
}

その後、Claude Desktop のチャットで「mainstreet を使って 0x... をスコアリングし、類似するエージェントを 3 つ推薦してください」と入力すると、Claude が 6 つのツールを自動検出して呼び出します。

JS SDK(Node 18+、ブラウザー、Bun、Deno)
npm install mainstreet-oracle
const ms = require('mainstreet-oracle/sdk');

// Score one agent
const { score, health } = await ms.score('0x2bb72231eed303cc91a462a1fa738b42b6a9ac6d');
// → score: 53, health: { alive: true, status: 402 }

// Top 10 on Base
const top = await ms.leaderboard({ limit: 10, network: 'base' });

// Head-to-head
const head = await ms.compare(addrA, addrB);

// Pre-payment vet (throws if below threshold or unreachable)
await ms.vet(addrA, { minScore: 30, requireAlive: true });
// → if it returns, safe to pay

15 個のメソッドを備え、ESM/CJS のデュアルエクスポートに対応し、TypeScript 宣言を含みます。依存関係はゼロです。

エージェントから(x402 経由)
GET https://avisradar-production.up.railway.app/api/agent/score/0x<address>
X-Payment: <x402 signature>  # max $0.05 USDC on Base
スコアをローカルで計算する
const { computeScoreAgent, buildAttestationPayload } = require('./oracle');

const score = computeScoreAgent({
  successRate: 0.95,
  jobCount: 120,
  usdcVolume: 12000,
  daysSinceLastJob: 1,
});
// → 87

const payload = buildAttestationPayload({
  subjectType: 'agent-onchain',
  agentAddress: '0x...',
  successRate: 0.95,
  jobCount: 120,
  usdcVolume: 12000,
  daysSinceLastJob: 1,
});
// → ERC-8004-shaped payload, ready to sign + submit

詳しくは examples/ を参照してください。

ERC-8004 の標準レジストリ(Base メインネット)

レジストリアドレス
IdentityRegistry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
ReputationRegistry0x8004BAa17C55a88189AE136b182e5fdA19dE9b63

ソース:github.com/erc-8004/erc-8004-contracts

リポジトリ構成

oracle.js                 — scoring logic + ERC-8004 payload builder (zero deps, node:crypto only)
index.html                — landing page (deployed at avisradar-production.up.railway.app/mainstreet.html)
SPEC.md                   — full design spec
DISTRIBUTION.md           — go-to-market playbook (x402 Bazaar, agentic.market, Virtuals ACP)
.well-known/
  agent-card.json         — ERC-8004 agent identity card
examples/
  basic-usage.js          — score computation examples

ステータス

  • スコアリング式 v1
  • ERC-8004 形式のペイロードビルダー
  • エージェントカードを公開済み
  • x402 のペイウォール統合(上流の avisradar リポジトリ内)
  • 初の決済済み有料クエリ → x402 Bazaar へのインデックス登録(2026-05-30、v2 プロトコル)
  • Agent Arena ERC-8004 NFT 登録(agentId 53953、プロフィール)
  • 公開リーダーボード(公開中)
  • オンチェーン証明発行ツール(署名して ReputationRegistry に送信)
  • Virtuals ACP エスクローイベントの取り込み

運用者の証明

このプロジェクトは、Base メインネット上で 0xAC3ca7c5d3cDD7702fd08F9C4C28dAA22296aDa9 によって運用されています。Claude(Opus 4.7)を使用して @philpof102-svg が構築しました。

トークン

コントラクトは、意図的にデプロイ時点では機能しない状態になっています。初期 LP も、エアドロップも、ステーキングもありません。MainStreet API とのユーティリティ連携は、後日、意図的に別の仕様書で決定します。

ライセンス

MIT — LICENSE を参照してください。

  • JMT x402 Agent Tools — Base メインネット上の有料 x402 エンドポイント 25 個:ウェブ検索、AI 分析、暗号資産/株式データ、SEC 提出書類、企業情報、ニュース、センチメント、マクロダッシュボード。1 回あたり $0.001~$0.15 USDC。ローカル LLM を活用。

コメント

MCP は初めてですか?

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

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