Server data from the Official MCP Registry
Resolve social handles to wallets, score onchain reputation, pay in any ERC-20, SPL or native.
About
Resolve social handles to wallets, score onchain reputation, pay in any ERC-20, SPL or native.
Remote endpoints: streamable-http: https://mcp.connect.quid.li
Security Report
The server is a wallet lookup and payment MCP that matches its stated purpose. Its auth model is reasonable: an optional API key sent as a header, and an EVM private key read from env for x402 payments that stays local in stdio mode. The main caveats are that the wallet key enables signing and sending funds, and several security-relevant modules (hosted-gate, tool implementations, x402-fetch) were not included in the provided code, so their behavior could not be verified. Supply chain analysis found 8 known vulnerabilities in dependencies (1 critical, 4 high severity). Package verification found 1 issue.
12 files analyzed · 13 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
How to Install & Connect
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
Documentation
View on GitHubFrom the project's GitHub README.
Quidli Connect MCP
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:
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:
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
justinquidlito a wallet.
{
"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) | |
|---|---|---|
| Setup | Add a URL in MCP settings | Run a local process via npx |
| Auth | Optional API key. Without a key: lookup/scores under a shared anonymous quota; price/chains are public | API key, x402 pay-per-call, or none for lookup/scores |
| Pros | No install; try without a key; always on Quidli infrastructure | Wallet private key never leaves your machine; pay per call with USDC instead of an API key |
| Cons | Anonymous traffic shares a global rate limit; no pay-per-call billing | Requires Node.js 20+; npx may download the package on first run |
| Limitations | Cannot use x402 / wallet auth — do not send a private key to the hosted endpoint | x402 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.
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:
"quidli-connect": {
"url": "https://mcp.connect.quid.li"
}
Optional — higher limits and Smart Send:
"quidli-connect": {
"url": "https://mcp.connect.quid.li",
"headers": {
"x-api-key": "<your-connect-api-key>"
}
}
Claude Desktop
- Open Claude → Settings → Connectors (or Settings → Developer → Edit Config on older versions).
- Add a custom MCP connector with URL
https://mcp.connect.quid.li. Optionally set headerx-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
{
"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):
{
"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
- Go to grok.com/connectors and select Custom.
- 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.
npx smithery login
npx 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.
{
"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.
{
"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.
{
"mcpServers": {
"quidli-connect": {
"command": "npx",
"args": ["-y", "@quidli/connect-mcp"],
"env": {
"CONNECT_API_BASE_URL": "http://127.0.0.1:3011"
}
}
}
}
Claude Desktop
- Open Claude → Settings → Developer → Edit Config (enable Developer mode first if you do not see it).
- Merge one of the blocks below into
mcpServersin:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Restart Claude Desktop.
Option A — API key
{
"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)
{
"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.
{
"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:
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:
| Chain | Chain ID | Native token |
|---|---|---|
| Ethereum | 1 | ETH |
| Base | 8453 | ETH |
| Polygon | 137 | POL |
| OP Mainnet | 10 | ETH |
| Arbitrum One | 42161 | ETH |
| Avalanche | 43114 | AVAX |
| World Chain | 480 | ETH |
| Monad | 143 | MON |
| Robinhood Chain | 4663 | ETH |
| Solana | 1399811149 | SOL |
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 theirsolWalletAddress. connect_dropsends native tokens whentokenContractis omitted. For an ERC-20 or SPL token you pass its contract address or mint.- Balance coverage depends on the chain.
connect_drop_balancereturns 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 passingtokenContract.
Tools
| Tool | What it does |
|---|---|
connect_get_price | List reference prices (no auth) |
connect_get_chains | List supported chains and feature compatibility (no auth) |
connect_lookup | Resolve social identities to EVM and SOL wallet addresses |
connect_lookup_exposed | List platforms a recipient has exposed on Connect |
connect_scores_batch | Batch scores for accounts or usernames |
connect_scores_by_account | Scores for one linked account |
connect_scores_by_username | Scores by Connect username |
connect_me | API key owner profile, scores, and linked accounts — API key only |
connect_drop | Smart Send (EVM batch or Solana SOL/SPL); accepts trustFilter to gate recipients by trust graph — API key only |
connect_drop_balance | Smart Send wallet balances on a chain — API key only. Token coverage varies by chain, see Supported chains |
connect_trust_create | Create one or more on-chain trust attestations in one EAS transaction (Base) — API key only |
connect_trust_check | Check whether identities sit in a trust graph at depth 1 |
connect_trust_graph | List outgoing/incoming trust edges for an identity |
connect_trust_revoke | Revoke 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.
{
"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:
{ "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.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
