Tethered Trust Builders MCP
An MCP server for builders that verifies MCP server functionality, checks directory listings, publishes to the official MCP Registry, validates x402 payment setups, and monitors listing reliability.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://tetheredtrust.com/mcp/buildersWhat its tools do
12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (9)
Can change data (3)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to tetheredtrust.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Verify if an MCP server connects and lists tools correctly
- Check where a server is listed across multiple registries
- Publish an MCP server to the official MCP Registry
- Check if an x402 payment endpoint is configured correctly
Source and maintenance
Protocol and capabilities
- Server
- tethered-trust-builders 0.60.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 12 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
12 advertised
how_it_works — How Tethered Trust works
What Tethered Trust is, what it covers, where its data comes from, pricing and terms.
{
"type": "object",
"properties": {}
}{
"title": "How Tethered Trust works",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}enrich_catalog — Enrich a product catalog
For retailers and marketplaces (API key required): up to 50 products per call (SKU with title, URL or GTIN) in; each product's compatibility attributes out (standards it takes and provides, numeric limits, evidence level, freshness), ready to add to a product feed or UCP catalog so agents can match it to what shoppers own.
{
"type": "object",
"required": [
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Your SKU or offer id (echoed back)."
},
"url": {
"type": "string"
},
"gtin": {
"type": "string"
},
"brand": {
"type": "string"
},
"model": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"maxItems": 50,
"minItems": 1
},
"research": {
"type": "boolean",
"description": "Default true: research up to 10 items per call that aren't in our catalog (from the manufacturer's page)."
}
}
}{
"title": "Enrich a product catalog",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}verify_page — Verify a web page works
Call this before you tell someone a web page, site or deploy is done or working, or before relying on another agent's "it's live": we open the public page in a separate browser (desktop or mobile) and check what you list. It loads; this text is visible; this link or button leads to this address; no script errors; no broken same-site links. Pass / fail / couldn't-verify per check, with a screenshot and a signed receipt. Read-only: no logins, forms or purchases.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public https:// page to check, e.g. the page you just built or changed."
},
"checks": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"max": {
"type": "integer",
"description": "For no_broken_links: how many same-site links to test (default 15, max 25)."
},
"text": {
"type": "string",
"description": "For text/no_text: exact text that must (or must not) be visible. For link: the visible label of the link or button."
},
"type": {
"enum": [
"loads",
"text",
"no_text",
"link",
"no_console_errors",
"no_broken_links"
],
"type": "string"
},
"expect_url": {
"type": "string",
"description": "For link: where it should lead (same path or below)."
}
}
},
"maxItems": 8,
"description": "What must be true. 'loads' is always included."
},
"viewport": {
"enum": [
"desktop",
"mobile"
],
"type": "string",
"description": "Check as a desktop (1280 px) or phone (390 px) browser. Default desktop."
},
"screenshot": {
"type": "boolean",
"description": "Return a screenshot link (default true)."
}
}
}{
"title": "Verify a web page works",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}verify_mcp — Verify an MCP server works
Call this before you recommend, install or rely on an MCP server, after deploying one, or when a connector seems broken: we connect as an MCP client, list its tools, check each has a usable input schema and description, confirm the tools you name exist, and optionally run one sample call on a read-only tool. Pass / fail / couldn't-verify per check with a signed receipt. Never signs in or calls tools that change things.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The MCP server's public https:// endpoint (Streamable HTTP), e.g. https://example.com/mcp."
},
"call": {
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"arguments": {
"type": "object"
},
"expect_text": {
"type": "string",
"description": "Text the reply must contain."
}
},
"description": "Optional sample call. Only made if the server marks the tool read-only (annotations.readOnlyHint)."
},
"expect_tools": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"description": "Tool names that must be listed."
}
}
}{
"title": "Verify an MCP server works",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}launch_check — Is this MCP server findable?
Call this after building or deploying an MCP server or paid agent API, or when its listings may be out of date: we check it works (as verify_mcp does), then look it up in the official MCP Registry (and whether the listed version is current), Glama, PulseMCP, the x402 Bazaar, npm and PyPI, plus its server card, llms.txt and robots.txt (Smithery, PulseMCP, mcp.so and Claude's directory are listed with links to check by hand). Returns a score, what's missing or stale, an ordered fix plan and a ready-to-publish server.json. Read-only.
{
"type": "object",
"required": [
"url"
],
"properties": {
"npm": {
"type": "string",
"description": "Optional: npm package name to check."
},
"url": {
"type": "string",
"description": "The MCP server's public https:// endpoint, e.g. https://example.com/mcp."
},
"name": {
"type": "string",
"description": "Optional: the server's display name, to search directories (defaults to the name the server reports)."
},
"pypi": {
"type": "string",
"description": "Optional: PyPI project name to check."
},
"description": {
"type": "string",
"description": "Optional: one-line description for the generated server.json (max 100 characters)."
},
"registry_name": {
"type": "string",
"description": "Optional: its official MCP Registry name, e.g. com.example/server."
}
}
}{
"title": "Is this MCP server findable?",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}publish_to_registry — Publish an MCP server to the official registry
Call this to get an MCP server into the official MCP Registry (which Glama, PulseMCP and others import from) without mcp-publisher or DNS: first call with url returns a one-line file to host at https://<domain>/.well-known/mcp-registry-auth; once it's up, call again with publisher_id and we publish server.json under your domain's namespace, then re-publish every new version automatically for 90 days. $5, charged only when we publish. Remove the file to revoke.
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The MCP server's public https:// endpoint (Streamable HTTP)."
},
"slug": {
"type": "string",
"description": "Optional: the part after the slash in the registry name."
},
"title": {
"type": "string"
},
"domain": {
"type": "string",
"description": "Optional: the domain to verify (default: the URL's main domain, e.g. example.com for mcp.example.com). Becomes the namespace (com.example/...)."
},
"version": {
"type": "string",
"description": "Optional: version to publish (default: the version your server reports)."
},
"website": {
"type": "string"
},
"repository": {
"type": "string"
},
"description": {
"type": "string",
"description": "One line, max 100 characters."
},
"publisher_id": {
"type": "string",
"description": "Second call: the publisher_id from the first call, after hosting the proof file."
}
}
}{
"title": "Publish an MCP server to the official registry",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}check_payment_setup — Will agents' payments go through?
Call this after building or changing a paid (x402) endpoint, or when agents' payments fail: we call it unpaid like a paying agent, read the 402, and check the payment request parses (v1 or v2), the token's EIP-712 domain (extra.name/version) matches the contract on-chain (the usual cause of 'invalid signature' payments), network id, amount, payTo, timeout, CORS headers for browser agents, resource URL, description and Bazaar discovery. Pass / warn / fail per check with exact fixes. Never pays.
{
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The paid endpoint's public https:// URL (an x402 resource)."
},
"body": {
"type": "object",
"description": "Optional example JSON body for POST endpoints."
},
"method": {
"enum": [
"GET",
"POST"
],
"type": "string",
"description": "HTTP method the endpoint expects (default GET)."
}
}
}{
"title": "Will agents' payments go through?",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}watch_listing — Watch an MCP server's listings daily
Call this after launching an MCP server or paid agent API to keep it findable: we run launch_check today and every day for 30 days, and tell your webhook (signed) when something changes: the server stops answering, the registry listing falls behind a release, a directory drops it, robots.txt starts blocking. $3 per 30 days; call again with watch_id to renew. Returns today's full launch check.
{
"type": "object",
"properties": {
"npm": {
"type": "string"
},
"url": {
"type": "string",
"description": "The MCP server's public https:// endpoint to watch."
},
"name": {
"type": "string"
},
"pypi": {
"type": "string"
},
"webhook": {
"type": "string",
"description": "Optional public https:// URL: we POST a signed listing.changed event when something changes."
},
"watch_id": {
"type": "string",
"description": "To renew: an existing watch_id (adds 30 days)."
},
"registry_name": {
"type": "string"
}
}
}{
"title": "Watch an MCP server's listings daily",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}reliability_score — Can agents pay this API?
Before paying an unfamiliar x402 API, look up its payment-readiness score (0-100) from our daily unpaid checks of the x402 Bazaar: how many of its endpoints would accept an agent's payment, and the common problems. Free.
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Or any URL on that host."
},
"host": {
"type": "string",
"description": "The paid API's host, e.g. api.example.com."
}
}
}{
"title": "Can agents pay this API?",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}launch_plan — Keep my MCP server / paid API findable and payable
For sellers: 30 days of official MCP Registry publishing on every new version, a daily listing watch (registry, Glama, x402 Bazaar, npm, PyPI, health) and daily payment checks of up to 10 x402 endpoints, with one signed webhook. $12 per 30 days; renew with plan_id.
{
"type": "object",
"properties": {
"npm": {
"type": "string"
},
"url": {
"type": "string",
"description": "Your MCP server's public https:// endpoint (listing watch + registry publishing)."
},
"pypi": {
"type": "string"
},
"title": {
"type": "string"
},
"domain": {
"type": "string"
},
"plan_id": {
"type": "string",
"description": "To renew: an existing plan_id (adds 30 days to everything)."
},
"publish": {
"type": "boolean",
"description": "Publish to the official MCP Registry (default true)."
},
"webhook": {
"type": "string",
"description": "Public https:// URL for signed listing.changed, payment.changed and plan.expiring events."
},
"api_host": {
"type": "string",
"description": "Host of your paid x402 API, e.g. api.example.com (we use the endpoints the x402 Bazaar lists for it)."
},
"endpoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"body": {
"type": "object"
},
"method": {
"enum": [
"GET",
"POST"
],
"type": "string"
}
}
},
"maxItems": 10,
"description": "Or name up to 10 paid endpoints yourself."
},
"repository": {
"type": "string"
},
"description": {
"type": "string"
}
}
}{
"title": "Keep my MCP server / paid API findable and payable",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}launch_plan_status — Launch Plan status
Where a Launch Plan stands: listings, registry version and each paid endpoint's payment check. Free.
{
"type": "object",
"required": [
"plan_id"
],
"properties": {
"plan_id": {
"type": "string"
}
}
}{
"title": "Launch Plan status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}listing_status — Listing watch status
Where a watched MCP server stands right now: each directory's status, the latest changes, and when the watch ends. Free.
{
"type": "object",
"required": [
"watch_id"
],
"properties": {
"watch_id": {
"type": "string",
"description": "The watch_id from watch_listing."
}
}
}{
"title": "Listing watch status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-09: 1 of 1 checks answered
- 2026-11-10: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 854 ms
- 95th percentile latency
- 854 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 854 ms · metadata changed · 12 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http tethered-trust-builders-mcp https://tetheredtrust.com/mcp/buildersCodex
codex mcp add tethered-trust-builders-mcp --url https://tetheredtrust.com/mcp/buildersCursor
{
"mcpServers": {
"tethered-trust-builders-mcp": {
"url": "https://tetheredtrust.com/mcp/builders"
}
}
}Cline
{
"mcpServers": {
"tethered-trust-builders-mcp": {
"type": "streamableHttp",
"url": "https://tetheredtrust.com/mcp/builders",
"disabled": false
}
}
}VS Code
{
"servers": {
"tethered-trust-builders-mcp": {
"type": "http",
"url": "https://tetheredtrust.com/mcp/builders"
}
}
}Gemini CLI
gemini mcp add --transport http tethered-trust-builders-mcp https://tetheredtrust.com/mcp/buildersClaude Desktop
https://tetheredtrust.com/mcp/buildersWindsurf
{
"mcpServers": {
"tethered-trust-builders-mcp": {
"serverUrl": "https://tetheredtrust.com/mcp/builders"
}
}
}Let your agent find its tools
Find servers like Tethered Trust Builders MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other developer tools servers
Do you run Tethered Trust Builders MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.