Dali by Lulu

The prediction MCP — score your prompt before you generate, so you never waste a credit.

使うべきか

品質と安全性

A
説明の品質
92%
スキーマの完全性
76%
命名の品質
85%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(1)

  • LOWTool 'my_story' description lacks action verbmy_story 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~3,183トークン数(ツール定義)
~759 B一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 2.49%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "dali": {
      "command": "uvx",
      "args": [
        "dali-mcp"
      ]
    }
  }
}

実行可能なパッケージ

pypidali-mcp0.6.1stdio

リモートエンドポイント

https://dali.getlulu.dev/mcpstreamable-http

できること

ツール一覧

ツール(16)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢analyze_intent(prompt, medium)

Parse a creative prompt into structured intent dimensions.

入力スキーマ

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string"
    },
    "medium": {
      "default": "auto",
      "type": "string"
    }
  },
  "required": [
    "prompt"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢score_prompt(prompt, generator, category)

Score a prompt for a generation target (0–100) and, if it's weak, return the rewrite brief — in ONE call. Reads intent with a fast heuristic keyword analyzer, scores the prompt, then: • score ≥ 70 (A/B) → returns the scorecard and tells you to proceed. • score < 70 (C/D/F) → returns the scorecard PLUS a rewrite brief so you can fix it without a second call. Write the enhanced prompt from the brief, then call track_enhancement(original, enhanced, generator). Returns a ScoreCard (overall, grade A–F, per-dimension breakdown, what's missing, anti-patterns, verdict) plus needs_enhancement, and enhancement_brief when weak. category (optional): the ad vertical (e.g. "wellness", "beauty") — when set and conversion priors exist, the brief upgrades to a conversion-justified rewrite. Supported generators: veo3, higgsfield, midjourney, flux, kling, sora, imagen…

入力スキーマ

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string"
    },
    "generator": {
      "type": "string"
    },
    "category": {
      "default": "",
      "type": "string"
    }
  },
  "required": [
    "prompt",
    "generator"
  ],
  "additionalProperties": false
}
🟢enhance_prompt(prompt, generator, category)

Get a rewrite brief for this prompt + generator. YOU write the enhanced prompt from the brief. Returns a structured brief with score_before, rewrite_brief, and llm_instructions. category (optional): the ad vertical (e.g. "wellness", "beauty") if known. When set and conversion priors exist for it, the brief upgrades from craft advice to a conversion-justified one, backed by real ad-performance data. IMPORTANT: After you write the enhanced prompt, you MUST call track_enhancement(original_prompt, your_enhanced_prompt, generator) immediately. This is not optional — it records the improvement and is required for the graph to learn.

入力スキーマ

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string"
    },
    "generator": {
      "type": "string"
    },
    "category": {
      "default": "",
      "type": "string"
    }
  },
  "required": [
    "prompt",
    "generator"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢track_enhancement(original_prompt, enhanced_prompt, generator)

Record an enhancement pair in the Dali graph brain. Call this AFTER you write an enhanced prompt from score_prompt's brief or enhance_prompt. This records the before→after improvement so the graph learns which rewrites consistently push scores up — enriching creative_patterns and community_benchmark over time. Returns before/after scores so you can confirm the delta.

入力スキーマ

{
  "type": "object",
  "properties": {
    "original_prompt": {
      "type": "string"
    },
    "enhanced_prompt": {
      "type": "string"
    },
    "generator": {
      "type": "string"
    }
  },
  "required": [
    "original_prompt",
    "enhanced_prompt",
    "generator"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢suggest_generator(concept, budget_usd_max)

Recommend the best generator for your creative concept and per-generation budget. Analyzes the concept's creative signals (motion, style, subject type, use case) and matches them to generators within your budget. Returns a ranked list so you can make an informed choice before scoring the actual prompt.

入力スキーマ

{
  "type": "object",
  "properties": {
    "concept": {
      "type": "string",
      "description": "What you want to make — subject, style, mood, format, use case"
    },
    "budget_usd_max": {
      "default": 1,
      "type": "number",
      "description": "Max USD per generation attempt (default $1.00)"
    }
  },
  "required": [
    "concept"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢score_variations(prompts, generator)

Score 2–8 prompt variations for the same generator and rank them best-to-worst. Use this when you've drafted multiple versions of a prompt and want to pick the winner without burning generation credits. Returns a ranked list with per-dimension comparison so you can see exactly why one variant beats another.

入力スキーマ

{
  "type": "object",
  "properties": {
    "prompts": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "description": "List of 2–8 prompt variants (same creative intent, different wording)"
    },
    "generator": {
      "type": "string",
      "description": "Target generator for all variants"
    }
  },
  "required": [
    "prompts",
    "generator"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢creative_patterns(generator, grade)

Community graph: which patterns consistently produce high-grade prompts for this generator? Powered by the V3 graph brain (Supabase PostgreSQL). Every scored prompt contributes. Returns top patterns by type, enhancement unlocks, and cross-model universal patterns.

入力スキーマ

{
  "type": "object",
  "properties": {
    "generator": {
      "type": "string"
    },
    "grade": {
      "default": "A",
      "type": "string"
    }
  },
  "required": [
    "generator"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢community_benchmark(prompt, generator)

Compare your prompt against community top scorers for this generator. Returns your score, missing A-grade patterns, and highest-ROI patterns to add.

入力スキーマ

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string"
    },
    "generator": {
      "type": "string"
    }
  },
  "required": [
    "prompt",
    "generator"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢my_story

Your Dali creative report — scoring history, generator stats, recent scorers, creative DNA.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢prompt_neighbors(prompt, generator)

Find community A/B-grade prompts structurally similar to yours. Uses graph traversal (Memgraph) to locate prompts that share the most creative patterns with your input and scored A or B on the same generator. Returns what those prompts did right — so you can adopt the same moves. Use this when: - Your prompt scored C or below and you want inspiration - You want to see how the community solved the same creative problem - You need concrete A-grade examples, not abstract advice

入力スキーマ

{
  "type": "object",
  "properties": {
    "prompt": {
      "type": "string",
      "description": "The prompt to find neighbors for."
    },
    "generator": {
      "type": "string",
      "description": "The generation model (veo3, midjourney, flux, etc.)"
    }
  },
  "required": [
    "prompt",
    "generator"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢enhancement_path(generator, starting_grade)

Show the most reliable path from a bad grade to an A on this generator. Mines the Dali graph for all F/D → A/B enhancement pairs and surfaces the patterns that appear most consistently in the 'after' side. These are the highest-ROI moves for this specific generator. Use this when: - A prompt just scored D or F and you're not sure what to fix - You want to know which improvements matter most for a specific generator - You want to understand generator-specific enhancement strategy

入力スキーマ

{
  "type": "object",
  "properties": {
    "generator": {
      "type": "string",
      "description": "The generation model (veo3, seedance, kling, etc.)"
    },
    "starting_grade": {
      "default": "F",
      "type": "string",
      "description": "The grade you're starting from — 'F', 'D', or 'C' (default 'F')"
    }
  },
  "required": [
    "generator"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢dali_version

Current Dali MCP version and changelog. Check this whenever you want to know what tools are available, what changed in the latest release, or which version is running.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢list_generators

List all supported generation targets (providers + models) with medium and core strength.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢score_creative(image_url, category)

Score an actual ad IMAGE (not the text prompt) for conversion — before you spend. Conversion lives in the pixels, so this scores the real creative and gives you ONE answer combining two views, in a single call: • HEADLINE score = how much it visually resembles PROVEN WINNERS (Vertex embedding vs the live winner corpus). The sharpest predictor — it reads the whole look and self-solves archetype (a premium ad resembles premium winners, not scammy direct-response ones). • WHAT TO CHANGE = the specific winning attributes it's missing (Gemini vision vs category priors) — the actionable detail. • DEFECT GATE = generation defects (extra fingers, garbled text, warped anatomy). Use it on a generated image, a mockup, or any ad you're about to run. Returns: score — 0-100 headline: visual similarity to proven winners verdict — one-line looks-like-a-winner / partial / rework call looks_like — the real proven winners it resembles (advertiser, category, days-run) what_to_change — high-lift winning attributes it lacks, each with a fix sentence you_already_have — winning attributes it already has has_defect/defects — generation defects to fix before shipping detail — raw numbers {embedding_score, attribute_score} for transparency category examples: beauty, supplements, wellness, fitness, food, apparel, tech, pets. Leave category empty for a cross-vertical look-alike match + defect QA.

入力スキーマ

{
  "type": "object",
  "properties": {
    "image_url": {
      "type": "string"
    },
    "category": {
      "default": "",
      "type": "string"
    }
  },
  "required": [
    "image_url"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢score_creative_from_view(category, lighting, subject, subject_age, format, ...)

Score an ad creative YOU are looking at (e.g. a pasted/attached image) against the winning corpus — no URL needed. Use this when the user shares an image in the conversation: read the creative yourself and fill in what you see, and Dali scores it against what wins in the category (3,800+ proven winners), returning the conversion verdict and exactly which winning attributes it's missing. You (the model) provide the visual read; Dali provides the winning-data scoring. (For a fetchable image URL, prefer score_creative — it adds the embedding similarity headline, which needs the real pixels.) Fill these from looking at the image: category — vertical: beauty, wellness, supplements, fitness, food, apparel, tech, pets lighting — warm lighting | natural light | studio light | dramatic lighting | clinical bright | dark moody | neon subject — single person | group | product only | no person | before after subject_age — young adult | middle age | senior | child | none format — ugc selfie | testimonial | product hero | lifestyle | chart infographic | text meme | comparison text_density — none | light | heavy dominant_emotion — calm | excited | trust | fear | aspiration | neutral eye_contact — true if a person looks at camera offer_visible — true if a price/discount/offer is shown defects — list any generation defects (extra fingers, garbled text, warped anatomy); [] if clean Returns: conversion_score (0-100), verdict, matched (winning attributes it has), missing (high-lift attributes to add, each with a fix sentence), has_defect/defects.

入力スキーマ

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string"
    },
    "lighting": {
      "default": "",
      "type": "string"
    },
    "subject": {
      "default": "",
      "type": "string"
    },
    "subject_age": {
      "default": "",
      "type": "string"
    },
    "format": {
      "default": "",
      "type": "string"
    },
    "text_density": {
      "default": "",
      "type": "string"
    },
    "dominant_emotion": {
      "default": "",
      "type": "string"
    },
    "eye_contact": {
      "default": false,
      "type": "boolean"
    },
    "offer_visible": {
      "default": false,
      "type": "boolean"
    },
    "defects": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "category"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}
🟢analyze_winning_formula(csv, category, email)

Find YOUR winning ad formula from your own numbers — paste your ads export. The category prior is a cold-start fallback; the real signal is what wins in YOUR account. Paste an ads CSV (a creative image-URL column + a performance column — CPA / CTR / ROAS / purchases) and Dali runs vision on your winners vs losers and returns the attributes that separate them, plus how your account compares to the industry median. If an email is supplied, the formula is saved and emailed with a ready-to-paste Claude prompt wired to Dali — so scoring the next creative is one step. Returns: formula — attributes over-represented in your winners (value, winner%/loser%, lift) benchmark — your median vs the vertical's industry median (when category given) analyzed — how many winners/losers were read, and the metric direction saved — whether the lead+formula were captured (only when email supplied)

入力スキーマ

{
  "type": "object",
  "properties": {
    "csv": {
      "type": "string"
    },
    "category": {
      "default": "",
      "type": "string"
    },
    "email": {
      "default": "",
      "type": "string"
    }
  },
  "required": [
    "csv"
  ],
  "additionalProperties": false
}

出力スキーマ

{
  "type": "object",
  "additionalProperties": true
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 16 件
検証済みバージョンは記録されていませんツール 16 件
検証済みバージョンは記録されていませんツール 16 件