Performance Atlas

Acting direction for AI video and voice: state-based behaviour kits and a free prompt linter.

사용해야 할까요

품질 및 안전성

A
설명 품질
98%
스키마 완전성
81%
이름 품질
80%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,170토큰 (도구 정의)
~3.6 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.48%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "performance-atlas": {
      "url": "https://creatinginai.com/agents/mcp"
    }
  }
}

원격 엔드포인트

https://creatinginai.com/agents/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (8)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢atlas_kit(state, shot, target, beats, name, ...)

The direction kit for a character state: beat-by-beat behaviour fitted to the shot size (where the tell can be seen), eye life, breath, the target model's rules and a voice delivery line. Write the acting prose from it, then atlas_lint the prose. Paid: $0.10 per call via x402 (USDC on Base), or 20 calls for $1.00 with atlas_buy_pack.

입력 스키마

{
  "type": "object",
  "properties": {
    "state": {
      "type": "object",
      "description": "The character's state for one beat. Only feels is required.",
      "properties": {
        "feels": {
          "description": "What they feel inside, each with intensity 1-5: a string such as 'fear 4, guilt 3', or a list of {emotion, intensity}.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "emotion"
                ],
                "properties": {
                  "emotion": {
                    "type": "string"
                  },
                  "intensity": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 5
                  }
                }
              }
            }
          ]
        },
        "shows": {
          "type": "string",
          "description": "What they show instead: open | deamplify | neutralize | mask-with | amplify | qualify. For mask-with, write 'mask-with:<emotion>' or set with. Default open."
        },
        "with": {
          "type": "string",
          "description": "For mask-with: the emotion shown instead."
        },
        "control": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5,
          "description": "Capacity to hold it right now. Default 3."
        },
        "tell": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5,
          "description": "Size of the tell: 1 trace, 2 flicker, 3 slip, 4 crack, 5 break. Default: suggested from intensity and control."
        },
        "reveals": {
          "type": "array",
          "description": "Who is present, and what is shown or hidden from them.",
          "items": {
            "type": "object",
            "properties": {
              "to": {
                "type": "string",
                "description": "the person present"
              },
              "will": {
                "description": "feelings they are willing to show that person",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              },
              "wont": {
                "description": "feelings they won't reveal to that person",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              },
              "because": {
                "type": "string",
                "description": "why they hide it, from this person, now"
              },
              "cracks_if": {
                "type": "string",
                "description": "what would crack the mask"
              }
            }
          }
        },
        "journey": {
          "type": "string",
          "description": "arc stage and what they carry in"
        },
        "direction": {
          "type": "string",
          "enum": [
            "opening",
            "holding",
            "closing",
            "breaking"
          ]
        },
        "event": {
          "type": "string",
          "description": "what just happened"
        },
        "alone": {
          "type": "string",
          "description": "the private beat after the listener leaves"
        }
      },
      "required": [
        "feels"
      ]
    },
    "shot": {
      "type": "string",
      "enum": [
        "ECU",
        "CU",
        "MCU",
        "MS",
        "WS"
      ],
      "description": "Shot size, tightest to widest. Default MCU."
    },
    "target": {
      "type": "string",
      "description": "Target model id, e.g. kling-omni-single, seedance-2, generic-video, qwen-tts, elevenlabs-v3. See atlas_targets."
    },
    "beats": {
      "type": "integer",
      "minimum": 2,
      "maximum": 4,
      "description": "Beats in the kit. Default 3."
    },
    "name": {
      "type": "string",
      "description": "Character name as it should appear in the prompt."
    },
    "pronoun": {
      "type": "string",
      "enum": [
        "he",
        "she",
        "they"
      ],
      "description": "Default they."
    },
    "eyeline": {
      "type": "string",
      "description": "e.g. 'Mum is off frame LEFT; his eyes go LEFT to her'"
    },
    "element": {
      "type": "string",
      "description": "Element handle for Elements mode, e.g. @char_noah."
    },
    "modifiers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Modifier ids such as exhausted or child (atlas_search with table modifiers)."
    }
  },
  "required": [
    "state"
  ]
}
🟢atlas_draft(state, shot, target, beats, name, ...)

A first-draft acting paragraph assembled from the kit and fitted to the target's character cap, already linted. It reads mechanically: rewrite it as prose. A voice target gets the delivery line instead. Paid: $0.10 per call via x402 (USDC on Base), or 20 calls for $1.00 with atlas_buy_pack.

입력 스키마

{
  "type": "object",
  "properties": {
    "state": {
      "type": "object",
      "description": "The character's state for one beat. Only feels is required.",
      "properties": {
        "feels": {
          "description": "What they feel inside, each with intensity 1-5: a string such as 'fear 4, guilt 3', or a list of {emotion, intensity}.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "emotion"
                ],
                "properties": {
                  "emotion": {
                    "type": "string"
                  },
                  "intensity": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 5
                  }
                }
              }
            }
          ]
        },
        "shows": {
          "type": "string",
          "description": "What they show instead: open | deamplify | neutralize | mask-with | amplify | qualify. For mask-with, write 'mask-with:<emotion>' or set with. Default open."
        },
        "with": {
          "type": "string",
          "description": "For mask-with: the emotion shown instead."
        },
        "control": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5,
          "description": "Capacity to hold it right now. Default 3."
        },
        "tell": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5,
          "description": "Size of the tell: 1 trace, 2 flicker, 3 slip, 4 crack, 5 break. Default: suggested from intensity and control."
        },
        "reveals": {
          "type": "array",
          "description": "Who is present, and what is shown or hidden from them.",
          "items": {
            "type": "object",
            "properties": {
              "to": {
                "type": "string",
                "description": "the person present"
              },
              "will": {
                "description": "feelings they are willing to show that person",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              },
              "wont": {
                "description": "feelings they won't reveal to that person",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              },
              "because": {
                "type": "string",
                "description": "why they hide it, from this person, now"
              },
              "cracks_if": {
                "type": "string",
                "description": "what would crack the mask"
              }
            }
          }
        },
        "journey": {
          "type": "string",
          "description": "arc stage and what they carry in"
        },
        "direction": {
          "type": "string",
          "enum": [
            "opening",
            "holding",
            "closing",
            "breaking"
          ]
        },
        "event": {
          "type": "string",
          "description": "what just happened"
        },
        "alone": {
          "type": "string",
          "description": "the private beat after the listener leaves"
        }
      },
      "required": [
        "feels"
      ]
    },
    "shot": {
      "type": "string",
      "enum": [
        "ECU",
        "CU",
        "MCU",
        "MS",
        "WS"
      ],
      "description": "Shot size, tightest to widest. Default MCU."
    },
    "target": {
      "type": "string",
      "description": "Target model id, e.g. kling-omni-single, seedance-2, generic-video, qwen-tts, elevenlabs-v3. See atlas_targets."
    },
    "beats": {
      "type": "integer",
      "minimum": 2,
      "maximum": 4,
      "description": "Beats in the kit. Default 3."
    },
    "name": {
      "type": "string",
      "description": "Character name as it should appear in the prompt."
    },
    "pronoun": {
      "type": "string",
      "enum": [
        "he",
        "she",
        "they"
      ],
      "description": "Default they."
    },
    "eyeline": {
      "type": "string",
      "description": "e.g. 'Mum is off frame LEFT; his eyes go LEFT to her'"
    },
    "element": {
      "type": "string",
      "description": "Element handle for Elements mode, e.g. @char_noah."
    },
    "modifiers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Modifier ids such as exhausted or child (atlas_search with table modifiers)."
    }
  },
  "required": [
    "state"
  ]
}
🟢atlas_lint(text, target, shot, state, tell, ...)

Check an acting paragraph or voice direction before spending credits: emotion labels, mugging, looks into the lens, quoted speech on hosts that block it, a tell bigger than the state allows, and the target's character cap. ok is true when there are no errors; each finding carries its fix. Free.

입력 스키마

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "The paragraph or voice direction to check."
    },
    "target": {
      "type": "string",
      "description": "Target model id, e.g. kling-omni-single, seedance-2, generic-video, qwen-tts, elevenlabs-v3. See atlas_targets."
    },
    "shot": {
      "type": "string",
      "enum": [
        "ECU",
        "CU",
        "MCU",
        "MS",
        "WS"
      ],
      "description": "Shot size, tightest to widest. Default MCU."
    },
    "state": {
      "type": "object",
      "description": "Optional: the state the text performs, to check the tell size.",
      "properties": {
        "feels": {
          "description": "What they feel inside, each with intensity 1-5: a string such as 'fear 4, guilt 3', or a list of {emotion, intensity}.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "emotion"
                ],
                "properties": {
                  "emotion": {
                    "type": "string"
                  },
                  "intensity": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 5
                  }
                }
              }
            }
          ]
        },
        "shows": {
          "type": "string",
          "description": "What they show instead: open | deamplify | neutralize | mask-with | amplify | qualify. For mask-with, write 'mask-with:<emotion>' or set with. Default open."
        },
        "with": {
          "type": "string",
          "description": "For mask-with: the emotion shown instead."
        },
        "control": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5,
          "description": "Capacity to hold it right now. Default 3."
        },
        "tell": {
          "type": "integer",
          "minimum": 1,
          "maximum": 5,
          "description": "Size of the tell: 1 trace, 2 flicker, 3 slip, 4 crack, 5 break. Default: suggested from intensity and control."
        },
        "reveals": {
          "type": "array",
          "description": "Who is present, and what is shown or hidden from them.",
          "items": {
            "type": "object",
            "properties": {
              "to": {
                "type": "string",
                "description": "the person present"
              },
              "will": {
                "description": "feelings they are willing to show that person",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              },
              "wont": {
                "description": "feelings they won't reveal to that person",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              },
              "because": {
                "type": "string",
                "description": "why they hide it, from this person, now"
              },
              "cracks_if": {
                "type": "string",
                "description": "what would crack the mask"
              }
            }
          }
        },
        "journey": {
          "type": "string",
          "description": "arc stage and what they carry in"
        },
        "direction": {
          "type": "string",
          "enum": [
            "opening",
            "holding",
            "closing",
            "breaking"
          ]
        },
        "event": {
          "type": "string",
          "description": "what just happened"
        },
        "alone": {
          "type": "string",
          "description": "the private beat after the listener leaves"
        }
      },
      "required": [
        "feels"
      ]
    },
    "tell": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "description": "Optional, without a state: the largest tell allowed."
    },
    "cracks_if": {
      "type": "string",
      "description": "Optional, with tell: what cracks the mask."
    },
    "allow": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Anti-pattern ids to allow deliberately."
    }
  },
  "required": [
    "text"
  ]
}
🟢atlas_search(text, table, shot, channel, limit)

Full-text search across behaviour cues, FACS action units, expressions, display strategies, emotions, situations, modifiers, model notes and targets. Search by emotion or situation; what comes back is behaviour. Free.

입력 스키마

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "e.g. 'caught lying'"
    },
    "table": {
      "type": "string",
      "description": "Limit to one table, e.g. cues, action_units, expressions, emotions, situations, modifiers, model_notes, targets."
    },
    "shot": {
      "type": "string",
      "enum": [
        "ECU",
        "CU",
        "MCU",
        "MS",
        "WS"
      ],
      "description": "Shot size, tightest to widest. Default MCU."
    },
    "channel": {
      "type": "string",
      "description": "Limit to one leak channel id, e.g. lc-hands."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Default 15."
    }
  },
  "required": [
    "text"
  ]
}
🟢atlas_show(id)

One atlas record by id (or an emotion by name), with the records that use it. Free.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "A record id from a kit or search, or an emotion name."
    }
  },
  "required": [
    "id"
  ]
}
🟢atlas_targets

The target models the atlas knows, with each prompt field's character cap and what the model needs. Pass a target id to atlas_kit, atlas_draft and atlas_lint. Free.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟢atlas_journey(characters, project, character)

A character's arc beat by beat, with continuity flags: reset (intensity drops with no event), breach (a hidden feeling shown to the person it's hidden from), overshoot (a tell bigger than the feeling) and flat (beats that never change). Fields a beat leaves out carry over from the beat before. Free.

입력 스키마

{
  "type": "object",
  "properties": {
    "characters": {
      "type": "object",
      "description": "Character id -> list of beats. Each beat is a state (feels, shows, control, tell, reveals...) plus at (beat id) and event.",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "object"
        }
      }
    },
    "project": {
      "type": "string",
      "description": "Local only: a production folder holding journey.yaml."
    },
    "character": {
      "type": "string",
      "description": "Only this character."
    }
  }
}
🟡atlas_buy_pack

Buy 20 paid calls for $1.00 in one x402 payment (USDC on Base). Returns a token: send it as params._meta["creatinginai/pack"] on atlas_kit or atlas_draft instead of paying per call. Each successful call uses one; failed calls are free.

입력 스키마

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

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 8개