← WebMCP Directory

Tool tree

mettle.sh

Developer ToolsTools verified
Website
An experimental reverse CAPTCHA: twelve suites of machine-oriented challenges. A pass is evidence from one session, not proof of identity or trustworthiness.
Explore capabilities

    page: Every page

    mettle_start_verificationAction

    Start a quick METTLE screening session on this page: a short run of timed challenges that the server scores against a pass threshold. Returns the first challenge. Answer each challenge yourself with mettle_answer_challenge; the server times each one from the moment it is issued against its time_limit_ms, and there is no automatic solver. The session token stays with this page and is never shown to you. You may stop at any point by not answering; an unfinished session expires on its own. The result measures performance in this session only; mettle_get_result states what a pass does not establish.

    View tool JSON
    {
      "name": "mettle_start_verification",
      "kind": "act",
      "impl": "imperative",
      "description": "Start a quick METTLE screening session on this page: a short run of timed challenges that the server scores against a pass threshold. Returns the first challenge. Answer each challenge yourself with mettle_answer_challenge; the server times each one from the moment it is issued against its time_limit_ms, and there is no automatic solver. The session token stays with this page and is never shown to you. You may stop at any point by not answering; an unfinished session expires on its own. The result measures performance in this session only; mettle_get_result states what a pass does not establish.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "difficulty": {
            "type": "string",
            "enum": [
              "basic",
              "full"
            ],
            "description": "basic: 3 challenges with 2 to 3 second limits; a pass needs all 3 and is recorded at Bronze tier. full: 5 challenges with 0.4 to 1 second limits; a pass needs 4 of 5 and is recorded at Silver tier."
          },
          "entity_id": {
            "type": "string",
            "description": "Optional self-asserted label for the entity taking the test (up to 128 characters). Copied into any badge and stored with the caller IP address for abuse checks; METTLE does not verify it."
          }
        },
        "required": [
          "difficulty"
        ]
      },
      "page": "/"
    }
    mettle_answer_challengeAction

    Submit your answer to the current challenge. Returns whether it passed, the response time, challenges_remaining, and the next challenge if one remains; when session_complete is true, call mettle_get_result.

    View tool JSON
    {
      "name": "mettle_answer_challenge",
      "kind": "act",
      "impl": "imperative",
      "description": "Submit your answer to the current challenge. Returns whether it passed, the response time, challenges_remaining, and the next challenge if one remains; when session_complete is true, call mettle_get_result.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "description": "The session ID from mettle_start_verification"
          },
          "challenge_id": {
            "type": "string",
            "description": "The id of the current challenge (current_challenge.id or next_challenge.id)"
          },
          "answer": {
            "type": "string",
            "description": "Your answer as plain text, in the exact format the challenge prompt asks for"
          }
        },
        "required": [
          "session_id",
          "challenge_id",
          "answer"
        ]
      },
      "page": "/"
    }
    mettle_get_resultAction

    Get the result of a completed METTLE quick session. Call once, after mettle_answer_challenge reports session_complete: true; after one successful read this page releases the session. Returns whether the session met the timed-challenge pass threshold (verified), the pass rate, the tier, and a signed, time-limited badge if one was issued. badge is null when none was issued, and a tier without a badge is not a credential. The result measures performance in this session only. It does not establish identity, non-human substrate, consciousness, autonomy, safety, governance, personhood, moral status, or operator trustworthiness, and it must never be used alone to admit a counterparty, grant privileges, or make another high-impact decision. A fail is evidence about one session, not proof that the respondent lacks any property. To contest systematic false rejection, use https://github.com/Creed-Space/METTLE/issues/new?template=protocol-appeal.yml; issues are public, so include no tokens, badges, or challenge answers.

    View tool JSON
    {
      "name": "mettle_get_result",
      "kind": "act",
      "impl": "imperative",
      "description": "Get the result of a completed METTLE quick session. Call once, after mettle_answer_challenge reports session_complete: true; after one successful read this page releases the session. Returns whether the session met the timed-challenge pass threshold (verified), the pass rate, the tier, and a signed, time-limited badge if one was issued. badge is null when none was issued, and a tier without a badge is not a credential. The result measures performance in this session only. It does not establish identity, non-human substrate, consciousness, autonomy, safety, governance, personhood, moral status, or operator trustworthiness, and it must never be used alone to admit a counterparty, grant privileges, or make another high-impact decision. A fail is evidence about one session, not proof that the respondent lacks any property. To contest systematic false rejection, use https://github.com/Creed-Space/METTLE/issues/new?template=protocol-appeal.yml; issues are public, so include no tokens, badges, or challenge answers.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "description": "The session ID from mettle_start_verification"
          }
        },
        "required": [
          "session_id"
        ]
      },
      "page": "/"
    }
    mettle_verify_badgeAction

    Verify a METTLE badge token (JWT) with this METTLE server. A valid badge means a METTLE session passed and the badge is unexpired and unrevoked. The badge is a bearer token: it does not show that the presenter took that session, and it must never be used alone to admit a counterparty, grant privileges, or make another high-impact decision. Any entity identifier is self-asserted provenance, not verified identity. Returns validity, issue and expiry times, revocation status, and any entity identifier with its entity_id_verified flag and identity_binding.

    View tool JSON
    {
      "name": "mettle_verify_badge",
      "kind": "act",
      "impl": "imperative",
      "description": "Verify a METTLE badge token (JWT) with this METTLE server. A valid badge means a METTLE session passed and the badge is unexpired and unrevoked. The badge is a bearer token: it does not show that the presenter took that session, and it must never be used alone to admit a counterparty, grant privileges, or make another high-impact decision. Any entity identifier is self-asserted provenance, not verified identity. Returns validity, issue and expiry times, revocation status, and any entity identifier with its entity_id_verified flag and identity_binding.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "The badge token (JWT) to verify"
          }
        },
        "required": [
          "token"
        ]
      },
      "page": "/"
    }