Skip to main content
Glama

Create verse image

create_verse_image
Read-onlyIdempotent

Return JPEG URLs for a verse card that composites verbatim scripture onto a pre-existing static image from the Sovereign Logos artwork library. This tool does not generate images. It draws stored verse text, the Sovereign Logos wordmark, and a QR code over a library background. Backgrounds are chosen from curated topics (mammon, false prophets, the Seed is Christ, idols, judgment), then verse tags and themes. The response lists 1 to 6 ranked options, each with a JPEG URL. plainOptions lists two cards with no artwork: navy and royal purple. The background argument accepts "plain" or "plain-royal" for one of those cards. With no translation argument, the server uses LXX2012, then the KJV where LXX2012 has no text (the New Testament).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "reference": "<reference>"
    },
    "name": "create_verse_image"
  }
}

Input Schema

NameRequiredDescriptionDefault
moodNoBias toward a mood: holy, contemplative, sovereign, grieving, wrathful, fierce, triumphant, pastoral.
countNoHow many background options to return.
formatNofeed 1080x1350 (default, best for X and Instagram), square 1080x1080, story 1080x1920.
excludeNoBackground ids to skip, e.g. ones already posted.
referenceYesBook chapter:verse[-verse], up to 8 verses, e.g. "Matthew 6:24".
backgroundNoForce a background id (from list_backgrounds) as option 1. "plain" or "plain-royal" give a plain brand card (see plainOptions).
translationNoOptional. Default: lxx2012, falling back to kjv.
psalmNumberingNoHow to read Psalm numbers in the reference. "mt" (default) = Masoretic/KJV numbering, converted for Septuagint translations. "native" = the translation's own numbering.

Output Schema

NameRequiredDescriptionDefault
notesNo
topicsNo
versesNo
optionsYes
citationYes
referenceYes
requestedNo
overlayTextYes
translationYes
plainOptionsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "citation": {
      +      "properties": {
      +        "licence": {
      +          "type": "string"
      +        },
      +        "publisher": {
      +          "type": "string"
      +        },
      +        "translation": {
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "url"
      +      ],
      +      "type": "object"
      +    },
      +    "notes": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "options": {
      +      "items": {
      +        "properties": {
      +          "background": {
      +            "properties": {
      +              "category": {
      +                "type": "string"
      +              },
      +              "id": {
      +                "type": "string"
      +              },
      +              "mood": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "id"
      +            ],
      +            "type": "object"
      +          },
      +          "image": {
      +            "properties": {
      +              "contentType": {
      +                "type": "string"
      +              },
      +              "height": {
      +                "type": "integer"
      +              },
      +              "url": {
      +                "type": "string"
      +              },
      +              "width": {
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "url"
      +            ],
      +            "type": "object"
      +          },
      +          "rank": {
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "rank",
      +          "image"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "overlayText": {
      +      "type": "string"
      +    },
      +    "plainOptions": {
      +      "items": {
      +        "properties": {
      +          "image": {
      +            "properties": {
      +              "contentType": {
      +                "type": "string"
      +              },
      +              "height": {
      +                "type": "integer"
      +              },
      +              "url": {
      +                "type": "string"
      +              },
      +              "width": {
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "url"
      +            ],
      +            "type": "object"
      +          },
      +          "style": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "image"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "reference": {
      +      "type": "string"
      +    },
      +    "requested": {
      +      "type": "string"
      +    },
      +    "topics": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "translation": {
      +      "properties": {
      +        "code": {
      +          "type": "string"
      +        },
      +        "licenceLabel": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "shortName": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "code",
      +        "name",
      +        "shortName"
      +      ],
      +      "type": "object"
      +    },
      +    "verses": {
      +      "items": {
      +        "properties": {
      +          "chapter": {
      +            "type": "integer"
      +          },
      +          "text": {
      +            "type": "string"
      +          },
      +          "verse": {
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "chapter",
      +          "verse",
      +          "text"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "reference",
      +    "translation",
      +    "overlayText",
      +    "citation",
      +    "options"
      +  ],
      +  "type": "object"
      +}
  2. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, so the safety profile is covered; the description adds real behavior on top: 1 to 6 ranked options each with a JPEG URL, plain no-artwork cards exposed via plainOptions, and the translation fallback chain (lxx2012 then KJV for the New Testament). It does not discuss caching or how ranking works, but the key output-shape and defaulting behavior is disclosed.

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?

The distinguishing constraint (no generation, URLs only) is front-loaded, followed by composition, background selection, and defaults in a logical order. It is on the long side and the wordmark/QR branding detail is decorative, but nearly every sentence carries actionable information.

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

Completeness4/5

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

With an output schema present, the description need not explain return values, and it still summarizes them; eight parameters are all schema-documented. The only notable gap is that it never states what happens on an invalid reference or unavailable background, which for a lookup-and-render tool would be useful but is not essential to invoking 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?

Schema coverage is 100%, so the baseline is 3, and the description earns above that by explaining the special "plain"/"plain-royal" values of background and the semantic default for translation that the schema only briefly notes. It also gives interpretive context for the curated topic ordering of backgrounds, which the enum-less string parameter cannot convey.

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 first sentence states a specific verb and resource (return JPEG URLs for a verse card compositing scripture onto a stored background) and immediately adds "This tool does not generate images," which prevents the most likely misread. It also describes what is composited (verse text, wordmark, QR code), so the agent knows exactly what comes back.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the agent can infer this is the tool for producing shareable verse cards as opposed to reading text via get_passage. The negative scoping ("does not generate images") and the pointer to list_backgrounds for background ids are helpful, but there is no explicit when-to-use/when-not or comparison to a sibling alternative.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources