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 分