Skip to main content
Glama
dmarsters

Author Style "-esque" MCP Server

by dmarsters

Author Style "-esque" MCP Server

A curated catalog of 11 author writing styles decomposed into 8 orthogonal dimensions, with dual-output paths for text generation and image generation. Each style is an independent "stompbox" that colors prompts with structural writing patterns — not copied text.

Architecture

Layer 1: Taxonomy (0 tokens)     → author_style_taxonomy.py
Layer 2: Deterministic (0 tokens) → author_style_operations.py
Layer 3: Creative synthesis       → Consumer LLM responsibility
Server:  FastMCP interface        → author_style_mcp.py

Layer 1 holds the pure data — 11 author coordinates in 8D style-space, dimension specifications, and output vocabulary mappings. Layer 2 performs all deterministic operations: distance computation, weighted interpolation (blending), vocabulary extraction, and prompt generation. No LLM calls at any point. Layer 3 is left to the consuming application — a single Claude or other LLM call that uses the structured directives as creative input.

The Catalog

ID

Style

Origin

Signature

hemingway

Hemingway-esque

English (American)

Iceberg theory, paratactic flatness, submerged tension

de_sade

Marquis de Sade-esque

French

Baroque nesting, exhaustive enumeration, philosophical excess

le_guin

Ursula K. Le Guin-esque

English (American)

Balanced cadence, anthropological worldbuilding, warm precision

didion

Joan Didion-esque

English (American)

Clinical observation, specific sensory detail, retrospective present

lovecraft

Lovecraft-esque

English (American)

Accumulative horror, archaic register, cosmic scale

borges

Borges-esque

Spanish (Argentine)

Labyrinthine logic, infinite recursion, philosophical miniatures

murakami

Murakami-esque

Japanese

Flat affect, mundane surrealism, domestic loneliness

marquez

Márquez-esque

Spanish (Colombian)

Magical realism, multigenerational fate, tropical profusion

kafka

Kafka-esque

German (Czech)

Bureaucratic absurdism, plain surface over impossible premise

shonagon

Sei Shōnagon-esque

Japanese (Classical)

List-form observation, radical sensory specificity, aesthetic judgment

lispector

Clarice Lispector-esque

Brazilian Portuguese

Interior stream, philosophical viscerality, self-examining language

The 8 Dimensions

All values normalized [0.0, 1.0].

Dimension

Low End

High End

Text Output

Image Output

Syntactic Density

Paratactic / flat

Hypotactic / nested

Sentence length, clause depth

Compositional layering depth

Sensory Concreteness

Abstract / conceptual

Concrete / sensory

Noun register, verb type

Material rendering specificity

Ornamental Register

Stripped / minimal

Lush / baroque

Adjective density, figurative language

Surface detail complexity

Tension Visibility

Submerged / iceberg

Externalized / explicit

Show vs. tell ratio

Lighting drama, contrast ratio

Tension Temporality

Ruptural / episodic

Accumulative / inevitable

Pacing, foreshadowing density

Temporal framing, motion state

Reality Stability

Unstable / paradoxical

Stable / verifiable

Epistemic mode, hedging language

Spatial logic, physics accuracy

Interiority

Exterior / behavioral

Interior / consciousness

POV mode, thought access

Framing distance, depth of field

Temporal Mode

Eternal present / episodic

Cyclical / exhaustive

Tense, temporal scope

Motion blur, temporal compositing

Tools

Layer 1 — Taxonomy Lookup (0 tokens)

  • get_author_styles() — List all 11 authors with coordinates

  • get_author_style_profile(author_id) — Complete profile: coordinates, signature moves, text/image vocabulary

  • get_style_dimensions() — All 8 dimensions with low/mid/high output mappings

  • get_parameter_names() — Ordered parameter list for dynamics integration

Layer 2 — Deterministic Operations (0 tokens)

  • compute_author_distance(author_id_1, author_id_2) — Euclidean distance with per-dimension breakdown

  • blend_author_styles(blend_spec_json) — Weighted interpolation of multiple styles

  • generate_text_style_prompt(author_id | blend_spec_json | custom_coordinates_json) — Text-generation directives

  • generate_image_style_prompt(author_id | blend_spec_json | custom_coordinates_json, style_modifier) — Image-generation visual vocabulary

  • find_style_extremes() — Maximum-contrast pair across catalog

  • find_nearest_style(author_id) — Closest neighbor in style-space

Usage Examples

Single style — text prompt

generate_text_style_prompt(author_id="kafka")

Returns structured directives: sentence architecture, vocabulary constraints, forbidden words, paragraph rhythm, and a composited master prompt string.

Single style — image prompt

generate_image_style_prompt(author_id="marquez", style_modifier="photorealistic")

Returns keywords, color palette, compositional rules, and per-dimension visual directives suitable for ComfyUI / Stable Diffusion / DALL-E.

Blended style

blend_author_styles('{"hemingway": 0.6, "borges": 0.3, "shonagon": 0.1}')

Interpolates in 8D style-space. Returns blended coordinates, nearest catalog author (Didion, distance 0.406), merged signature moves, and extracted text/image vocabularies for the blend point.

Distance analysis

compute_author_distance("hemingway", "lovecraft")

Returns Euclidean distance (1.863), per-dimension breakdown, and identifies the maximum-contrast axis (ornamental_register, gap 0.80).

Dynamics Integration

Coordinates are directly compatible with aesthetics-dynamics-core tools:

# Get Hemingway coordinates
coords = get_coordinates("hemingway")
# → {"syntactic_density": 0.10, "sensory_concreteness": 0.90, ...}

# Use with integrate_trajectory for smooth style morphing
integrate_trajectory(
    start_state=get_coordinates("hemingway"),
    target_state=get_coordinates("lovecraft"),
    parameter_names=PARAMETER_NAMES,
    num_steps=30
)

Also composable with catastrophe-morph and surface-design-aesthetics servers — stack an author style brick with a catastrophe type or surface treatment for cross-domain aesthetic composition.

Composition Example: The Stompbox Chain

User prompt
  → Hemingway-esque (text structure: terse, concrete, submerged)
  → Catastrophe Morph: cusp (visual geometry: sharp vertices, crystalline)
  → Surface Design: matte_ceramic (material: chalky, light-absorbing)
  → Final synthesis (single LLM call)

Each brick is independent, deterministic, and zero-cost. Creative synthesis happens once at the end.

Deployment

FastMCP Cloud entry point:

author_style_mcp.py:mcp

Local execution:

python author_style_mcp.py

File Structure

author_style_taxonomy.py    # Layer 1: Types, dimensions, author catalog
author_style_operations.py  # Layer 2: Distance, blend, prompt generation
author_style_mcp.py         # FastMCP server with tool decorators
pyproject.toml              # Package configuration
README.md                   # This file

Style-Space Topology Notes

From validation testing:

  • Maximum contrast pair: Hemingway ↔ Lovecraft (1.863) — wider than Hemingway ↔ de Sade (1.792) due to Lovecraft's combined extremes on ornament, reality stability, and interiority

  • Surprising neighbors: Kafka ↔ Le Guin (0.636) — structurally closer than their reputations suggest, sharing balanced syntactic density and mid-range tension handling

  • Emergent blends: 60/30/10 Hemingway/Borges/Shōnagon lands in Didion's neighborhood — concreteness + interiority + sensory precision ≈ cool clinical observation

  • Unique coordinate: Sei Shōnagon occupies a region no other author approaches — low density + extreme concreteness + episodic temporality + high interiority is a combination absent from the Western literary tradition

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/dmarsters/author-style-mcp'

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