Skip to content

Director's Lookbook

by qxxx5vyd77-byte · remote · no sign-in to list tools · v1.3.1 · published by GitHub user qxxx5vyd77-byte

670+ named visual and music styles: deal a look for a feeling, get paste-ready AI prompts.

Changes · 3

6 tools: 3 change things and 3 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http directors-lookbook https://lookbook-mcp.riverroadlabs.workers.dev/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "deal_hand" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "start": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

6 tools

Changes things 3Claude Code: ask
  • briefTurn card ids into paste-ready prompt blocks, worded verbatim from the cards: IMAGE PROMPT, VIDEO PROMPT, PALETTE (hexes), TYPE, SUNO STYLE and SUNO EXCLUDE, SITE PROMPT, or for jo…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Turn card ids into paste-ready prompt blocks, worded verbatim from the cards: IMAGE PROMPT, VIDEO PROMPT, PALETTE (hexes), TYPE, SUNO STYLE and SUNO EXCLUDE, SITE PROMPT, or for job game: KEY ART, CAPSULE, SPRITE/TILESET, UI MOCKUP, MUSIC; for job drama: SHOT blocks for the hook, twist and payoff plus BEATS (timing, shot, what happens, a placeholder line with its length rule), END CARD (title, promise, call to action, set in the type card), CAPTION RULES (safe band y 210 to 1345 on 1080x1920, nothing in the bottom 30%) and DON'T. Pass the ids from deal_hand (or find_styles), at most one card per suit, except camera: several camera cards make a shot list (one SHOT block each). A camera card of kind light lights every shot; a film card of kind fx adds a post effect. tool respells the blocks: midjourney (--ar, --style raw, --sref with the film card's example image), runway or kling (camera line first, 5 or 10 s clips), suno (music blocks only). seconds splits a running time over the shots, beats says what happens in each, vocals picks lyrics or instrumental. A lens card in a shot list shapes every shot. Example: {"hand_ids": ["film-gold-200", "camera-closeup", "color-golden-hour"], "job": "photo", "subject": "an older woman teaching a young man to dance", "tool": "midjourney"}. Drama example: {"hand_ids": ["type-futura", "film-vision3-500t", "color-blue-hour", "camera-closeup", "camera-pull", "camera-push"], "job": "drama", "subject": "a meal-kit app", "feeling": "a quiet breakup at a dinner table", "title": "Dinner for Two", "seconds": 30}. Also returns the don't-list, tone words, deliverables, lint warnings and a site_url.

    Annotations the server declares

    • title: Compile a brief
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • deal_handStart here whenever someone asks for an image, video or music prompt, a photo or film look, or art direction from a description ("a moody product shot of perfume", "rainy cafe at n…1 finding

    Why it is in this group

    • The description's first verb is "start": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "deal_hand" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "start": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Start here whenever someone asks for an image, video or music prompt, a photo or film look, or art direction from a description ("a moody product shot of perfume", "rainy cafe at night", "a Suno style for a sad song"): deal one matched card per slot for the job from their plain-language feeling. photo = one image (film, camera, color, light); still = image with title type; cover = album or poster art (film, color, type); video or reel = clip or short (film, camera, color, type, score, light); lyric = lyric video (same as reel); song = music only (score); site = website (film, color, type, web); game = key art, store capsule, sprites, UI and loop music (film, color, type, score); drama = a short drama ad where the ad is the show (film, camera, color, type, score, light, and three shots: hook, twist, payoff); all = every suit. Example: {"feeling": "lonely astronaut on a desert planet at dusk", "job": "video", "shots": 3}. Same seed + same inputs = same hand; a new seed re-deals; hold keeps chosen cards ({"film": "film-gold-200"}). For job drama the hand also carries three shots (hook close-up, twist reveal, payoff wide or push) and the look is dealt from the feeling, with the subject read as the product. Returns the hand (slot to card id and name), the main paste-ready prompt for the job (prompt), why each card was picked, clashes, and a site_url showing the hand with pictures. Show the user the prompt and the site_url; use brief with the hand ids for every block (shot lists, palette, Suno, Midjourney spelling).

    Annotations the server declares

    • title: Deal a hand
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • lint_handCheck card ids you combined yourself for clashes before briefing: black-and-white film with a colour grade, two grades stacked, daylight with a night palette, an anamorphic lens in…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check card ids you combined yourself for clashes before briefing: black-and-white film with a colour grade, two grades stacked, daylight with a night palette, an anamorphic lens in a vertical frame, an interior light with an outdoor subject. Example: {"hand_ids": ["film-pushed-bw-1600", "color-teal-orange"], "aspect": "9:16"}. ok: true means clean. deal_hand and brief already lint their own output.

    Annotations the server declares

    • title: Lint a hand
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 3Claude Code: allow
  • find_stylesSearch the 754 cards by feeling, mood, era, technique or style name.No findings

    Why it is in this group

    • The name "find_styles" says "find": a word for reading.
    Description, as the server wrote it
    Search the 754 cards by feeling, mood, era, technique or style name. Use it when someone names or describes a specific look, lens, film stock, light, palette, font or music style ("what does Portra 400 look like", "ring light macro", "Wes Anderson-style symmetry" finds Planimetric Tableau), to identify a named look ("Kodak Gold" finds Gold 200), to find a replacement for one card in a hand, or to browse one suit. Examples: {"query": "film noir"}, {"query": "90s camcorder"}, {"query": "cozy rainy", "suit": "color"}, {"query": "bossa nova", "suit": "score", "top": 3}. Returns ranked cards (id, suit, kind, name, what, example image). When nothing matches directly it says so and returns related styles or did-you-mean suggestions. For a full matched set of cards for a project use deal_hand instead.

    Annotations the server declares

    • title: Find styles
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_suitsCard counts per suit and per kind (for example camera: shot, move, lens, light).No findings

    Why it is in this group

    • The name "list_suits" says "list": a word for reading.
    Description, as the server wrote it
    Card counts per suit and per kind (for example camera: shot, move, lens, light). Use it to see what the lookbook covers before searching.

    Annotations the server declares

    • title: List suits
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • show_cardOne card in full: what it is, the prompt wording ("ask"), what not to do, feels, moods, pairs, swatch hexes or font details, plus image, clip and music_sample URLs when it has them…No findings

    Why it is in this group

    • The name "show_card" says "show": a word for reading.
    Description, as the server wrote it
    One card in full: what it is, the prompt wording ("ask"), what not to do, feels, moods, pairs, swatch hexes or font details, plus image, clip and music_sample URLs when it has them. Example: {"id": "film-gold-200"}. A wrong id returns did-you-mean suggestions.

    Annotations the server declares

    • title: Show a card
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.3.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http directors-lookbook https://lookbook-mcp.riverroadlabs.workers.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__directors-lookbook__find_styles",
      "mcp__directors-lookbook__show_card",
      "mcp__directors-lookbook__list_suits"
    ],
    "ask": [
      "mcp__directors-lookbook__deal_hand",
      "mcp__directors-lookbook__brief",
      "mcp__directors-lookbook__lint_hand"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as directors-lookbook. Review it before you use it.