
Trustsource
io.github.SurfEtherPublished by GitHub account SurfEtherv0.1.6Updated Oct 24, 2026
x402-paid domain verification for AI agents — trustscore, SSL, security headers, robots.
Overview
A local MCP server that wraps x402-paid domain verification APIs, letting an assistant check URL safety, domain trust, TLS, email authentication and robots.txt.
- What you can do
- Check a URL's composite safety verdict, fusing domain trust, live TLS and typosquat detection, before acting on it. Fetch a page safely and get sanitized text plus a prompt-injection verdict. Score a domain's trust from WHOIS, DNS, TLD and registrar data. Grade a sender domain's email authentication (SPF, DKIM, DMARC, BIMI, MX) and flag spoofability. Audit HTTP security headers and detect robots.txt and AI-bot policy.
- When to use it
- Useful when an assistant handles untrusted links, fetched pages or sender domains and needs a safety verdict before acting, or when auditing a site's trust, TLS, email posture or crawler policy.
- Requirements
- Runs locally as an npm package over stdio. Requires a Base Mainnet wallet private key in WALLET_PRIVATE_KEY holding USDC for per-call fees and ETH for gas; each call is paid via x402. TRUSTSOURCE_API_URL optionally overrides the API base URL. Network access is needed.
Installation
In SourceWeft
- Open Trustsource in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
TrustSource API
x402-powered verification APIs for AI agents — URL safety, email authentication, domain trust, SSL/TLS, security headers, robots.txt. Pay per use, no API keys, no accounts.
Quick Start
1. Install dependencies
2. Configure environment
Open .env and set at minimum:
Leave everything else as-is to run on Base Sepolia testnet (no real money).
3. Run the server
You should see the startup banner at http://localhost:3000.
Testing the x402 Flow
Free endpoints (no payment needed)
Paid endpoint — what an unpaid agent sees
Paid endpoint — bypass payment for local dev testing
The x402 testnet facilitator at https://x402.org/facilitator accepts test payments.
To fully test the payment flow, use an x402 client with a funded testnet wallet.
Get Base Sepolia testnet ETH: https://sepolia.base.org/faucet
Get testnet USDC: https://faucet.circle.com (select Base Sepolia)
Switching to Mainnet (Production)
-
In
.env, change: -
Make sure your
PAY_TO_ADDRESSBase wallet has some ETH for gas. -
Your endpoints auto-list in the Bazaar/Agentic.Market after the first paid call clears.
API Reference
GET /safefetch ⭐
Fetch a page safely instead of fetching it directly: returns sanitized, agent-ready text plus a prompt-injection verdict.
An agent cannot scan a page for injection with its own model without first ingesting the attack. /safefetch does the fetching and scanning server-side — outside your agent's context window — and hands back classified content, so hostile markup never reaches your model unlabelled.
Detects: instructions hidden in display:none / off-screen elements, HTML comments, alt attributes · invisible Unicode-Tag (U+E0000) and zero-width smuggling · homoglyph-obfuscated and base64-encoded payloads · ChatML / [INST] delimiter spoofing · markdown-image data exfiltration · tool-call bait.
Findings are weighted by where they appear — a security article discussing injection in visible prose is not flagged; the same phrase hidden in markup is.
Payment: 0.01 USDC per call (via x402) · Cache: 10 minutes
Params: ?url=https://example.com
Response:
Verdicts: BLOCK — a critical technique concealed from human view, or aggregate risk ≥ 0.7. REVIEW — weaker signals, low-trust host, or a content type that was not scanned. SAFE — nothing concealed and aggregate risk below 0.25 (visible-text matches may still be present in injection.findings, deliberately weighted low).
GET /urlcheck
One composite CLEAR / REVIEW / BLOCK safety verdict on any URL, fusing domain trust, a live TLS check, and typosquat/lookalike detection.
Payment: 0.01 USDC per call (via x402)
Params:
?url=https://example.com— URL to vet?domain=example.com— bare domain (alternative)
Response:
Verdicts: CLEAR (safe) · REVIEW (inspect before acting) · BLOCK (do not proceed)
GET /emailtrust
Email-authentication posture grade (SPF/DKIM/DMARC/BIMI/MX) — is this sender domain spoofable?
Payment: 0.003 USDC per call (via x402)
Params:
?domain=example.com— sender domain (or[email protected])
Response:
Grades: A/B = enforced, not spoofable · C/D = monitoring only, spoofable · F = no authentication
GET /trustscore
Returns a 0–100 trust score for any domain.
Payment: 0.003 USDC per call (via x402)
Params:
?domain=example.com— bare domain?url=https://example.com/some/path— full URL (domain extracted)
Response:
Tiers:
Project Structure
Roadmap
- TrustScore API — domain trust scoring
- SslCheck API — TLS/SSL certificate intelligence
- Headers API — HTTP security-header audit
- Robots API — robots.txt + AI-bot policy detection
- UrlCheck API — composite CLEAR/REVIEW/BLOCK URL safety verdict
- EmailTrust API — SPF/DKIM/DMARC/BIMI/MX spoofability grade
- OpenAPI spec at
/openapi.json - Bazaar / Agentic.Market discovery extension
- MCP server (
trustsource-mcp) wrapping all seven APIs - SafeFetch API — injection-safe content firewall (flagship)
-
/phishcheck— typosquat + Certificate-Transparency detection -
/kyb— official-registry business-identity verification - ResearchOracle (reshaped) — verification / source-trust oracle
Source: README.md at commit 18ef724
Tools
0Version history
1- v0.1.6LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts