nowork-studio/NotFair
요약
NotFair는 Claude Code 및 AI 에이전트가 Google Ads, Meta Ads, SEO 데이터를 직접 분석하고 수정할 수 있게 돕는 오픈 소스 플러그인입니다. 데이터 기반의 광고비 최적화와 SEO 개선 작업을 CLI 환경에서 자동화할 수 있습니다.
핵심 포인트
- Claude Code 내에서 Google/Meta 광고 및 SEO 데이터 직접 분석 가능
- 광고비 낭비 진단 및 메타 태그/헤딩 등 SEO 요소 자동 수정 지원
- MCP 서버 기반의 간편한 인증 및 OS 키체인 보안 저장
- CLI 명령어(/notfair:*)를 통한 쉽고 빠른 데이터 감사 및 주간 검토
NotFair에서 제공하는 공식 Google & Meta Ads + SEO 플러그인입니다. 대시보드가 아닌 데이터 기반의 의사결정을 내리세요.
NotFair는 귀하의 AI 에이전트(AI agent)가 Google Search Console, Google Ads, 그리고 Meta Ads (Facebook + Instagram)에 직접 접근할 수 있도록 합니다. 이 도구는 트래픽을 분석하고, 순위에 악영향을 미치는 요소를 드러내며, 낭비되는 광고비를 찾아내고, 소재 피로도(creative fatigue) 및 타겟 오디언스 포화 상태(audience saturation)를 진단하여 무엇을 수정해야 하는지 정확히 알려줍니다. 리포지토리(repo)에 대한 접근 권한이 있으면 더 나아가 메타 태그(meta tags) 재작성, 헤딩(headings) 수정, 구조화된 데이터(structured data) 추가 및 변경 사항 적용까지 수행합니다.
NotFair 플러그인은 CLI 측면, 즉 Claude Code(및 기타 AI 에이전트 호스트) 내부에서 실행되는 기술(skills)입니다. notfair.co는 동반 웹 앱(companion web app)입니다. 한 번만 로그인하여 Google Ads 및 Meta Ads 계정을 연결하면 브라우저 UI를 통해 감사를 수행할 수 있습니다. 양측은 동일한 엔진을 공유하므로, CLI에서 실행하는 감사(audit)는 웹에서 실행하는 것과 동일한 툴링(tooling)을 사용합니다.
"지금 광고비를 낭비하고 있는 건 아닐까?" "왜 트래픽이 떨어졌으며 어떻게 해결해야 할까?" "비용을 더 쓰지 않고 어떻게 더 많은 전환(conversions)을 얻을 수 있을까?"
무료이며 오픈 소스(open-source)입니다. 30초 안에 설치할 수 있습니다.
사용자: /notfair:google-ads-audit
Claude: 귀하의 Google Ads 계정(MyStore)에 연결되었습니다.
3개의 캠페인이 활성화되어 있습니다. 이번 달에 $2,400를 지출했습니다.
...
주간 검토(Weekly review) — 언제든 질문하거나 반복적인 Coworker 작업으로 설정할 수 있습니다:
사용자: /notfair:google-ads — "지난주 변경 사항을 검토해줘"
Claude: 지난 7일 동안 12개의 변경 사항이 있었습니다. 9개는 판단하기에 충분히 성숙했습니다.
성과 (4):
...
사용자: /notfair:seo-analysis
Claude: mystore.com에서 사이트를 찾았습니다 — 현재 Search Console 데이터를 가져오는 중입니다.
[90일간의 실제 트래픽 데이터 로드됨]
...
NotFair는 Claude Code 플러그인입니다. 한 번의 설정으로 자동 업데이트가 이루어집니다.
Claude Code에서 다음 두 명령어를 실행하세요:
/plugin marketplace add nowork-studio/notfair
/plugin install notfair@nowork-studio
끝입니다. 이제 모든 기술을 /notfair:* 명령어로 사용할 수 있습니다.
Google Ads + Meta Ads (선택 사항): Claude Code가 NotFair MCP 서버(NotFair-GoogleAds) 중 하나에 처음 연결할 때...
or NotFair-MetaAds
), 브라우저 탭이 열리며 notfair.co에 로그인할 것을 요청합니다 — 플랫폼당 한 번만 승인하면 토큰이 OS 키체인(keychain)에 저장됩니다. 복사할 API 키도 필요 없고, 설치해야 할 mcp-remote 브릿지도 없습니다.
settings.json을 직접 편집하는 것을 선호하시나요?
~/.claude/settings.json에 마켓플레이스를 추가하고 플러그인을 활성화하세요:
{
"extraKnownMarketplaces": {
"nowork-studio": {
...
플러그인은 v0.24.0에서 toprank에서 notfair로 이름이 변경되었습니다. 이전에 toprank@nowork-studio로 설치했다면, 기존 항목을 제거하고 새 항목을 설치하세요:
/plugin uninstall toprank@nowork-studio
/plugin marketplace add nowork-studio/notfair
/plugin install notfair@nowork-studio
데이터는 보존됩니다 — 런타임 상태 디렉토리(~/.toprank/, 포트폴리오 상태, 변경 로그, 비즈니스 컨텍스트 캐시, 감사 이력 포함)는 이번 릴리스에서 의도적으로 원래 이름 그대로 유지됩니다. 자세한 내용은 CHANGELOG.md를 참조하세요.
| 기술 (Skill) | 기능 |
|---|---|
google-ads-audit | 계정 감사(audit) + 비즈니스 컨텍스트 설정. 이를 가장 먼저 실행하세요. 7가지 건강 지표를 점수화하고, 낭비되는 비용을 식별하며, 비즈니스 프로필을 구축합니다. |
google-ads | 캠페인 관리. 성과를 읽고, 키워드를 최적화하며, 입찰가/예산을 조정하고, 제외 키워드를 추가하며, 캠페인을 생성합니다. 주간 검토를 요청하면 Claude가 모든 최근 변경 사항(성공, 실패, 판단하기에 너무 최신인 항목)을 점수화합니다 — 월요일 아침의 동료(Coworker) 작업으로 완벽합니다. |
google-ads-copy | RSA 카피 생성기 + A/B 테스트. 글자 수 및 고정(pin) 위치가 포함된 데이터 기반의 헤드라인과 설명(description)을 생성합니다. |
google-ads-landing | 랜딩 페이지 감사(audit). 품질 점수(Quality Score)를 높이기 위해 키워드, 광고, 랜딩 페이지 콘텐츠 간의 관련성을 분석합니다. |
| 스킬 (Skill) | 기능 (What it does) |
|---|---|
meta-ads-audit | 계정 감사 (Account audit) + 비즈니스 컨텍스트 설정. 가장 먼저 실행하십시오. Meta에 최적화된 7가지 건강 지표(Pixel + CAPI 상태, 기여도 (Attribution), 캠페인 구조, 소재 건강도 (Creative Health), 타겟팅 전략, 지출 효율성, 확장 준비도)를 점수화하며, 후속 스킬을 위해 소재 인벤토리 및 페르소나 데이터를 유지합니다. |
meta-ads | 캠페인 관리. ROAS 분석, 빈도 우선 분류 (frequency-first triage), 소재 피로도 진단, 학습 단계 (Learning Phase) / 학습 제한 (Learning Limited) 분류, 타겟 중복, CBO/ABO/Advantage+ Shopping 구조 분석. 변경 사항 (Mutations)은 전용 도구(pause*, enable*, updateAdSetBudget, updateCampaignBudget, renameCampaign)를 통해 처리됩니다. 해당 범위를 벗어나는 작업은 임의로 수행하는 대신 사용자를 Meta 광고 관리자 (Meta Ads Manager)로 안내합니다. |
| 스킬 (Skill) | 기능 (What it does) |
|---|---|
seo-analysis | GSC (Google Search Console) 데이터를 활용한 전체 SEO 감사. 즉각적인 개선 사항 (Quick wins), 트래픽 하락, 기술적 문제, 30일 실행 계획을 제공합니다. |
content-writer | E-E-A-T 가이드라인을 준수하는 SEO 콘텐츠 생성. 블로그 포스트, 랜딩 페이지, 콘텐츠 개선 작업을 수행합니다. |
keyword-research | 키워드 발굴, 의도 분류 (intent classification), 토픽 클러스터 (topic clusters), 우선순위가 지정된 콘텐츠 캘린더를 생성합니다. |
meta-tags-optimizer | A/B 변형 및 클릭률 (CTR) 추정치를 포함한 타이틀 태그, 메타 설명 (meta descriptions), OG/Twitter 카드를 최적화합니다. |
schema-markup-generator | 리치 결과 (rich results)를 위한 JSON-LD 구조화 데이터 생성. FAQ, HowTo, Article, Product, LocalBusiness 형식을 지원합니다. |
seo-page | 단일 페이지 심층 분석. 특정 URL의 콘텐츠 품질, 구조 및 키워드 최적화에 대한 집중적인 감사를 수행합니다. |
broken-link-checker | 웹사이트를 스캔하여 깨진 내부 및 외부 링크 (404/5xx 에러)를 찾아 보고합니다. |
geo-optimizer | AI 검색 엔진을 위한 생성 엔진 최적화 (GEO, Generative Engine Optimization). 0~100점 사이의 GEO 점수로 콘텐츠를 감사하고, AI 인용을 위해 재작성하며, ChatGPT, Claude, Perplexity, Gemini 및 Google AI Overviews를 위한 엔진별 전략을 생성합니다. |
setup-cms | 자동화된 SEO 필드 감사를 위해 WordPress, Strapi, Contentful 또는 Ghost를 연결합니다. |
| 기술 (Skill) | 기능 |
|---|---|
gemini | |
| Google Gemini의 제2의 의견 (Second opinion). 검토 (pass/fail 게이트), 도전 (적대적 스트레스 테스트, adversarial stress test), 또는 상담 (자유로운 질의응답, open Q&A). 특히 Google Ads 및 SEO 결정에 강력함 — Gemini는 Google 생태계에 대한 네이티브 지식을 보유하고 있음. |
모든 기술은 네임스페이스 (namespaced) 처리됩니다: /notfair:google-ads
, /notfair:seo-analysis
, /notfair:gemini
등.
NotFair는 Claude Code 플러그인입니다. 각 기술은 지원 문서, 스크립트 및 평가 테스트 (eval tests)가 포함된 SKILL.md 파일입니다.
notfair/
├── .claude-plugin/
│ ├── plugin.json <- 플러그인 메타데이터 (명시적 기술 경로)
...
Google Ads 및 Meta Ads 인터페이스는 독립적인 원격 MCP 서버로 사용할 수 있습니다. NotFair CLI 플러그인을 설치하지 않고도 모든 MCP 클라이언트 (Claude Desktop, Cursor, Inspector, 사용자 정의 에이전트)에서 둘 중 하나를 사용할 수 있습니다.
레지스트리 이름 (Registry name): io.github.nowork-studio/notfair
(확인: curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=notfair" )
엔드포인트 (Endpoint): https://notfair.co/api/mcp/google_ads
(스트리밍 가능한 HTTP)
인증 (Auth): 동적 클라이언트 등록 (dynamic client registration)을 포함한 OAuth 2.1 — 처음 사용 시 MCP 클라이언트가 브라우저 탭을 열어 notfair.co에서 로그인하며, 토큰은 로컬에 저장됩니다 (Claude Code의 OS 키체인).
읽기 (성과, 검색어, 노출 점유율, 키워드 아이디어, GAQL), 쓰기 (일시중지/활성화, 입찰가 및 예산 업데이트, 키워드 및 제외 목록 관리, 캠페인 생성)에 걸쳐 약 100개의 Google Ads 도구를 노출하며, 개방형 분석 질문을 위해 최대 20개의 GAQL 쿼리를 병렬로 실행하는 runScript 도구를 제공합니다.
엔드포인트 (Endpoint): https://notfair.co/api/mcp/meta_ads
(스트리밍 가능한 HTTP)
인증 (Auth): NotFair-GoogleAds와 동일한 OAuth 2.1 흐름 — 플랫폼당 한 번 notfair.co에 로그인하며, 토큰은 독립적입니다.
집중된 Meta 마케팅 API 도구 세트를 노출합니다: 읽기 (캠페인 / 광고 세트 / 광고 목록, 세부 분석을 포함한 getInsights), 쓰기 (pauseCampaign, pauseAdSet, pauseAd, enableCampaign, enableAdSet, enableAd, updateCampaignBudget)
, updateAdSetBudget
, renameCampaign
), suggestImprovement
(서버 측 휴리스틱(heuristic) 권장 사항용), 그리고 ads.graph(path, params)를 사용하는 runScript 샌드박스(sandbox),
, ads.graphParallel([calls]) (최대 20개의 Graph API 호출을 병렬로 수행), ads.insights(...),
, 그리고 분석적 팬아웃(analytical fan-out)을 위한 ads.batch([requests])가 있습니다.
Meta 서버의 뮤테이션(mutation) 표면은 의도적으로 좁게 설계되었습니다. 즉, 프로그래밍 방식의 캠페인 생성(create-campaign), 타겟팅(audience) 편집, 크리에이티브 업로드 기능이 없습니다. /notfair:meta-ads 스킬은 이 점을 명시적으로 밝히고 있으며, 해당 작업들을 Meta Ads Manager로 라우팅(route)합니다.
NotFair 스킬은 ~~category 플레이스홀더(placeholder) 패턴을 사용하여 외부 도구를 참조합니다. 이를 통해 스킬은 도구에 구애받지 않게(tool-agnostic) 됩니다. 즉, 필요한 기능을 제공하는 어떤 MCP 서버와도 작동할 수 있습니다.
| 카테고리 | 플레이스홀더 | 기본 서버 | 대안 |
|---|---|---|---|
| Google Ads | ~~google-ads | NotFair-GoogleAds MCP (명칭 변경 기간 동안 레거시 mcp__notfair__*가 여전히 감지됨) | Google Ads MCP (mcp__google_ads_mcp__* ) |
| Meta Ads | ~~meta-ads | NotFair-MetaAds MCP | 모든 Meta Marketing API MCP (mcp__.*meta.*ads__* ) |
| Search Console | ~~search-console | gcloud CLI + Search Console API | 모든 GSC 호환 MCP 서버 |
| CMS | ~~cms | 직접 API (WordPress REST, Strapi, Contentful, Ghost) | 모든 CMS MCP 서버 |
스킬은 사용 가능한 도구에 따라 조건부 블록(conditional blocks)을 사용합니다. 커넥터(connector)를 사용할 수 없는 경우, 스킬은 유연하게 성능을 낮추어(gracefully degrades) 작동합니다. 예를 들어, seo-analysis는 GSC 데이터 없이도 기술적 크롤링(technical crawl)을 수행할 수 있습니다.
설정(Setup):
Google Ads: google-ads/shared/preamble.md를 참조하세요. .mcp.json은 https://notfair.co/api/mcp/google_ads를 네이티브 HTTP MCP 서버로 등록합니다. 처음 연결할 때 Claude Code는 notfair.co에 대한 OAuth 로그인을 위해 브라우저를 열고 토큰을 OS 키체인(keychain)에 저장합니다. 환경 변수나 브릿지 서브프로세스(bridge subprocess)가 필요하지 않습니다. Meta Ads: meta-ads/shared/preamble.md를 참조하세요. .mcp.json은 https://notfair.co/api/mcp/meta_ads를
네이티브 HTTP MCP 서버로 사용합니다. OAuth 로그인 (OAuth sign-in)은 Google Ads와 독립적입니다 (플랫폼당 한 번만 로그인하면 됩니다). Skills는 .notfair.json 파일 내의 metaAccountId 필드에서 광고 계정을 확인합니다 (Google Ads를 위한 accountId와 함께 사용되며, 동일한 설정 파일을 사용하므로 중복 프롬프트가 발생하지 않습니다).Search Console: seo/shared/preamble.md를 참조하세요. Google Cloud SDK, Search Console API 활성화 및 OAuth 로그인이 필요합니다.CMS: /notfair:setup-cms를 실행하여 WordPress, Strapi, Contentful 또는 Ghost를 설정하세요.
각 skill은 카테고리 디렉토리 아래의 개별 폴더에 위치합니다:
seo/ <- SEO skills가 여기에 위치합니다
└── your-skill-name/
├── SKILL.md <- 필수
...
SKILL.md에는 name과 description이 포함된 frontmatter 헤더가 필요하며, 그 다음에는 명령형(imperative)으로 작성된 단계별 지침이 있어야 합니다.
Scripts: Python 3.8+ 표준 라이브러리(stdlib)만 사용합니다 (또는 requests 사용 가능). 파일 출력을 위해 --output 옵션을 허용합니다. 진행 상황은 stderr로, 데이터는 stdout으로 출력합니다.
Pull requests: PR 하나당 하나의 skill만 포함하세요. 제출하기 전에 skill을 테스트하세요. VERSION을 올리고 CHANGELOG.md를 업데이트하세요.
질문이 있으신가요? Issue를 생성해 주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기