trust-tools
Website security ratings, token verification, and tamper-evident ledger heads from Obelisk Gate.
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": {
"trust-tools": {
"url": "https://obeliskgate.com/mcp"
}
}
}Remote endpoints
https://obeliskgate.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢scan_trust(url)
Run Obelisk's public trust scan on an https URL — TLS and security-header posture, scored as an Obelisk Rating. Read-only, SSRF-guarded.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The https URL to scan, e.g. https://example.com"
}
},
"required": [
"url"
]
}⚪verify_token(token)
Verify that a JSON Web Token was minted by this Obelisk Gate (ES256, correct issuer) and report its type, subject, assurance, and principal. Never returns secrets.
Input Schema
{
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "A compact-serialized JWT issued by Obelisk (id_token or access token)."
}
},
"required": [
"token"
]
}🟢get_org_rating(org)
Read the public Obelisk Rating (0-100 score, trust band, and trend) for a registered organization by its slug.
Input Schema
{
"type": "object",
"properties": {
"org": {
"type": "string",
"description": "The organization slug, e.g. acme."
}
},
"required": [
"org"
]
}🟡verify_agent_run_proof(run_proof_token, run_proof, expected_agent_id, expected_audience)
Verify an Obelisk run proof. Pass run_proof_token, the token Obelisk signs at POST /api/agent-proof/run: the tool checks Obelisk's signature against its published keys, that the named agent is active now with the same key that answered the run challenge, and which delegation hops matched the owner's registry when the token was signed. A bare run_proof envelope is only checked for internal consistency and is never reported as verified, because anyone can build one. Reports the envelope's commitment scheme: a legacy v1 envelope, whose hashes are unsalted, carries the warning unsalted-v1. Does not reveal or infer raw task data.
Input Schema
{
"type": "object",
"properties": {
"run_proof_token": {
"type": "string",
"description": "The run_proof_token returned by POST /api/agent-proof/run. The only input that can verify."
},
"run_proof": {
"type": "object",
"description": "An obelisk-agent-run-proof-v2 envelope (a legacy v1 envelope is accepted and flagged unsalted-v1). Alone it is checked for consistency only; next to run_proof_token it must equal the signed copy."
},
"expected_agent_id": {
"type": "string",
"description": "Optional expected agt_ subject."
},
"expected_audience": {
"type": "string",
"description": "Optional: require the run token's audience to equal this value."
}
}
}🟢get_agent_proof(proof_id)
Read an Obelisk agent's public proof vector by opaque proof id. Returns independent claims with freshness and scope; never a scalar trust score or a claim of non-humanness.
Input Schema
{
"type": "object",
"properties": {
"proof_id": {
"type": "string",
"description": "The opaque id from an /agent/<proof_id> link."
}
},
"required": [
"proof_id"
]
}🟡transparency_head
Read the current signed transparency head of Obelisk's tamper-evident receipt ledger. Save headAnchorHash with anchorCount and compare later: the count must never go down, and the head at a saved count must not change. No consistency proofs are published, so this cannot show a later head extends a saved one. Same data as /.well-known/obelisk-transparency.json.
Input Schema
{
"type": "object",
"properties": {}
}🟢gate_status
Read the Gate's public liveness facts: issuer, served code revision, OIDC availability, and supported protocols. No posture internals.
Input Schema
{
"type": "object",
"properties": {}
}🟢pin_tool_manifest(tools, expected)
Pin an MCP tool manifest before an agent trusts it. Returns a SHA-256 digest per tool and for the whole catalogue (canonical JSON, every field counts), hidden-text findings (Unicode tag, bidi and zero-width characters) and an injection signal per tool. Pass the digests you stored at approval as expected to detect a changed, added or removed tool. Up to 64 tools in a request body of at most 256 KB. Read-only and stateless; the injection score is one signal, not a guarantee.
Input Schema
{
"type": "object",
"properties": {
"tools": {
"type": "array",
"maxItems": 64,
"items": {
"type": "object"
},
"description": "The tools array exactly as the server's tools/list returned it."
},
"expected": {
"description": "Optional: the catalogueDigest string from an earlier pin, or an object of { toolName: digest } (optionally with catalogue)."
}
},
"required": [
"tools"
]
}🟢explain_rating(rating, narrate)
Explain what an Obelisk Rating number means: its trust band, how the public scan scores, and what typically moves a score. Deterministic by default; pass narrate:true for an additional one-line model-written narrative (cached, public-scope, never required). Pure function of the number — no data is read.
Input Schema
{
"type": "object",
"properties": {
"rating": {
"type": "number",
"description": "A 0-100 Obelisk Rating, e.g. from scan_trust or get_org_rating."
},
"narrate": {
"type": "boolean",
"description": "S283 — also return `narrative`, a one-sentence model-written reading of the band (deterministic fields are always present)."
}
},
"required": [
"rating"
]
}Community
Evidence