{
  "serverInfo": {
    "name": "vellum",
    "version": "1.0.0"
  },
  "authentication": {
    "required": false,
    "schemes": []
  },
  "tools": [
    {
      "name": "count_text",
      "description": "Count characters, words, lines, sentences and bytes in a piece of text, exactly. Use this whenever the answer needs to be a precise number, because reading tokens is not the same as counting characters. Reports visible characters separately from code points, which differ for accents and emoji.",
      "inputSchema": {
        "properties": {
          "text": {
            "description": "The text to measure.",
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "count_textArguments",
        "type": "object"
      }
    },
    {
      "name": "score_readability",
      "description": "Score how hard a piece of text is to read, using Flesch reading ease and a grade level, with a plain description of what the number means. Also reports the longest sentence, which is usually the reason prose scores badly.",
      "inputSchema": {
        "properties": {
          "text": {
            "description": "The prose to score.",
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "score_readabilityArguments",
        "type": "object"
      }
    },
    {
      "name": "diff_texts",
      "description": "Compare two versions of a text and return a unified diff plus exact counts of lines added and removed and a similarity percentage. Use it rather than reading both versions and describing the difference.",
      "inputSchema": {
        "properties": {
          "before": {
            "description": "The original text.",
            "title": "Before",
            "type": "string"
          },
          "after": {
            "description": "The changed text.",
            "title": "After",
            "type": "string"
          },
          "context": {
            "default": 3,
            "description": "Context lines around each change.",
            "maximum": 20,
            "minimum": 0,
            "title": "Context",
            "type": "integer"
          }
        },
        "required": [
          "before",
          "after"
        ],
        "title": "diff_textsArguments",
        "type": "object"
      }
    },
    {
      "name": "test_regex",
      "description": "Run a regular expression against text and report every match with its position and capture groups. An invalid pattern comes back as an error message rather than an exception. Use it to check a pattern actually does what it looks like it does.",
      "inputSchema": {
        "properties": {
          "pattern": {
            "description": "The regular expression, in Python syntax.",
            "title": "Pattern",
            "type": "string"
          },
          "text": {
            "description": "The text to search.",
            "title": "Text",
            "type": "string"
          },
          "flags": {
            "default": "",
            "description": "Any of i (ignore case), m (multiline), s (dotall), x (verbose).",
            "title": "Flags",
            "type": "string"
          }
        },
        "required": [
          "pattern",
          "text"
        ],
        "title": "test_regexArguments",
        "type": "object"
      }
    },
    {
      "name": "hash_text",
      "description": "Compute a cryptographic hash of some text. Deterministic, and not something that can be worked out by reading.",
      "inputSchema": {
        "properties": {
          "text": {
            "description": "The text to hash.",
            "title": "Text",
            "type": "string"
          },
          "algorithm": {
            "default": "sha256",
            "description": "Which digest to use.",
            "enum": [
              "md5",
              "sha1",
              "sha256",
              "sha512"
            ],
            "title": "Algorithm",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "hash_textArguments",
        "type": "object"
      }
    }
  ],
  "resources": [],
  "prompts": []
}