Skip to main content
Glama
AIStoryHub

Étincel MCP Server

by AIStoryHub

Train a voice from writing samples

train_style

Train a personalized writing voice from your own samples, measuring sentence rhythm, punctuation habits, and phrasing; add more samples to refine the profile.

Instructions

Analyze one or more of the user's own writing samples (emails, posts, essays, memos: real finished text they wrote or approved) and persist a trained voice profile under that name. Measures sentence length and variance, paragraph rhythm, contraction rate, em-dash and semicolon habits, fragment use, structural entropy (sentence-opener variety and punctuation-mark variety), and recurring phrasing. Call again with the same name and new samples to add more training data to that voice; the new samples blend into its existing measurements rather than replacing them. If the voice may have been renamed since it was created, pass its id (from list_styles) instead so the right voice is targeted regardless of its current name. This never fabricates a voice from a description; it only learns from real text the user supplies.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoDeprecated alias for styleId.
nameYesName for this voice, e.g. the user's name or a project name.
samplesYesOne or more raw text samples of the user's own writing, at least a few paragraphs each for a reliable read.
styleIdNoId of an existing trained voice to train further, from list_styles. Use this to precisely target a voice you want to add more samples to, especially if it's been renamed. Omitted: falls back to matching an existing voice by name (case/whitespace-insensitive), or creating a new one if none matches.
Behavior4/5

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

Since all annotations are false, the description carries the full behavioral burden. It discloses that the tool persists data, blends new samples into existing measurements rather than replacing them, and never fabricates from a description. It also details the metrics measured (sentence length, contraction rate, etc.) and explains the id fallback behavior, which goes well beyond the minimal annotations.

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 description is detailed but not bloated; each sentence contributes to understanding the tool's purpose, usage, and behavior. It is front-loaded with the core action and logically organized. While somewhat long, the length is justified by the tool's complexity and the need to cover metrics, id fallback, and limitations.

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?

The description is quite comprehensive: it explains the persistent effect, the incremental training behavior, the id fallback, and the limitation against fabrication. However, it does not describe the return value or potential error conditions, which would be useful given there is no output schema. Still, for the tool's complexity, the description is largely complete.

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?

The schema already covers 100% of parameter descriptions, giving a baseline of 3. The description adds meaningful usage semantics: the 'name' parameter can be reused to add training data, and the 'id' or 'styleId' can target a voice even after a rename. This enriches the static schema definitions with dynamic usage patterns.

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 description clearly states the tool's function: it analyzes the user's writing samples and persists a trained voice profile. It uses specific verbs like 'Analyze' and 'persist', and distinguishes itself from sibling tools by explicitly noting it never fabricates a voice from a description, only learning from real text. This makes the purpose unambiguous and differentiated.

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

Usage Guidelines4/5

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

The description gives explicit usage context: call again with the same name and new samples to add training data, and pass the voice's id from list_styles if the voice may have been renamed. It also implies when not to use it (when a description is given, not real samples). It does not name a specific alternative tool, but the context of siblings like create_style_from_dials makes the distinction clear enough.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AIStoryHub/etincel'

If you have feedback or need assistance with the MCP directory API, please join our Discord server