Trooth
Trooth is an infrastructure and cybersecurity company providing Machine-Readable Trust.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"trooth-network": {
"url": "https://api.trooth.co/public/mcp"
}
}
}Remote endpoints
https://api.trooth.co/public/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢trooth_public_trust_profile(company)
Read one company's published record on the Trooth Network, given its domain or Trooth slug. The identifier is matched exactly (a URL is reduced to its host), never by a similar name. Returns a status (published, listed, private, unclaimed or unavailable) and a provenance label; text the company wrote about itself is labeled as its own words. Read only.
Input Schema
{
"type": "object",
"properties": {
"company": {
"type": "string",
"description": "Company domain (e.g. acme.com) or Trooth slug"
}
},
"required": [
"company"
]
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Machine-branchable outcome for this lookup.",
"enum": [
"published",
"listed",
"unclaimed",
"private",
"observed",
"valid",
"invalid",
"expired",
"revoked",
"answered",
"out_of_scope",
"bad_input",
"unavailable"
]
},
"provenance": {
"type": "string",
"description": "Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding.",
"enum": [
"witnessed_signed",
"signed_scan",
"live_observation",
"honest_absence",
"withheld_by_owner",
"knowledge_base",
"input_error",
"self_declared",
"read_failed"
]
},
"subject": {
"type": "string",
"description": "The company, domain or token this answer is about."
},
"summary": {
"type": "string",
"description": "The same answer as the text content, for display."
},
"claim_url": {
"type": "string",
"description": "Present when the subject has no published record (unclaimed or private)."
}
},
"required": [
"status",
"provenance",
"subject",
"summary"
],
"description": "The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record."
}🟢trooth_outside_in_read(domain)
Fetch https://<domain>/ and /.well-known/security.txt once, when called, from Trooth's server and report whether HTTPS answered, which of five response headers (HSTS, CSP, nosniff, frame protection, referrer policy) are present, and whether security.txt is published, absent or unread. IP literals and names resolving to private, loopback or link-local addresses are refused; redirects are reported, not followed; each request stops after 4 seconds. Observations, not witnessed evidence, not a grade.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"description": "Domain to read, e.g. example.com"
}
},
"required": [
"domain"
]
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Machine-branchable outcome for this lookup.",
"enum": [
"published",
"listed",
"unclaimed",
"private",
"observed",
"valid",
"invalid",
"expired",
"revoked",
"answered",
"out_of_scope",
"bad_input",
"unavailable"
]
},
"provenance": {
"type": "string",
"description": "Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding.",
"enum": [
"witnessed_signed",
"signed_scan",
"live_observation",
"honest_absence",
"withheld_by_owner",
"knowledge_base",
"input_error",
"self_declared",
"read_failed"
]
},
"subject": {
"type": "string",
"description": "The company, domain or token this answer is about."
},
"summary": {
"type": "string",
"description": "The same answer as the text content, for display."
},
"claim_url": {
"type": "string",
"description": "Present when the subject has no published record (unclaimed or private)."
}
},
"required": [
"status",
"provenance",
"subject",
"summary"
],
"description": "The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record."
}🟢trooth_ask(question)
Answer a question about Trooth itself (what the Trooth Network is, what one company record carries, pricing, how witnessing works) from Trooth's fixed, curated knowledge base. Makes no outside request. A question the knowledge base does not cover returns out_of_scope; for a company's record use trooth_public_trust_profile.
Input Schema
{
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "A question about Trooth"
}
},
"required": [
"question"
]
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Machine-branchable outcome for this lookup.",
"enum": [
"published",
"listed",
"unclaimed",
"private",
"observed",
"valid",
"invalid",
"expired",
"revoked",
"answered",
"out_of_scope",
"bad_input",
"unavailable"
]
},
"provenance": {
"type": "string",
"description": "Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding.",
"enum": [
"witnessed_signed",
"signed_scan",
"live_observation",
"honest_absence",
"withheld_by_owner",
"knowledge_base",
"input_error",
"self_declared",
"read_failed"
]
},
"subject": {
"type": "string",
"description": "The company, domain or token this answer is about."
},
"summary": {
"type": "string",
"description": "The same answer as the text content, for display."
},
"claim_url": {
"type": "string",
"description": "Present when the subject has no published record (unclaimed or private)."
}
},
"required": [
"status",
"provenance",
"subject",
"summary"
],
"description": "The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record."
}🟢trooth_verify(token)
Check the two signatures on a Trust Ledger Token (tlt2. or tlt. form, or its JTI) against Trooth's own token ledger. Returns valid, invalid (a signature does not check out), expired or revoked, or unclaimed when no token matches. Trooth's signature covers the signing event and the payload at issuance, not the truth of the claims the token carries.
Input Schema
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "A Trust Ledger Token (tlt2. or tlt. form) or its JTI"
}
},
"required": [
"token"
]
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Machine-branchable outcome for this lookup.",
"enum": [
"published",
"listed",
"unclaimed",
"private",
"observed",
"valid",
"invalid",
"expired",
"revoked",
"answered",
"out_of_scope",
"bad_input",
"unavailable"
]
},
"provenance": {
"type": "string",
"description": "Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding.",
"enum": [
"witnessed_signed",
"signed_scan",
"live_observation",
"honest_absence",
"withheld_by_owner",
"knowledge_base",
"input_error",
"self_declared",
"read_failed"
]
},
"subject": {
"type": "string",
"description": "The company, domain or token this answer is about."
},
"summary": {
"type": "string",
"description": "The same answer as the text content, for display."
},
"claim_url": {
"type": "string",
"description": "Present when the subject has no published record (unclaimed or private)."
}
},
"required": [
"status",
"provenance",
"subject",
"summary"
],
"description": "The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record."
}Community
Evidence