{
  "$schema": "https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json",
  "name": "turva.dev/turva-mcp",
  "title": "turva.dev",
  "description": "Read-only MCP server for turva.dev with the service catalog, prices and published scan evidence.",
  "version": "1.4.1",
  "websiteUrl": "https://turva.dev/",
  "repository": {
    "url": "https://github.com/erekola/turva-mcp",
    "source": "github"
  },
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://mcp.turva.dev/mcp"
    }
  ],
  "serverInfo": {
    "name": "turva-mcp",
    "title": "turva.dev",
    "version": "1.4.1",
    "description": "Public read-only MCP server for turva.dev. Exposes the service catalog (Shopify agent storefront check, audit, advisory, implementation, agent operations, MCP server design) with prices, own-domain agent-readiness and web-security scan evidence, and engagement principles (async-only, no calls, no calendar links). No authentication, no write operations."
  },
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://mcp.turva.dev/mcp"
  },
  "capabilities": {
    "tools": {
      "listChanged": true
    }
  },
  "tools": [
    {
      "name": "get_services",
      "description": "Service catalog (Shopify agent storefront check, audit, advisory, implementation, agent operations, MCP server design), the engagement model, and pricing."
    },
    {
      "name": "get_agent_readiness",
      "description": "turva.dev's own agent-readiness score from an independent public scanner (isitagentready.com), with category sub-scores, measurement date, and verification links."
    },
    {
      "name": "get_security_evidence",
      "description": "Latest public web-security scan results for turva.dev's own domain (Hardenize, Internet.nl site and mail), with the scan date."
    },
    {
      "name": "get_principles",
      "description": "Engagement principles: async-only, least access, the result shows up in scanner numbers, open and verifiable."
    },
    {
      "name": "get_contact",
      "description": "Official contact channels, the first-reply time, and what access an audit needs."
    }
  ],
  "_meta": {
    "homepage": "https://turva.dev/",
    "mcpEndpoint": "https://mcp.turva.dev/mcp",
    "openapi": "https://turva.dev/openapi.json",
    "agentSkills": "https://turva.dev/.well-known/agent-skills/index.json",
    "apiCatalog": "https://turva.dev/.well-known/api-catalog",
    "llmsTxt": "https://turva.dev/llms.txt",
    "llmsFullTxt": "https://turva.dev/llms-full.txt",
    "authMd": "https://turva.dev/auth.md",
    "contact": "info@turva.dev",
    "languages": [
      "en"
    ],
    "pricing": {
      "currency": "EUR",
      "vatIncluded": false,
      "shopify": {
        "price": 999,
        "unit": "fixed",
        "duration": "48 hours"
      },
      "audit": {
        "price": 4300,
        "unit": "fixed",
        "duration": "2 weeks"
      },
      "advisory": {
        "price": 3000,
        "unit": "month",
        "minimumCommitment": "3 months"
      },
      "implementation": {
        "price": 1500,
        "unit": "day"
      }
    }
  }
}