Skip to main content
Glama

Silvertongue: Write Like Anyone Famous

Get a voice

get_voice
Read-onlyIdempotent

Get one voice's full profile: its VOICE.md, every source studied with a note on what it shows, the observations drawn from them, an iconic example, the licence and the attribution line. Profiles are unofficial studies of public writing technique; the people named did not write or endorse them.

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": {
      "voice": "<voice>"
    },
    "name": "get_voice"
  }
}

Input Schema

NameRequiredDescriptionDefault
voiceYesA voice slug such as elon-musk for the current edition, or an exact voice ID (slug@sha256:…) from search_voices.

Output Schema

NameRequiredDescriptionDefault
dataYes
release_idYesThe Provenry release every voice in this answer was read from.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / data / properties / lane / enum
      Previous value: -[
      -  "tech",
      -  "celebrity",
      -  "comedy",
      -  "characters",
      -  "classics",
      -  "politicians"
      -]New value: +[
      +  "tech",
      +  "celebrity",
      +  "comedy",
      +  "characters",
      +  "classics",
      +  "politicians",
      +  "styles"
      +]
    • changedOutput schema / properties / data / properties / sources / items / properties / medium / enum
      Previous value: -[
      -  "essay",
      -  "transcript",
      -  "speech",
      -  "letter",
      -  "post",
      -  "fiction",
      -  "play",
      -  "poem"
      -]New value: +[
      +  "essay",
      +  "transcript",
      +  "speech",
      +  "letter",
      +  "post",
      +  "fiction",
      +  "play",
      +  "poem",
      +  "reference"
      +]
  2. Changed1 schema field changed
    • addedOutput schema / properties / data / properties / sources / items / properties / language
      Added value: +{
      +  "pattern": "^[a-z]{2,3}$",
      +  "type": "string"
      +}
  3. Changed3 schema fields changed
    • addedOutput schema / properties / data / properties / example
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The voice at its most iconic: a message from its own world and the draft the voice makes of it; written in its technique, never the person's words.",
      +  "properties": {
      +    "format": {
      +      "enum": [
      +        "post",
      +        "reply",
      +        "explanation",
      +        "thread"
      +      ],
      +      "type": "string"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "text": {
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "message",
      +    "format",
      +    "text"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / data / properties / illustration
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "A handwritten editorial example of the technique on one brief; never the person's words and never model output.",
      -  "properties": {
      -    "brief": {
      -      "type": "string"
      -    },
      -    "format": {
      -      "enum": [
      -        "post",
      -        "reply",
      -        "explanation",
      -        "thread"
      -      ],
      -      "type": "string"
      -    },
      -    "kind": {
      -      "const": "editorial-illustration",
      -      "type": "string"
      -    },
      -    "text": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "brief",
      -    "format",
      -    "text",
      -    "kind"
      -  ],
      -  "type": "object"
      -}
    • changedOutput schema / properties / data / required
      Previous value: -[
      -  "voice_id",
      -  "slug",
      -  "name",
      -  "lane",
      -  "featured",
      -  "move",
      -  "description",
      -  "scope",
      -  "studied",
      -  "strengths",
      -  "limitations",
      -  "status",
      -  "page_url",
      -  "voice_md_url",
      -  "voice_md",
      -  "voice_md_digest",
      -  "sources",
      -  "observations",
      -  "illustration",
      -  "licence",
      -  "licence_url",
      -  "attribution",
      -  "notice"
      -]New value: +[
      +  "voice_id",
      +  "slug",
      +  "name",
      +  "lane",
      +  "featured",
      +  "move",
      +  "description",
      +  "scope",
      +  "studied",
      +  "strengths",
      +  "limitations",
      +  "status",
      +  "page_url",
      +  "voice_md_url",
      +  "voice_md",
      +  "voice_md_digest",
      +  "sources",
      +  "observations",
      +  "example",
      +  "licence",
      +  "licence_url",
      +  "attribution",
      +  "notice"
      +]
  4. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real context beyond them: it discloses the exact contents of the returned profile and a substantive caveat that these are unofficial studies whose named subjects did not write or endorse them, which matters for how an agent presents the data.

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?

Two sentences, front-loaded with the action and the payload, followed by the attribution caveat. The colon-separated inventory is efficient. Minor cost: the content list is long and partially duplicates the output schema.

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?

With a single fully documented parameter, complete annotations, and an output schema that need not be restated, the description covers what an agent needs: what is returned, the ID source, and the legal/attribution framing. Nothing essential to correct invocation is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the schema already explains the slug format and the slug@sha256 exact-ID form. The description adds no syntax, format, or resolution-behavior detail about the 'voice' parameter, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb ('Get') and resource ('one voice's full profile') and enumerates the payload: VOICE.md, sources, observations, iconic example, licence, attribution. An agent immediately knows this is a single-voice full-detail fetch. It does not, however, distinguish itself by name from the sibling get_voice_packet, leaving the boundary between the two to inference.

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 by the phrase 'full profile' and by the reference to an ID obtained from search_voices, which hints at the retrieve-after-search workflow. There is no explicit when-to-use versus get_voice_packet or get_changes, and no statement of what happens when a voice does not exist, so the agent must infer selection between siblings.

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.