Skip to main content
Glama

Server Details

Read-only MCP server that answers questions about turva.dev from its published data. Five tools return JSON: the service catalog with prices, contact and operator details, engagement principles and dated agent-readiness and security evidence with verification links. Connect over Streamable HTTP. You need no API key. The server does not scan other websites or run audits.

Ownership verified
Status
Healthy
Uptime
100.0% over 53 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a clearly distinct informational need: readiness score, contact, principles, security evidence, and services. The descriptions explicitly cross-reference to prevent confusion (e.g., readiness vs. security evidence, contact vs. services vs. principles). No overlapping purposes remain.

Naming Consistency5/5

All five tools follow the same get_<noun> pattern consistently. The convention is predictable and easy to scan.

Tool Count5/5

Five tools are well-scoped for a read-only informational server about turva.dev. Each tool represents a distinct content area without redundancy or bloat.

Completeness5/5

The surface covers the main informational domains: evidence (agent-readiness and security), contact details, engagement principles, and services/pricing. No obvious read-only gaps exist, and write operations are intentionally absent given the static-JSON design.

Available Tools

5 tools
get_agent_readinessAgent-readiness scoreA
Read-onlyIdempotent
Inspect

Returns turva.dev's own agent-readiness score from an independent public scanner (isitagentready.com), including category sub-scores, with the measurement date and a link to the scanner's start page, where a new check can be run (the link does not open the recorded reading). Use this when a user asks how turva.dev scores, whether its claims are verifiable, or what proof backs the audit service. For web-security scan results, which are a separate measurement, use get_security_evidence instead. Read-only: returns static JSON that is compiled into the Worker, so it changes nothing and updates only on deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
scansYes
domainYes
measured_atYesDate of the reading, YYYY-MM-DD.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, but the description adds genuinely new behavior: the data is static JSON compiled into the Worker, so it only updates on deploy, and the scanner link does not reopen the recorded reading. That staleness caveat is exactly the kind of context an agent needs and cannot get from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the return value before the usage guidance, and each sentence carries information. The parenthetical about the link not opening the recorded reading is slightly clunky but earns its place as a behavioral caveat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with an output schema, the description supplies everything the agent needs: what is returned, when to call it, what it cannot do (link behavior), how fresh the data is, and which sibling handles the adjacent case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description's framing of what the returned record contains is a bonus rather than a parameter concern.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (returns) and resource (turva.dev's agent-readiness score from isitagentready.com), including what the payload contains (category sub-scores, measurement date, scanner link). It explicitly distinguishes itself from the sibling get_security_evidence, so the agent can route without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete trigger conditions (user asks how turva.dev scores, whether claims are verifiable, what backs the audit) and an explicit alternative for the adjacent case: web-security results belong to get_security_evidence. Both when-to-use and when-not-to-use are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contactContact and operator detailsA
Read-onlyIdempotent
Inspect

Returns who runs turva.dev and the official ways to reach it: the operator and business details, the email address, the Signal link, the LinkedIn profile, the correspondence languages, the first-reply time and the access an audit needs. Use this when a user asks who is behind turva.dev, how to contact it, how to start an audit or what access has to be granted. For what is sold and what it costs use get_services instead. Read-only: returns static JSON that is compiled into the Worker, so it changes nothing and updates only on deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
emailYes
signalYes
linkedinYes
locationYes
operatorYes
engagementYes
business_idYes
first_replyYes
channel_noteYes
how_to_startYes
correspondence_languagesYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only and idempotent, and the description adds valuable context beyond them: it 'returns static JSON that is compiled into the Worker, so it changes nothing and updates only on deploy.' This tells the agent the result is stable and side-effect free.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the core purpose and return contents, then adds targeted usage guidance, an alternative-tool pointer, and a concise behavioral note. Every sentence earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool with an output schema, the description is fully complete: it enumerates the returned contact details, explains when to call it, names the sibling to avoid, and discloses its static read-only nature. An agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to explain about parameter usage. The schema coverage is 100%, and the description adds no unnecessary parameter information, matching the baseline for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Returns') and a precise resource: who runs turva.dev and the official contact/audit-access details. It also distinguishes itself from get_services by naming the alternative explicitly, making the tool's unique role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance: 'Use this when a user asks who is behind turva.dev, how to contact it, how to start an audit or what access has to be granted.' It also excludes the sibling alternative: 'For what is sold and what it costs use get_services instead.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_principlesEngagement principlesA
Read-onlyIdempotent
Inspect

Returns turva.dev's engagement principles: async-only, least access, the result shows up in scanner numbers, and open and verifiable. Use this when a user asks how turva.dev works with clients or what rules an engagement follows. For what is sold and what it costs use get_services instead, and for how to start use get_contact. Read-only: returns static JSON that is compiled into the Worker, so it changes nothing and updates only on deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
modelYes
rulesYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar for extra value is met here. The description adds concrete context by explaining the data is static JSON compiled into the Worker, changes nothing, and only updates on deploy—useful behavioral detail beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences carry the full message: what is returned, when to use it, and which sibling tools cover adjacent cases. The read-only clarification is folded in efficiently without repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple parameterless getter, the description covers output content, usage triggers, sibling routing, and behavioral guarantees. An output schema exists, so return-value shape is already handled; nothing necessary for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

This tool has zero parameters and 100% schema description coverage, so the baseline is 4. The description correctly implies there is no input to configure and focuses on output content, which is sufficient for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Returns turva.dev's engagement principles,' and lists the actual content of those principles. It also differentiates from siblings by explicitly naming get_services and get_contact as covering different concerns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives an explicit trigger: 'Use this when a user asks how turva.dev works with clients or what rules an engagement follows.' It also states exclusions and alternatives: use get_services for pricing and get_contact for how to start, leaving no ambiguity about when to choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_security_evidenceWeb-security scan evidenceA
Read-onlyIdempotent
Inspect

Returns the latest public web-security scan results for turva.dev's own domain (Hardenize, Internet.nl site and mail), each with its scan date. Use this when a user asks about turva.dev's own security posture or wants evidence beyond agent-readiness scores. For the agent-readiness score itself, which is a separate measurement, use get_agent_readiness instead. Read-only: returns static JSON that is compiled into the Worker, so it changes nothing and updates only on deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
scansYes
domainYes
measured_atYesDate of the scans, YYYY-MM-DD.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered structurally. The description adds genuinely new context beyond them: the JSON is static, compiled into the Worker, changes nothing, and updates only on deploy — which tells the agent the data can be stale relative to deploys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly packed sentences: content first, usage/alternative second, behavioral caveat third. No filler, and the most decision-relevant routing information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation in prose. Combined with full routing guidance and the static/deploy caveat, an agent has everything needed to select and call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing to disambiguate and the baseline of 4 applies. The description correctly avoids inventing parameter-like filtering options.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns the latest public web-security scan results (Hardenize, Internet.nl site and mail) for turva.dev's own domain, each with a scan date. It explicitly distinguishes itself from the sibling get_agent_readiness by naming the separate agent-readiness measurement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger condition (user asks about turva.dev's own security posture or wants evidence beyond agent-readiness scores) and names the alternative tool with the exact condition that routes to it (for the agent-readiness score, use get_agent_readiness instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_servicesService catalog and pricingA
Read-onlyIdempotent
Inspect

Returns turva.dev's service catalog: the Shopify agent storefront check, agent-readiness audit, advisory, implementation, agent operations, and MCP server design, plus the engagement model and pricing (fixed list prices for the Shopify agent storefront check, audit, advisory and implementation; agent operations and MCP server design on request), and two implementation add-ons that carry a fixed price and are sold only with the diagnosis they follow, bought with it, with its report, or after the report and before implementation starts. Use this when a user asks what turva.dev offers, what it costs, or how an engagement works. For how to reach turva.dev use get_contact instead, and for the rules an engagement follows use get_principles. Read-only: returns static JSON that is compiled into the Worker, so it changes nothing and updates only on deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
currencyYes
servicesYes
engagementYes
pricing_noteYes
vat_includedYes
pricing_modelYes
bundled_implementationYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely new context beyond that: the response is static JSON compiled into the Worker, changing nothing and updating only on deploy. It stops short of describing the response shape, which the output schema presumably carries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and routing sentences are front-loaded and efficient, but the pricing clause runs into a single dense, hard-to-parse construction about add-ons ('bought with it, with its report, or after the report and before implementation starts'). The information earns its place, but one sentence carries too much and hurts readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a static catalog read with an output schema and full annotation coverage, the description supplies everything an agent needs: what it returns, when to call it, and which siblings to use instead. Return-value details are correctly delegated to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema explicitly forbids additional properties, so there is no parameter surface to document. Baseline 4 applies; the description correctly implies a no-argument read with no formatting options.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (returns turva.dev's service catalog and pricing) and enumerates the exact offerings, engagement model, and pricing structure. It explicitly distinguishes itself from siblings by naming get_contact and get_principles, so an agent can route correctly without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit trigger conditions ('when a user asks what turva.dev offers, what it costs, or how an engagement works') and names the two alternative tools with the conditions that select them. Nothing about when to prefer this tool is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedget_security_evidence2 fields changed
      • addedOutput schema / properties / scans / items / properties / measured_at
        Added value: +{
        +  "description": "Date of this reading, YYYY-MM-DD, when it differs from the top-level date.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / scans / items / required
        Previous value: -[
        -  "provider"
        -]New value: +[
        +  "provider",
        +  "url"
        +]
  2. 1 tool update
    • Changedget_security_evidence1 field changed
      • changedOutput schema / properties / scans / items / required
        Previous value: -[
        -  "provider",
        -  "url"
        -]New value: +[
        +  "provider"
        +]
  3. 1 tool update
    • Changedget_contact2 fields changed
      • addedOutput schema / properties / operator
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "background": {
        +      "type": "string"
        +    },
        +    "business_id": {
        +      "type": "string"
        +    },
        +    "company_page": {
        +      "description": "The turva.dev page that states the business details.",
        +      "type": "string"
        +    },
        +    "legal_form": {
        +      "type": "string"
        +    },
        +    "location": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "run_by": {
        +      "type": "string"
        +    },
        +    "team": {
        +      "type": "string"
        +    },
        +    "vat_id": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "name",
        +    "run_by",
        +    "legal_form",
        +    "business_id",
        +    "vat_id",
        +    "location",
        +    "team",
        +    "background",
        +    "company_page"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "email",
        -  "signal",
        -  "linkedin",
        -  "business_id",
        -  "location",
        -  "engagement",
        -  "correspondence_languages",
        -  "first_reply",
        -  "channel_note",
        -  "how_to_start"
        -]New value: +[
        +  "email",
        +  "signal",
        +  "linkedin",
        +  "business_id",
        +  "location",
        +  "engagement",
        +  "correspondence_languages",
        +  "first_reply",
        +  "channel_note",
        +  "how_to_start",
        +  "operator"
        +]
  4. 5 tool updates
    • Changedget_agent_readiness3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "domain": {
        +      "type": "string"
        +    },
        +    "measured_at": {
        +      "description": "Date of the reading, YYYY-MM-DD.",
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "scans": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "categories": {
        +            "additionalProperties": {
        +              "type": "string"
        +            },
        +            "propertyNames": {
        +              "type": "string"
        +            },
        +            "type": "object"
        +          },
        +          "note": {
        +            "type": "string"
        +          },
        +          "provider": {
        +            "type": "string"
        +          },
        +          "result": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "provider",
        +          "result",
        +          "note",
        +          "categories",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "domain",
        +    "measured_at",
        +    "note",
        +    "scans"
        +  ],
        +  "type": "object"
        +}
    • Changedget_contact3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "business_id": {
        +      "type": "string"
        +    },
        +    "channel_note": {
        +      "type": "string"
        +    },
        +    "correspondence_languages": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "email": {
        +      "type": "string"
        +    },
        +    "engagement": {
        +      "type": "string"
        +    },
        +    "first_reply": {
        +      "type": "string"
        +    },
        +    "how_to_start": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "linkedin": {
        +      "type": "string"
        +    },
        +    "location": {
        +      "type": "string"
        +    },
        +    "signal": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "email",
        +    "signal",
        +    "linkedin",
        +    "business_id",
        +    "location",
        +    "engagement",
        +    "correspondence_languages",
        +    "first_reply",
        +    "channel_note",
        +    "how_to_start"
        +  ],
        +  "type": "object"
        +}
    • Changedget_principles3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "model": {
        +      "type": "string"
        +    },
        +    "rules": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "id": {
        +            "type": "string"
        +          },
        +          "rationale": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "title",
        +          "rationale"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "model",
        +    "rules"
        +  ],
        +  "type": "object"
        +}
    • Changedget_security_evidence3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "domain": {
        +      "type": "string"
        +    },
        +    "measured_at": {
        +      "description": "Date of the scans, YYYY-MM-DD.",
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "scans": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "note": {
        +            "type": "string"
        +          },
        +          "provider": {
        +            "type": "string"
        +          },
        +          "result": {
        +            "type": "string"
        +          },
        +          "scale": {
        +            "type": "string"
        +          },
        +          "score": {
        +            "type": "number"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "provider",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "domain",
        +    "measured_at",
        +    "scans",
        +    "note"
        +  ],
        +  "type": "object"
        +}
    • Changedget_services3 fields changed
      • addedInput schema / $schema
        Added value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "bundled_implementation": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "price": {
        +            "type": "number"
        +          },
        +          "requires": {
        +            "description": "The id of the service this add-on is sold with.",
        +            "type": "string"
        +          },
        +          "sold_separately": {
        +            "type": "boolean"
        +          },
        +          "summary": {
        +            "type": "string"
        +          },
        +          "unit": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "price",
        +          "unit",
        +          "requires",
        +          "sold_separately",
        +          "summary"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "currency": {
        +      "type": "string"
        +    },
        +    "engagement": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "communication": {
        +          "type": "string"
        +        },
        +        "notes": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        }
        +      },
        +      "required": [
        +        "communication",
        +        "notes"
        +      ],
        +      "type": "object"
        +    },
        +    "pricing_model": {
        +      "type": "string"
        +    },
        +    "pricing_note": {
        +      "type": "string"
        +    },
        +    "services": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "deliverable": {
        +            "type": "string"
        +          },
        +          "duration": {
        +            "type": "string"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "minimum_commitment": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "price": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "const": "on request",
        +                "type": "string"
        +              }
        +            ],
        +            "description": "EUR, VAT not included, or on request."
        +          },
        +          "sample_url": {
        +            "description": "A published sample of the deliverable, where one exists.",
        +            "type": "string"
        +          },
        +          "summary": {
        +            "type": "string"
        +          },
        +          "unit": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "description": "The turva.dev page that describes the service.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "url",
        +          "price",
        +          "summary",
        +          "deliverable"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "vat_included": {
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "pricing_model",
        +    "pricing_note",
        +    "currency",
        +    "vat_included",
        +    "engagement",
        +    "services",
        +    "bundled_implementation"
        +  ],
        +  "type": "object"
        +}
  5. 1 tool update
    • Addedget_contact

Publisher details

Operator
turva.dev, a sole trader business run by Erik Rekola in Tampere, Finland, Business ID 3600281-7. · Publisher source
Vendor relationship
First-party · Publisher source
Restrictions
None. The endpoint is public and read-only. It needs no account, authentication, API key, paid plan, admin approval or custom OAuth app, and it is not limited by region. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Read-only MCP server that answers questions about turva.dev from its published data. Five tools return JSON: the service catalog with prices, contact and operator details, engagement principles and dated agent-readiness and security evidence with verification links. Connect over Streamable HTTP. You need no API key. The server does not scan other websites or run audits.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Exposes 8 read-only Trust Vault tools over MCP (Streamable HTTP) for querying protocol overview, tokens, market rates, orders, platform stats, fees, and currencies. Enables on-chain reads and static config without wallet or signing.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Remote, read-only MCP connector to check any company's witnessed trust record on the Trooth Network, across identity, security, privacy, and AI practices. Also does a neutral read of a domain's public security surface and verifies signed Trust Ledger Tokens. No key, no account.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources