Quidli Connect

io.github.Quidli由 GitHub 帳號 Quidli 發布v0.6.22更新於 Nov 7, 2026

Resolve social handles to wallets, score onchain reputation, pay in any ERC-20, SPL or native.

已驗證Streamable HTTP可網頁執行金融溝通與協作安全與監控

概覽

AI 產生的概覽

把社群帳號解析成 EVM 與 Solana 錢包地址、查詢鏈上聲譽評分,並從 Connect 內嵌錢包發送代幣。

可以做什麼
  • 將 GitHub、X、Telegram、Discord、LinkedIn、Farcaster、電子郵件、手機號碼等社群身分解析為 EVM 與 Solana 錢包地址,並列出收款方公開的平台
  • 依單一帳號、Connect 使用者名稱或批次身分查詢鏈上聲譽評分,可加上通過/不通過的篩選條件
  • 從金鑰持有者的內嵌錢包向一個或多個收款方發送原生代幣、ERC-20 或 SPL 代幣,可依信任圖譜過濾
  • 查詢各鏈的內嵌錢包餘額,並列出支援的鏈與各項功能相容性
  • 在 Base 上透過 EAS 建立、檢查、列出與撤銷鏈上信任證明
  • 讀取 x402 參考價格,以及 API 金鑰持有者本人的個人檔案與已連結帳號
適用情境
適合需要付款給沒有既有關係的對象、或先做盡職調查的代理情境:把社群帳號換成錢包地址、轉帳前查看聲譽,或批次付款給多個收款方。也適用於需要可驗證鏈上信任圖譜的流程。
執行需求
可使用託管端點(免安裝),或本機 npm 套件(需 Node.js 20+)。可選 CONNECT_API_KEY 以取得更高額度、個人檔案與 Smart Send 工具;或設定 EVM_PRIVATE_KEY 與 CONNECT_X402_EVM_NETWORK,用 Base 上的 USDC 按次付費。查詢、評分、價格與鏈列表在共用匿名額度下無需憑證。信任證明需要 Base 上的 ETH 支付 gas。
安裝前請注意
發送類工具會動用金鑰持有者內嵌錢包中的真實資金,信任證明還需支付 gas。x402 模式要求在 EVM_PRIVATE_KEY 中放入錢包私鑰;README 明確警告不要把私鑰傳給託管端點。解析尚無錢包的收款方會為其建立錢包,因此查詢並非沒有副作用。資料擁有者收費時查詢可能需要付費,身分資料會傳送到 Quidli 的 API。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Quidli Connect,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.Quidli%2Fconnect-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "quidli-connect": {
      "type": "http",
      "url": "https://mcp.connect.quid.li/"
    }
  }
}

README

Quidli Connect MCP

[npm version] [npm downloads] [license]

Open payments for multiplayer agents, powered by onchain reputation. Resolve a social handle to a wallet, check its onchain reputation, and send tokens — from Cursor, Claude Desktop, Claude Code, or any MCP-compatible client.

Multiplayer means parties who don't already know each other — an agent paying a person, or another agent, with no prior relationship and no account to fall back on. Connect is how it verifies who it's dealing with before sending anything.

Public repository: github.com/Quidli/connect-mcp

Try it in one command

No API key required.

Claude Code:

bash
claude mcp add --transport http quidli https://mcp.connect.quid.li/

Cursor: Add to Cursor (or paste that link into Settings → MCP → Add new MCP server)

Claude Desktop: Settings → Connectors → Add custom connector, URL https://mcp.connect.quid.li

Local (any client) — runs on your machine instead of the hosted endpoint:

bash
npx -y @quidli/connect-mcp

See Choose how to connect below for API keys, x402 wallet pay-per-call, and full config snippets.

Then ask your agent:

Resolve the GitHub handle justinquidli to a wallet.

json
{  "status": "completed",  "results": [    {      "type": "github",      "value": "justinquidli",      "ethWalletAddress": "0x6a48ADE3bE3F9f0b8B4c9af61Bb654A219311699",      "solWalletAddress": "8vo1awED98mwqDa4qR9JyMsk7qJYiwnTSG4EnXGyWXRh"    }  ]}

Resolves across GitHub, X, Telegram, Discord, LinkedIn, Farcaster, email and phone — and generates a wallet for people who have never used Quidli.

Then score what you find: connect_scores_batch returns onchain reputation for a batch of identities.

Lookup, scores, and price run without a key under a shared anonymous quota. Add a Connect API key for higher limits, your own profile (connect_me), and Smart Send.


Choose how to connect

Hosted (mcp.connect.quid.li)Local (npx @quidli/connect-mcp)
SetupAdd a URL in MCP settingsRun a local process via npx
AuthOptional API key. Without a key: lookup/scores under a shared anonymous quota; price/chains are publicAPI key, x402 pay-per-call, or none for lookup/scores
ProsNo install; try without a key; always on Quidli infrastructureWallet private key never leaves your machine; pay per call with USDC instead of an API key
ConsAnonymous traffic shares a global rate limit; no pay-per-call billingRequires Node.js 20+; npx may download the package on first run
LimitationsCannot use x402 / wallet auth — do not send a private key to the hosted endpointx402 mode needs USDC on Base (mainnet 8453); connect_drop requires an API key

Get a Connect API key at connect.quid.li → Enable API access for higher limits, connect_me, and Smart Send.


Hosted (recommended)

Zero local setup. Lookup, scores, agent, and price work without an API key (shared anonymous quota). Add a key for higher limits, your profile (connect_me), and Smart Send.

Cursor

If you already have other MCP servers: skip the deeplink and add manually — the one-click install can overwrite your entire mcp.json in some Cursor versions.

Add to Cursor

Or paste into Cursor Settings → MCP → Add new MCP server:

cursor://anysphere.cursor-deeplink/mcp/install?name=quidli-connect&config=eyJ1cmwiOiJodHRwczovL21jcC5jb25uZWN0LnF1aWQubGkifQ==
Add manually {#cursor-manual}

Merge this into ~/.cursor/mcp.json (global) or .cursor/mcp.json (project) under mcpServers — do not replace your existing entries:

json
"quidli-connect": {  "url": "https://mcp.connect.quid.li"}

Optional — higher limits and Smart Send:

json
"quidli-connect": {  "url": "https://mcp.connect.quid.li",  "headers": {    "x-api-key": "<your-connect-api-key>"  }}

Claude Desktop

  1. Open Claude → Settings → Connectors (or Settings → Developer → Edit Config on older versions).
  2. Add a custom MCP connector with URL https://mcp.connect.quid.li. Optionally set header x-api-key: <your-connect-api-key>.

Or merge this into your config file and restart Claude:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "quidli-connect": {      "url": "https://mcp.connect.quid.li"    }  }}

If your Claude version does not support remote url connectors, use the local bridge instead (still hosted API, runs a small local helper):

json
{  "mcpServers": {    "quidli-connect": {      "command": "npx",      "args": [        "-y",        "mcp-remote@latest",        "--http",        "https://mcp.connect.quid.li"      ]    }  }}

Requires Node.js 20+ for the bridge. Restart Claude Desktop after saving. You should see a hammer icon in the chat input when tools are available.

Without a key, initialize / tools/list always succeed. Anonymous tools/call share a global quota (HTTP 429 when exceeded — get a key for higher limits). Placeholder keys still return 401.


Grok

  1. Go to grok.com/connectors and select Custom.
  2. Enter the server URL: https://mcp.connect.quid.li

This gives Grok access to the anonymous-tier tools -- lookup, scores, agent, and price -- under the shared quota.

Current limitation: Grok's custom connector UI does not currently support attaching an API key or custom header. That means connect_me, connect_drop, and connect_drop_balance (all API key only) are not usable through Grok yet -- calls to them will return an unauthorized error. This isn't a connect-mcp limitation; it's Grok's custom-connector setup not exposing an auth field at this time.


Smithery

If you already use Smithery, it will handle auth and sessions for you. Requires a Smithery account.

bash
npx smithery loginnpx smithery mcp add quidli/connect

Local (stdio)

Best if you want pay-per-call with a wallet, or prefer credentials in a local env file.

Requires Node.js 20+.

Cursor

Add one of the following to .cursor/mcp.json (project) or your global MCP settings.

Option A — API key

Same billing model as hosted; credentials stay on your machine.

json
{  "mcpServers": {    "quidli-connect": {      "command": "npx",      "args": ["-y", "@quidli/connect-mcp"],      "env": {        "CONNECT_API_KEY": "<your-connect-api-key>",        "CONNECT_API_BASE_URL": "https://api.connect.quid.li"      }    }  }}
Option B — x402 pay-per-call (wallet)

No API key. Authenticated calls pay automatically when the API returns HTTP 402. Your wallet private key is only read by the local process.

json
{  "mcpServers": {    "quidli-connect": {      "command": "npx",      "args": ["-y", "@quidli/connect-mcp"],      "env": {        "EVM_PRIVATE_KEY": "0x<wallet-with-usdc-on-base>",        "CONNECT_API_BASE_URL": "https://api.connect.quid.li",        "CONNECT_X402_EVM_NETWORK": "8453"      }    }  }}

Use 84532 for Base Sepolia when pointing at a staging API.

Option C — no credentials (lookup / scores)

The MCP process starts without CONNECT_API_KEY or EVM_PRIVATE_KEY. connect_lookup, connect_scores_*, connect_get_price, and connect_get_chains call the API without auth. That succeeds when x402 is disabled (price 0, typical for local). On production with x402 enabled, those tools return HTTP 402 until you set a key or wallet.

connect_me, connect_drop, and connect_drop_balance still require CONNECT_API_KEY.

json
{  "mcpServers": {    "quidli-connect": {      "command": "npx",      "args": ["-y", "@quidli/connect-mcp"],      "env": {        "CONNECT_API_BASE_URL": "http://127.0.0.1:3011"      }    }  }}

Claude Desktop

  1. Open Claude → Settings → Developer → Edit Config (enable Developer mode first if you do not see it).
  2. Merge one of the blocks below into mcpServers in:
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  1. Restart Claude Desktop.
Option A — API key
json
{  "mcpServers": {    "quidli-connect": {      "command": "npx",      "args": ["-y", "@quidli/connect-mcp"],      "env": {        "CONNECT_API_KEY": "<your-connect-api-key>",        "CONNECT_API_BASE_URL": "https://api.connect.quid.li"      }    }  }}
Option B — x402 pay-per-call (wallet)
json
{  "mcpServers": {    "quidli-connect": {      "command": "npx",      "args": ["-y", "@quidli/connect-mcp"],      "env": {        "EVM_PRIVATE_KEY": "0x<wallet-with-usdc-on-base>",        "CONNECT_API_BASE_URL": "https://api.connect.quid.li",        "CONNECT_X402_EVM_NETWORK": "8453"      }    }  }}

If both CONNECT_API_KEY and EVM_PRIVATE_KEY are set, the API key is used.

Credentials are optional in local mode. Without either variable, lookup/scores still work when the API does not charge x402. connect_me and Smart Send tools require CONNECT_API_KEY.


Troubleshooting

npx hangs with no output when run from a background service

If you're launching @quidli/connect-mcp via npx from inside a background process manager -- a macOS launchd agent, a systemd unit, a supervisor, or any client config running without a normal interactive shell -- it can hang indefinitely with zero output and no error. This isn't a crash; npx is stuck resolving PATH in an environment that doesn't provide the same shell initialization an interactive terminal gets.

Workaround: if you have Bun installed, use bunx instead of npx. It performs the same job -- running the package without a local install -- but doesn't hit this hang in restricted-PATH environments.

json
{  "mcpServers": {    "quidli-connect": {      "command": "bunx",      "args": ["-y", "@quidli/connect-mcp"],      "env": {        "CONNECT_API_KEY": "your-api-key"      }    }  }}

If you're spawning the process yourself (rather than through a client's MCP config) and want to be resilient to bunx not being on PATH either, resolve it by absolute path first:

ts
import { spawn } from "node:child_process";import { existsSync } from "node:fs";import { homedir } from "node:os";import { join } from "node:path";
const BUNX_PATH = (() => {  const candidate = join(homedir(), ".bun", "bin", "bunx");  return existsSync(candidate) ? candidate : "bunx";})();
const proc = spawn(BUNX_PATH, ["-y", "@quidli/connect-mcp"], {  stdio: ["pipe", "pipe", "pipe"],});

This isn't a general claim that Bun is better than npm -- it's a targeted fix for one specific, reproducible failure mode when npx is spawned outside an interactive shell.

Wrong environment variable name for the API key

Double-check you're setting CONNECT_API_KEY, not API_KEY -- the server only reads CONNECT_API_KEY, and a mismatch here fails silently: your calls will run in anonymous/unauthenticated mode instead of erroring, which can look like a working-but-oddly-limited connection rather than a config mistake.

Supported chains

connect_get_chains (REST: GET /chains) is the source of truth and needs no key. As of 2026-10-14 it lists these mainnets, each with lookup and drop enabled:

ChainChain IDNative token
Ethereum1ETH
Base8453ETH
Polygon137POL
OP Mainnet10ETH
Arbitrum One42161ETH
Avalanche43114AVAX
World Chain480ETH
Monad143MON
Robinhood Chain4663ETH
Solana1399811149SOL

World Chain Sepolia (4801) is also listed, as a testnet.

  • Social handles resolve on every chain: EVM chains pay the recipient's ethWalletAddress, Solana pays their solWalletAddress.
  • connect_drop sends native tokens when tokenContract is omitted. For an ERC-20 or SPL token you pass its contract address or mint.
  • Balance coverage depends on the chain. connect_drop_balance returns the native balance everywhere. ERC-20 balances come from a per-chain provider: Moralis on Monad and Base, Blockscout on Robinhood Chain, and other chains may return only native plus featured tokens. Zero balances are omitted, spam tokens can appear, and a token the provider doesn't index can be missing. If you know its contract address you can still send it by passing tokenContract.

Tools

ToolWhat it does
connect_get_priceList reference prices (no auth)
connect_get_chainsList supported chains and feature compatibility (no auth)
connect_lookupResolve social identities to EVM and SOL wallet addresses
connect_lookup_exposedList platforms a recipient has exposed on Connect
connect_scores_batchBatch scores for accounts or usernames
connect_scores_by_accountScores for one linked account
connect_scores_by_usernameScores by Connect username
connect_meAPI key owner profile, scores, and linked accounts — API key only
connect_dropSmart Send (EVM batch or Solana SOL/SPL); accepts trustFilter to gate recipients by trust graph — API key only
connect_drop_balanceSmart Send wallet balances on a chain — API key only. Token coverage varies by chain, see Supported chains
connect_trust_createCreate one or more on-chain trust attestations in one EAS transaction (Base) — API key only
connect_trust_checkCheck whether identities sit in a trust graph at depth 1
connect_trust_graphList outgoing/incoming trust edges for an identity
connect_trust_revokeRevoke active trust attestations by target — API key only

Ask your client to use these tools when you need Connect data or actions.

Trust graph

Connect writes trust attestations on Base via EAS. An attestation is unidirectional — you vouch for someone — and anyone can verify it without asking Connect, because it lives onchain rather than in a Quidli database.

Vouch for people

connect_trust_create takes up to 50 identities and attests them in a single transaction, so gas is paid once rather than per person. level (1–100), context and expiresIn apply to every entry in the batch.

json
{  "to": [    { "type": "github",    "username": "alice" },    { "type": "farcaster", "username": "bob"   },    { "type": "wallet",    "id": "0x1234..."   }  ],  "level": 80,  "context": "team:quidli"}

Identical active attestations are returned without submitting a new transaction. Recipients still being provisioned come back as processing while the rest are attested.

Requires an API key, the Smart Send attestation signer enrolled, and ETH on Base for gas when a new attestation is submitted.

Pay only people you trust

connect_drop accepts a trustFilter that keeps recipients inside the sender's trust graph:

json
{ "trustFilter": { "mode": "skip", "context": "team:quidli" } }

require fails the drop if any recipient is outside the graph; skip pays the ones inside it and drops the others. Omit context to match any context.

Read and revoke

connect_trust_check reports whether identities sit in a trust graph at depth 1. connect_trust_graph lists outgoing or incoming edges for an identity. connect_trust_revoke revokes active attestations to a target, optionally scoped by context.

Contributing

This repository is a read-only mirror, regenerated on every release — changes committed here are overwritten. Please open an issue rather than a pull request. See CONTRIBUTING.md.

來源:README.md,提交 04d2b9b

工具

14

connect_get_price

Get x402 Prices

Get public x402 list prices for lookup and scores (reference only; live paywall amounts are in 402 responses).

無需輸入參數。

connect_get_chains

List Supported Chains

List product chains with per-feature compatibility. lookup is true for EVM catalog chains and Solana; drop is true for Smart Send chains, enabled delegation chains, and Solana (chainId 1399811149 for connect_drop / connect_drop_balance).

無需輸入參數。

connect_lookup

Resolve Handle to Wallet

Resolve social identities to EVM and Solana wallet addresses. Resolving a recipient who has no wallet provisions one for them, so this is read-only for the caller but not for the recipient. If status is processing, retry the same payload.

輸入參數recipients必填

connect_lookup_exposed

List Exposed Accounts

List platforms a recipient has exposed on Connect, with enriched profile, scores, and wallet addresses. Recipient may be a social account, an exposed wallet (EVM/Solana/smart wallet), or a Connect username. May require x402 payment when the profile owner charges for lookups.

輸入參數recipient必填

connect_scores_batch

Score Identities (Batch)

Batch scores for linked accounts or Connect usernames. One result per request user. Optional filter sets passedFilter (quidli 0–100, neynar/lens 0–1, ethos 0–2800).

輸入參數users必填filter

connect_scores_by_account

Score a Linked Account

Scores for a linked social account or wallet.

輸入參數platform必填identifier必填

connect_scores_by_username

Score a Connect Username

Scores by Connect public username.

輸入參數username必填

connect_me

Get My Connect Profile

Get the Connect profile, scores, and all linked accounts for the API key owner. Use to identify which user the key belongs to.

無需輸入參數。

connect_drop

Send Tokens (Smart Send)

Execute a Smart Send from the API key owner Connect embedded wallet. EVM: batch native or ERC-20 (need native gas plus the token). Solana (chainId 1399811149): SOL or SPL from the Solana embedded wallet; packs up to 20 native or 10 SPL recipients per transaction. Social recipient types: email, phone, telegram, discord, farcaster, twitter, github (id or username). linkedin and slack are not on /drop — use connect_lookup first, then type wallet. After connect_lookup, EVM payouts use ethWalletAddress (never solWalletAddress); Solana payouts use solWalletAddress (never ethWalletAddress). Social types on /drop resolve server-side; for type wallet, pass the resolved payout address for the target chain. Omit tokenContract or set it to null for the native token; pass an ERC-20 contract or SPL mint otherwise — do not use the zero address. Amounts are smallest-unit integer strings (ETH 18 decimals, SOL 9, USDC usually 6). Solana native (tokenContract null): no ATA. Sending to a recipient without an existing funded account requires amount ≥ 890880 lamports (rent-exempt minimum for a system account); that SOL stays with the recipient. Below that the tx fails. Sender also pays a ~5000-lamport fee. Solana SPL: tokens sit in Associated Token Accounts (ATA), not on the wallet pubkey. Recipients need not already hold the token — the API prepends CreateIdempotent. The sender (not the recipient) pays ~2039280 lamports (~0.002039 SOL) rent per newly created dest ATA, plus tx fees, on top of the token amount (which can be as small as 1 unit). A 400 "Insufficient funds" on SPL is often missing SOL for ATA rent, not missing USDC. Token-2022 is not supported; USDC mint is EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v. ERC-721: set tokenStandard to erc721, tokenContract to the collection, and tokenId on each recipient. Do not send an amount. One safeTransferFrom per NFT. ERC-1155: set tokenStandard to erc1155, tokenContract to the contract, and tokenId plus tokenAmount (quantity, at least 1)

輸入參數chainId必填recipients必填trustFiltertokenContracttokenStandardidempotencyKey必填ignoreFailedRecipientsamountInWeiPerRecipient

connect_drop_balance

Check Smart Send Balance

Get native and token balances for the API key owner embedded wallet. Accepts Smart Send chains and enabled delegation chains. Robinhood Chain (4663) returns ERC-20 balances from Blockscout. Monad (143) returns ERC-20 balances from Moralis; other delegation chains return native plus featured tokens. Always call before connect_drop. Zero balances are omitted, so a missing token means balance 0. EVM: confirm native gas plus the ERC-20 being sent. Solana (chainId 1399811149): SOL in this response is spendable lamports on the wallet pubkey (rent locked in existing token accounts is not included). Native SOL drop to a recipient without an existing funded account: amount itself must be ≥ 890880 lamports and sender SOL must cover amount + ~5000 lamports fee. SPL drop: token balance ≥ total amount, and SOL ≥ tx fee + ~2039280 lamports (~0.002039 SOL) per recipient that may need a new Associated Token Account — even when sending USDC. Insufficient SOL for ATA rent fails before the token transfer.

輸入參數chainId必填

connect_trust_create

Create Trust Attestation

Create unidirectional trust attestations on Base (EAS) from the API key owner embedded wallet to one or more wallets or social identities, in a single transaction. Identical active attestations are returned without a new transaction. Recipients still provisioning are reported as processing while the others are attested. Requires CONNECT_API_KEY, Smart Send attestation signer enrolled, and ETH on Base for gas when a new attestation is submitted.

輸入參數to必填level必填contextexpiresIn

connect_trust_revoke

Revoke Trust Attestation

Revoke active trust attestations from the API key owner to a target. Optional context limits which attestations are revoked. Requires CONNECT_API_KEY and ETH on Base.

輸入參數to必填context

connect_trust_check

Check Trust

Check whether identities sit in a trust graph at depth 1. Omit context to match any context.

輸入參數from必填contexttargets必填

connect_trust_graph

List Trust Edges

List outgoing or incoming trust edges for an identity at depth 1.

輸入參數contextplatform必填directionidentifier必填

版本歷史

7
  1. v0.6.22最新Nov 7, 2026
  2. v0.6.20Nov 3, 2026
  3. v0.6.19Oct 29, 2026
  4. v0.6.17Oct 26, 2026
  5. v0.6.16Oct 26, 2026
  6. v0.6.15Oct 23, 2026
  7. v0.6.12Oct 17, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分