Skip to main content
Glama
club-paradiso

always-okay

always-okay

A creative-direction lens reconstructed from 125 public records of Min Hee-jin's professional work (interviews, talks, credits and collaborator accounts, 2002–2026), that you can plug into ChatGPT, Claude or Codex. 32 principles, each traced to its sources. It helps you turn a rough brief into a sharp concept, a brand idea, a launch plan or an honest critique — and it can show you the public evidence behind every piece of advice.

Not affiliated with, endorsed by, or connected to Min Hee-jin or ooak records (주식회사 오케이). Independent research. It models documented professional reasoning from public interviews, talks, credits and collaborator accounts. It never speaks as her, never invents her opinions or quotes, and never copies her look.

👉 한국어 사용법은 아래에 있습니다.


What you get, in one picture

You describe your project. The AI, using always-okay, works in four steps:

  1. Frame — finds the real problem and questions vague words like "trendy" or "premium".

  2. Make — proposes one memorable idea built from your own material (a "signature device"), and shows how it appears in the product, the launch, the copy and the visuals.

  3. Edit — removes what doesn't serve that idea.

  4. Deliver — tells you what to do first, what to wait on, and what never to do.

Ask "why?" and it shows the principle and the public source it comes from.


Related MCP server: brand-gen

Start here (no coding needed)

Works in any AI that can open web links (ChatGPT with search, Claude with web access, Gemini, …). Paste this into a chat, then describe your project:

Read this page and use its method to help with my project: https://raw.githubusercontent.com/club-paradiso/always-okay-mcp/master/ALWAYS-OKAY.md

This gives the AI the whole method in one page. It is lighter than connecting the server: the AI can't look up the sources behind each principle, and if web access is off it can't open the link at all (then attach the file ALWAYS-OKAY.md instead). For the full version, connect it as below.

Full version: connect the server

You only need one thing: this address.

https://always-okay-mcp.onrender.com/mcp

ChatGPT

Requires a paid ChatGPT plan that allows custom connectors (developer mode).

  1. ChatGPT → Settings → Apps & Connectors → Advanced settings → turn on Developer mode.

  2. Back in Apps & Connectors, click Create.

  3. Fill in:

    • Name: always-okay

    • MCP Server URL: https://always-okay-mcp.onrender.com/mcp

    • Authentication: No authentication ← important (see Troubleshooting)

  4. Tick "I trust this application" and click Create.

  5. In a new chat, open the + menu, choose always-okay, and type your request.

Claude (claude.ai or the Claude desktop app)

  1. Settings → Connectors → Add custom connector.

  2. Name: always-okay · URL: https://always-okay-mcp.onrender.com/mcp → Add.

  3. In a new chat, make sure always-okay is switched on in the tools menu, then type your request.

Try these first requests

  • "Use always-okay. I run a small bakery in Mangwon-dong and I'm launching a sourdough line. Give me creative direction and a launch plan."

  • "always-okay로 우리 앱 이름 후보 5개와 추천 이유를 줘. 서비스는 동네 공구 대여 앱이야."

  • "Critique this landing-page copy honestly with always-okay: …(paste text)…"

  • "Why do you recommend that? Show me the evidence." (it traces the principle to its sources)


Troubleshooting

What you see

What it means

Fix

"Couldn't discover OAuth settings"

The connector was created with OAuth selected. always-okay has no login.

Recreate it with Authentication: No authentication.

Connector creation times out / first answer is slow

The free server sleeps when idle and needs ~30 s to wake up.

Wait a moment and try again.

You can't find "Create" or "Developer mode" in ChatGPT

Custom connectors aren't available on your plan or workspace.

Use Claude instead, or a plan that supports custom connectors.

The AI answers but never uses always-okay

The connector isn't enabled for that chat.

Start a new chat and enable always-okay from the + / tools menu, or say "use always-okay".

The AI says it can't open the link

Web access is off in that chat or app.

Turn on search/web access, or download ALWAYS-OKAY.md and attach the file.

"Rate limit exceeded"

More than 120 requests per minute from your network.

Wait a minute.


For developers

Claude Code

claude mcp add always-okay -- uvx --from git+https://github.com/club-paradiso/always-okay-mcp always-okay-mcp

Codex (skill + MCP in one plugin)

codex plugin marketplace add club-paradiso/always-okay-mcp
codex plugin add always-okay@club-paradiso

Start a new thread afterwards so Codex picks up the skill and tools.

Any MCP client

Local (stdio): uvx --from git+https://github.com/club-paradiso/always-okay-mcp always-okay-mcp · Remote (Streamable HTTP): https://always-okay-mcp.onrender.com/mcp

Tools (all read-only)

Tool

What it does

get_framework

The Frame → Make → Edit → Deliver loop, 8 stages, all principles with evidence strength

get_principle

One principle: rule, limits, what it guards against, tensions, support, claim IDs

search_evidence

Search paraphrased evidence notes by text, domain or era, with source metadata

trace

Principle or claim → evidence notes → public sources (URLs, dates)

list_tensions

Contradictions and myths the lens keeps open

get_mode

10 working modes (strategist, creative director, critic, launch director, …)

get_checklist

Brief, concept, signature-device, edit, launch, briefing, convention, taste, language, limits

check_draft

Deterministic lint (KO/EN): declared quality, filler, template phrasing, borrowed tropes, persona leaks

search, fetch

OpenAI-connector-compatible search over principles, notes, tensions and checklists

Prompt: creative_direction(brief).

ALWAYS-OKAY.md (single-file edition) is generated from the Skill: python3 tools/build_paste_guide.py (the test suite fails if it is stale). llms.txt points assistants to it.

Self-hosting

uv run always-okay-mcp-http          # http://localhost:8000/mcp

Deploy with the included Dockerfile (render.yaml for Render, fly.toml for Fly.io). Environment: PORT, ALLOWED_HOSTS (public hostname; enables DNS-rebinding protection), RATE_LIMIT (requests/minute/IP, default 120). Health check: GET /healthz.

Development

uv sync && uv run pytest -q && uv run python tests/stdio_smoke.py

How it was made, and how well it works

32 principles of creative direction, each traced through claims and paraphrased evidence notes to public sources (125 sources, 598 notes, 164 claims, 44 documented tensions).

In a blind evaluation on 30 creative-direction tasks, the lens (as a Claude Agent Skill) was ranked first on 26/30 and 25/30 cases by two independent judge panels, ahead of a strong generic "world-class creative director" prompt. Judges were AI models of the same family as the generators; a human panel has not yet been run.

Rules the server tells every assistant

Never speak as or for her · method is not output (no Y2K/retro/NewJeans defaults) · principles are defaults with tensions · accuracy and official wording first in public, legal, financial, health or safety contexts · no private life, gossip or dispute commentary.

Data

src/always_okay_mcp/data/ is a snapshot exported from the research repository: paraphrased notes, source metadata and URLs only — no article text, transcripts or media. Dispute-record material is excluded. Copyright in the underlying sources remains with their publishers.

License

Code: MIT. Research data (principles, claims, paraphrased notes): CC BY 4.0. See LICENSE.


한국어: 처음 쓰는 분을 위한 사용법

이게 뭔가요?

민희진의 공개 인터뷰·강연·크레딧·협업자 증언 등 공개 기록 125건을 분석해 재구성한 크리에이티브 디렉션 도우미입니다. ChatGPT나 Claude에 연결해서 씁니다. 원칙 32개는 모두 출처까지 추적할 수 있습니다. 대충 적은 기획을 선명한 콘셉트, 브랜드 아이디어, 런칭 계획, 솔직한 크리틱으로 바꿔 줍니다. "왜 그렇게 추천해?"라고 물으면 그 조언의 근거가 된 원칙과 공개 출처까지 보여 줍니다.

민희진 및 ooak records(주식회사 오케이)와 무관하며 승인받지 않은 독립 연구입니다. 본인을 흉내 내거나 본인의 의견·말투·스타일을 만들어내지 않습니다.

이렇게 일해요 (4단계)

  1. 정리하기: 진짜 문제가 무엇인지 찾고, "트렌디하게", "프리미엄하게" 같은 막연한 말을 구체적으로 바꿉니다.

  2. 만들기: 당신의 재료에서 나온 기억에 남는 아이디어 하나를 제안하고, 그게 제품·런칭·문구·비주얼에 어떻게 나타나는지 보여 줍니다.

  3. 덜어내기: 그 아이디어에 도움이 안 되는 것을 뺍니다.

  4. 실행하기: 먼저 할 것, 나중에 할 것, 하지 말 것을 정리해 줍니다.

가장 쉬운 방법: 링크만 붙여 넣기 (설치 없음)

웹 링크를 열 수 있는 AI라면 어디서든 돼요(검색이 켜진 ChatGPT, 웹 접근이 되는 Claude, Gemini 등). 채팅창에 아래 문장을 붙여 넣고, 이어서 내 프로젝트를 설명하세요.

이 페이지를 읽고, 그 방법대로 내 프로젝트를 도와줘: https://raw.githubusercontent.com/club-paradiso/always-okay-mcp/master/ALWAYS-OKAY.md

방법 전체가 한 페이지에 들어 있어서 링크 하나로 충분해요. 다만 서버 연결보다는 기능이 적어요. 원칙마다 근거 출처를 찾아보는 기능은 없고, 웹 접근이 꺼져 있으면 링크를 열지 못해요. 그럴 때는 ALWAYS-OKAY.md 파일을 내려받아 채팅에 첨부하세요. 모든 기능을 쓰려면 아래처럼 연결하세요.

모든 기능 쓰기: 서버 연결 (준비물은 주소 하나)

https://always-okay-mcp.onrender.com/mcp

ChatGPT에서 쓰기

커스텀 커넥터(개발자 모드)를 쓸 수 있는 유료 플랜이 필요합니다.

  1. ChatGPT → 설정 → 앱 및 커넥터(Apps & Connectors) → 고급 설정 → 개발자 모드 켜기

  2. 앱 및 커넥터 화면에서 만들기(Create) 누르기

  3. 다음처럼 입력:

    • 이름: always-okay

    • MCP 서버 URL: https://always-okay-mcp.onrender.com/mcp

    • 인증: 인증 없음(No authentication) ← 꼭 이걸로!

  4. "이 애플리케이션을 신뢰합니다"에 체크하고 만들기

  5. 새 채팅을 열고 입력창의 + 메뉴에서 always-okay를 선택한 뒤 요청을 입력

Claude에서 쓰기 (웹·데스크톱 앱)

  1. 설정 → 커넥터(Connectors) → 사용자 지정 커넥터 추가

  2. 이름: always-okay · URL: https://always-okay-mcp.onrender.com/mcp → 추가

  3. 새 채팅에서 도구 메뉴에 always-okay가 켜져 있는지 확인하고 요청 입력

처음 해볼 만한 요청

  • "always-okay로 도와줘. 망원동에서 작은 빵집을 하는데 사워도우 라인을 새로 내. 크리에이티브 디렉션과 런칭 계획을 짜줘."

  • "always-okay로 우리 앱 이름 후보 5개와 추천 이유를 줘. 동네 공구 대여 앱이야."

  • "always-okay로 이 랜딩 페이지 문구를 솔직하게 크리틱해줘: …(문구 붙여넣기)…"

  • "왜 그렇게 추천했어? 근거를 보여줘."

잘 안 될 때

이런 메시지가 보이면

이유

해결

"Couldn't discover OAuth settings"

커넥터를 만들 때 인증을 OAuth로 골랐어요. always-okay는 로그인이 없습니다.

인증: 인증 없음으로 다시 만드세요.

연결이 오래 걸리거나 시간 초과

무료 서버가 쉬고 있다가 깨어나는 데 약 30초가 걸려요.

잠시 뒤 다시 시도하세요.

ChatGPT에 "만들기"나 "개발자 모드"가 안 보임

지금 플랜이나 워크스페이스에서 커스텀 커넥터를 쓸 수 없어요.

Claude에서 쓰거나, 커스텀 커넥터가 되는 플랜을 이용하세요.

답은 하는데 always-okay를 안 씀

그 채팅에서 커넥터가 꺼져 있어요.

새 채팅에서 + 또는 도구 메뉴로 켜거나, "always-okay를 써줘"라고 말하세요.

AI가 링크를 열 수 없다고 함

그 채팅이나 앱에서 웹 접근이 꺼져 있어요.

검색·웹 접근을 켜거나, ALWAYS-OKAY.md를 내려받아 파일로 첨부하세요.

"Rate limit exceeded"

같은 네트워크에서 1분에 120번 넘게 요청했어요.

1분 뒤 다시 시도하세요.

Available Tools

10 tools
check_draftA
Read-onlyIdempotent

Deterministic lint for a creative draft (no model call): flags declared quality/benefit words, buzzword filler, template phrasing, borrowed aesthetic tropes and any wording that speaks as or for Min Hee-jin. Reports only; never edits. Works for Korean and English.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so safety is covered. The description adds genuinely useful traits beyond them: it is deterministic with no model call (predictable, no LLM cost), it 'Reports only; never edits', and it supports both Korean and English. These are non-obvious behavioral facts worth stating.

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?

Core purpose is front-loaded in the first clause, followed by a tight enumeration and two short constraint sentences. Slightly dense in the middle list, but every sentence carries information and there is no filler.

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?

With no output schema, the description must convey the nature of the result, and it does: it reports findings and never edits, and it names the categories it detects. It could say more about the report's shape, but for a single-parameter read-only lint the coverage is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there is a single required 'text' parameter, so the description must carry the semantics. It characterizes the input as a 'creative draft', which clarifies content type, but says nothing about length, format, or constraints. Baseline 3 for compensating only partially on one obvious parameter.

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?

States a specific verb (lint/check) and resource (creative draft) and enumerates exactly what it flags: quality/benefit words, buzzword filler, template phrasing, aesthetic tropes, and impersonation of a named person. No sibling tool does linting, so it is clearly differentiated from the retrieval-oriented siblings (get_framework, search, trace, etc.).

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

Usage Guidelines3/5

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

The phrase 'no model call' implies when to prefer this over a model-based review (cheap, deterministic pass), which is implicit usage guidance. However there is no explicit when-to-use/when-not statement and no named alternative or workflow context, so the agent must infer the trigger condition.

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

fetchA
Read-onlyIdempotent

Fetch the full text of one always-okay document by the id returned from search (e.g. 'principle:P08', 'note:MHJ-EV-00412', 'checklist:launch').

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only that the response is the document's full text; it says nothing about behavior for unknown/foreign ids or size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the action and return payload, with examples folded in parenthetically. No wasted clauses.

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?

With no output schema, the description still tells the agent what comes back (full text of one document), and the annotation set covers the safety semantics for a single-param read tool. Adequate for such a simple signature.

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?

Schema description coverage is 0% and the lone `id` param is untyped beyond string, so the description carries the burden and does so well by giving the id's source (search results) and three concrete format examples with namespace prefixes. It stops short of a general format rule for other prefixes.

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?

Specific verb (Fetch) plus a precisely scoped resource: the full text of exactly one document, keyed by id. The examples of id prefixes ('principle:P08', 'note:MHJ-EV-00412', 'checklist:launch') distinguish it from the specialized getters (get_principle, get_checklist) that clearly do not take ids.

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?

States the prerequisite workflow explicitly: the id must come from `search`, naming a concrete sibling tool as the entry point. It does not spell out when to prefer a specific getter (get_principle/get_checklist) over fetch, so it stops short of full when/when-not guidance.

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

get_checklistB
Read-onlyIdempotent

Return a working checklist as text: 'brief' (brief interrogation), 'concept', 'signature' (signature device test), 'edit' (critique pass), 'launch', 'briefing' (briefing a specialist), 'conventions', 'taste', 'language' (copy rules KO/EN) or 'limits'.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNobrief

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is fully covered. The description adds that the return is plain text rather than structured data, which is mild context, but says nothing about size, caching, or how the checklist should be applied.

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?

A single front-loaded sentence: purpose first, then the value enumeration. Dense but with no filler. Slightly weakened by the appositive-heavy enumeration that would read better as a structured list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The remaining gap is usage routing — for a tool sharing a namespace with get_framework, get_principle, and get_mode, the description gives no basis for choosing between them.

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?

Schema description coverage is 0% and there is no enum, so the description carries the full burden of parameter semantics — and it does, enumerating all ten accepted 'kind' values with parenthetical explanations. The text is in quotes so values are usable verbatim; the gap is that 'concept', 'launch', 'conventions', 'taste', and 'limits' are listed without any gloss and it never states the values are exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Return a working checklist as text') and enumerates the kinds available. However, it never distinguishes this from siblings like get_framework, get_principle, or get_mode, leaving the agent to guess which retrieval tool applies.

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

Usage Guidelines2/5

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

No when-to-use guidance, no conditions, and no named alternatives. The agent must infer from the kind labels alone that this is the right tool versus get_framework or get_principle. Some glosses ('brief interrogation', 'critique pass') hint at intent but are not routing instructions.

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

get_frameworkA
Read-onlyIdempotent

Overview of the lens: the Frame → Make → Edit → Deliver loop, the eight stages and every principle's id, title, status and evidence support. Call first when starting creative work.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's burden is lower. It adds useful output context by listing what the overview contains, though it does not detail response format or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no waste. The content overview is front-loaded, followed by the usage instruction, making the description easy to scan and act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple read-only, parameterless nature of the tool and the absence of an output schema, the description is complete enough: it explains what the overview returns and when to call it. No critical behavioral or usage information is missing.

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 tool takes zero parameters, so there is nothing for the description to clarify. The baseline for a parameterless tool is 4, and the description does not need to compensate for any schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's scope: an overview of the lens, the Frame → Make → Edit → Deliver loop, eight stages, and every principle's id, title, status, and evidence support. This differentiates it from get_principle by covering all principles at once, though it does not explicitly name sibling tools for contrast.

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?

It gives a clear usage cue: 'Call first when starting creative work.' This establishes when to use it relative to other tools, but it does not state when not to use it or explicitly name alternatives such as get_principle.

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

get_modeB
Read-onlyIdempotent

Working mode guide. Modes: STRATEGIST, CREATIVE DIRECTOR, PRODUCT, BRAND ARCHITECT, COPY / EDITOR, CRITIC, EXECUTIVE, LAUNCH DIRECTOR, REFERENCE CURATOR, FULL DIRECTOR. Empty = list all.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo

TDQS

B3.1/5.0
Behavior3/5

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

The annotations already declare this as read-only, idempotent, non-destructive, and not open-world, so the safety profile is covered. The description adds the list of valid modes and the empty-input behavior, but says nothing about return shape or content of a mode guide.

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 very concise and front-loads the tool's topic before listing modes and the empty-value behavior. The long mode list is necessary, and no sentence is wasted, though the opening phrase could be slightly more informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only lookup with no output schema, the description gives enough to invoke the tool with a valid mode or empty value. However, it does not explain what kind of content a mode guide returns or how this tool relates to sibling retrieval tools, leaving selection ambiguity.

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?

Schema description coverage is 0%, so the description must carry parameter meaning. It usefully enumerates all valid mode values and explains that an empty value lists all modes, compensating well for the missing schema documentation, though it does not specify case sensitivity or exact matching rules.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Working mode guide' and lists possible mode names, but it does not clearly state what the tool retrieves or how a 'guide' differs from sibling tools like get_framework or get_principle. The purpose is inferable but vague and lacks a specific verb+resource framing.

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

Usage Guidelines2/5

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

There is no guidance on when to use get_mode versus the many sibling retrieval tools. The only usage note is 'Empty = list all,' which explains parameter behavior rather than tool selection.

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

get_principleA
Read-onlyIdempotent

Full text of one principle (e.g. 'P08'): the rule, its limits, what it guards against, known tensions, evidence support and the claim IDs behind it.

ParametersJSON Schema
NameRequiredDescriptionDefault
principle_idYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description adds valuable content-shape context: what the returned text contains (rule, limits, guards against, tensions, evidence support, claim IDs). It doesn't discuss behavior like auth, rate limits, or behavior on unknown IDs, but the content disclosure is a genuine addition.

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?

One front-loaded sentence with a parenthetical example, no waste. The list of returned fields is dense but earns its place by signaling the response's richness. Slightly heavy for a one-liner, but structure is clear.

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?

For a single-parameter read tool with no output schema, the description tells the agent what it gets back and how to identify the item. Annotations cover the safety profile. The main gap is guidance on how to obtain a valid principle_id, which the agent must infer from siblings.

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?

Schema coverage is 0% and the single parameter is undocumented in the schema. The description compensates by implying the format ('e.g. P08'), telling the agent what an identifier looks like. It stops short of stating the full accepted format or error behavior for invalid IDs, so not a 5.

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?

Specific verb ('Full text of one principle') plus resource and an example identifier ('P08'). It makes clear this is a single-item retrieval distinct from siblings like get_framework (whole framework), list_tensions, or search_evidence.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to guidance. The example 'P08' hints at the ID format but never states that a principle ID must be known beforehand or that search/framework should be used first to discover IDs. Context is implied at best.

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

list_tensionsA
Read-onlyIdempotent

Documented tensions, contradictions and myths the lens keeps open (e.g. retro rejected as a target vs a nostalgic record; creative–management integration vs 'not universal'). Pass a principle id to get only its tensions, or a text query.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
principle_idNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnly=true, idempotent=true, destructive=false, and openWorld=false, covering safety and behavior. The description adds context about the kind of content returned (tensions, contradictions, myths) and the dual filtering modes. No return format, pagination, or error behavior is described, but annotations carry the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first states the content type with examples, the second describes parameter usage. Front-loaded with the core purpose and no wasted words.

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?

Given no output schema and sparse annotations, the description covers what the tool returns (tensions, contradictions, myths) and how to filter. It's nearly complete, missing only minor details like what happens when no parameters are passed (apparently returns all tensions).

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?

Schema coverage is 0%, so the description must compensate. It explains the effect of principle_id (filter to one principle's tensions) and query (text search), giving semantic meaning beyond the parameter names. It doesn't specify format or default behavior (both default to empty string), but the usage is clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb+resource: it lists documented tensions, contradictions, and myths associated with a lens. The examples help clarify the domain. However, it doesn't explicitly differentiate from siblings like get_principle or search_evidence, though the resource is distinct enough.

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?

It gives clear guidance on how to use parameters: pass a principle id to filter to that principle's tensions, or pass a text query. No explicit when-not-to-use or alternative tool references, but the parameter behavior is well indicated.

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

search_evidenceA
Read-onlyIdempotent

Search the evidence notes (paraphrased statements with source and locator). Filter by free text, optional domain (e.g. 'launch', 'brand', 'collaboration'), optional era (E0–E8 or 'cross'). Use to answer 'what is the evidence for…'. Returns at most limit notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
eraNo
limitNo
queryNo
domainNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description still adds real value beyond that: it discloses the result cap ('at most `limit` notes') and explains what the returned records actually contain (paraphrased statements with source and locator).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with what is being searched, then filters, then intended use, then return behavior. No filler or restated boilerplate.

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?

With no output schema, the description should sketch the return shape, and it does note that hits are notes with source and locator and that results are capped. Missing only minor details like default limit, ordering, or whether an empty query returns everything.

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?

Schema description coverage is 0% and the schema has no enums, so the description must carry the burden – and it does: free-text `query`, example domains ('launch', 'brand', 'collaboration'), and the era vocabulary (E0–E8 or 'cross'). Only `limit`'s default of 10 is left to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('search the evidence notes') and even characterizes the resource as 'paraphrased statements with source and locator,' which an agent can't get from the schema. It doesn't explicitly distinguish itself from the sibling `search` tool, but the corpus is named precisely enough to be actionable.

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?

Gives an explicit intended use ('Use to answer "what is the evidence for…"') and enumerates the filtering dimensions, which is clear context for when to reach for it. It stops short of stating when not to use it or when to prefer the generic `search` sibling.

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

traceA
Read-onlyIdempotent

Trace a principle (P##) or claim (MHJ-CL-###) down to its evidence notes and public sources. Use when the user asks why a recommendation holds or where it comes from.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, closed-world). The description adds real behavioral context beyond them: it discloses that the tool resolves downward to evidence notes and public sources, i.e. it performs provenance traversal rather than a flat lookup. It stops short of describing depth, limits, or output shape, so it is not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler. The what-it-does sentence leads and the when-to-use sentence follows, so the purpose is front-loaded.

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?

For a single-parameter read-only lookup with no output schema, the description supplies the input format and the nature of the returned material (evidence notes, public sources). What is missing is any sense of result granularity or pagination, but nothing essential to correct invocation is absent.

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?

Schema coverage is 0% and item_id has no description in the schema, so the description carries the full burden. It compensates well by specifying the accepted ID formats (P## for principles, MHJ-CL-### for claims), which is precisely the semantic an agent needs to form a valid argument.

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?

Specific verb ('Trace') plus the exact resources it operates on ('a principle (P##) or claim (MHJ-CL-###)') and their target ('evidence notes and public sources'). This clearly distinguishes it from siblings like get_principle and search_evidence, which retrieve rather than resolve provenance.

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?

Gives an explicit trigger: 'Use when the user asks why a recommendation holds or where it comes from.' That is a clear use context, but it does not contrast against alternatives such as get_principle or search_evidence, which an agent might otherwise reach for first.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv0.1.0
    • First observedcheck_draft
    • First observedfetch
    • First observedget_checklist
    • First observedget_framework
    • First observedget_mode
    • First observedget_principle
    • First observedlist_tensions
    • First observedsearch
    • First observedsearch_evidence
    • First observedtrace

TDQS

A3.8/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have clearly distinct roles: get_framework, get_principle, list_tensions, get_mode, get_checklist, and check_draft target different artifacts. Some overlap exists between search/search_evidence/trace and between fetch and the specific get_* tools, but the descriptions provide enough workflow guidance to avoid most misselection.

Naming Consistency4/5

The names use consistent snake_case, and get_* is applied predictably to direct resource retrievals. A few tools are bare verbs (trace, search, fetch), which is a minor deviation but still readable and coherent.

Tool Count5/5

Ten tools is well-scoped for a creative-direction knowledge base with principles, evidence, tensions, modes, checklists, and draft linting. Each tool appears to earn its place without obvious redundancy.

Completeness4/5

The surface covers the core lifecycle: overview, principle detail, evidence search and tracing, tensions, mode guides, checklists, draft linting, and generic search/fetch. Minor gaps exist, such as no explicit enumerate-all command for checklists, but they are workable through search or known checklist names.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Provides deterministic design style recommendations and structured tokens for AI content generation, with 30 curated styles including color palettes, typography, and visual directives.
    2
    24 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A memory-backed brand generation runtime for agent-led creative iteration. Enables AI agents to plan, generate, review, and improve brand materials with persistent brand memory and structured workflows.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to design and critique websites using 2026 trend reports, motion code recipes, design principles, palettes, type systems, section skeletons, references, and DESIGN.md tokens, with performance and reduced-motion handling built in.
    9
    1
    MIT