VOOZH about

URL: https://glama.ai/mcp/servers/Contentrain/ai?locale=ko-KR

โ‡ฑ Contentrain MCP by Contentrain | Glama


Contentrain AI

๐Ÿ‘ npm: @contentrain/mcp
๐Ÿ‘ npm: contentrain
๐Ÿ‘ npm: @contentrain/query
๐Ÿ‘ Agent Skills
๐Ÿ‘ Docs
๐Ÿ‘ License: MIT

์›น์‚ฌ์ดํŠธ ยท ๋ฌธ์„œ ยท Discord ยท Twitter ยท LinkedIn

์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ๊ตฌ์กฐํ™”๋œ ์ฝ˜ํ…์ธ ๋ฅผ ์ถ”์ถœ, ๊ด€๋ฆฌ ๋ฐ ๋ฐฐํฌํ•˜์„ธ์š”.

Contentrain์€ ํŒ€์ด ํ•˜๋“œ์ฝ”๋”ฉ๋œ UI ํ…์ŠคํŠธ, ๋ฌธ์„œ ๋ฐ ๊ตฌ์กฐํ™”๋œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฒ€ํ†  ๊ฐ€๋Šฅํ•œ ์ฝ˜ํ…์ธ  ๊ณ„์ธต์œผ๋กœ ์ „ํ™˜ํ•˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. AI ์—์ด์ „ํŠธ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ถ”์ถœ, ์ƒ์„ฑ, ๋ฒˆ์—ญ ๋ฐ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Contentrain์€ ์Šคํ‚ค๋งˆ, Git ๊ฒ€ํ†  ๋ฐ ์ด์‹ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ ์ถœ๋ ฅ์„ ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.

Agent extracts or updates content โ†’ Contentrain standardizes โ†’ Human reviews โ†’ Any platform consumes

30์ดˆ ๋งŒ์— ์‹œ์ž‘ํ•˜๊ธฐ

npx contentrain init # create .contentrain/ workspace
npx contentrain serve # open the local review UI

์ด์ œ ๋ชจ๋ธ, ๊ฒ€์ฆ, ๊ฒ€ํ†  ๋ธŒ๋žœ์น˜ ๋ฐ ๋กœ์ปฌ UI๋ฅผ ๊ฐ–์ถ˜ ๊ด€๋ฆฌํ˜• ์ฝ˜ํ…์ธ  ์ž‘์—… ๊ณต๊ฐ„์ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์ •, ํด๋ผ์šฐ๋“œ, ๋…์  ์ฝ˜ํ…์ธ  ํ˜•์‹์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์‹œ์ž‘ํ•˜์„ธ์š”:

Related MCP server: scan-your-ai-toolkit

Contentrain์˜ ์šฉ๋„

  • ๊ธฐ์กด ์•ฑ์—์„œ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด์„ ๊ตฌ์กฐํ™”๋˜๊ณ  ๋ฒˆ์—ญ ๊ฐ€๋Šฅํ•œ ์ฝ˜ํ…์ธ ๋กœ ๋ณ€ํ™˜

  • ์ปดํฌ๋„ŒํŠธ ์ „๋ฐ˜์— ํ…์ŠคํŠธ๋ฅผ ํฉ๋ฟŒ๋ฆฌ๋Š” ๋Œ€์‹  ์‹ค์ œ ์ฝ˜ํ…์ธ  ๊ณ„์ธต์œผ๋กœ ์ƒˆ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘

  • Git์˜ ์ผ๋ฐ˜ JSON ๋ฐ Markdown์„ ์‚ฌ์šฉํ•˜์—ฌ ์›น, ๋ฌธ์„œ, ๋ชจ๋ฐ”์ผ ๋ฐ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ ์ „๋ฐ˜์— ๋™์ผํ•œ ์ฝ˜ํ…์ธ  ์ œ๊ณต

Contentrain์ด ์•„๋‹Œ ๊ฒƒ

  • AI ๊ธ€์“ฐ๊ธฐ ์•ฑ์ด ์•„๋‹™๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ํŒ€์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šฐ์„  ๋˜๋Š” ๋Œ€์‹œ๋ณด๋“œ ์šฐ์„  CMS ๋Œ€์ฒด์žฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

  • ์•ฑ์„ ํŠน์ • ํ”Œ๋žซํผ์— ์ข…์†์‹œํ‚ค๋Š” ๋…์  ์ฝ˜ํ…์ธ  ๋Ÿฐํƒ€์ž„์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋ชจ์Šต

์ด์ „: ์ฝ”๋“œ๋ฒ ์ด์Šค ์ „์ฒด์— ํฉ์–ด์ง„ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด โ€” ๊ตฌ์กฐ, ๋ฒˆ์—ญ, ๊ฒ€ํ† ๊ฐ€ ์—†์Œ.

export default function Hero() {
 return (
 <section>
 <h1>Welcome to our platform</h1>
 <p>Start your free trial today</p>
 <button>Get Started</button>
 </section>
 )
}

์ดํ›„: ์ฝ˜ํ…์ธ ๋Š” .contentrain/์— ์กด์žฌํ•˜๋ฉฐ, ํƒ€์ž…์ด ์ง€์ •๋˜๊ณ  ๊ตฌ์กฐํ™”๋จ. ์†Œ์Šค ํŒŒ์ผ์€ i18n ํ‚ค๋ฅผ ์‚ฌ์šฉํ•จ.

export default function Hero() {
 const t = useTranslations()
 return (
 <section>
 <h1>{t('hero.title')}</h1>
 <p>{t('hero.subtitle')}</p>
 <button>{t('hero.cta')}</button>
 </section>
 )
}
// .contentrain/content/marketing/hero/en.json
{
 "cta": "Get Started",
 "subtitle": "Start your free trial today",
 "title": "Welcome to our platform"
}

์ •๊ทœํ™” ํ๋ฆ„์€ ๋ฌธ์ž์—ด์„ ์ถ”์ถœํ•˜๊ณ , ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๋ฉฐ, ์†Œ์Šค ํŒŒ์ผ์„ ํŒจ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ณผ์ •์€ ๊ฒ€ํ†  ๊ฐ€๋Šฅํ•œ git ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ์ œํ’ˆ์œผ๋กœ ์ง„์ž…ํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค:

์ฝ”๋“œ๋ฒ ์ด์Šค์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์ฝ˜ํ…์ธ  ํ˜ผ๋ž€์„ ๊ฐ€์ ธ์™€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฒ€ํ†  ๊ฐ€๋Šฅํ•œ ์ฝ˜ํ…์ธ  ๊ณ„์ธต์œผ๋กœ ์ „ํ™˜ํ•˜์„ธ์š”.

์ž‘๋™ ๋ฐฉ์‹

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ AI Agent โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚ MCP (17 tools) โ”‚โ”€โ”€โ”€โ”€โ–ถโ”‚ .contentrain/โ”‚
โ”‚ (decides) โ”‚ โ”‚ (enforces) โ”‚ โ”‚ (stores) โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
 โ”‚
 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
 โ”‚ Review UI / Git โ”‚โ—€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
 โ”‚ (human approves)โ”‚
 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • ์—์ด์ „ํŠธ๋Š” ์–ด๋–ค ์ฝ˜ํ…์ธ ๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•˜๊ณ  ์–ด๋””์„œ ์™€์•ผ ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

  • Contentrain์€ ์Šคํ‚ค๋งˆ, ๊ฒ€์ฆ, ํ‘œ์ค€ ์ง๋ ฌํ™” ๋ฐ git ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ๋žŒ์€ ๋ธŒ๋žœ์น˜, PR ๋˜๋Š” ๋กœ์ปฌ Serve UI๋ฅผ ํ†ตํ•ด ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.

  • ์ถœ๋ ฅ์€ ๋ชจ๋“  ์–ธ์–ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์†Œ๋น„ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ๋ฐ˜ JSON + Markdown์ž…๋‹ˆ๋‹ค.

4๊ฐ€์ง€ ์ฝ˜ํ…์ธ  ์ข…๋ฅ˜

์ข…๋ฅ˜

์ €์žฅ ๋‚ด์šฉ

์ €์žฅ์†Œ

์˜ˆ์‹œ

Collection

์—ฌ๋Ÿฌ ํƒ€์ž…์˜ ํ•ญ๋ชฉ

JSON ๊ฐ์ฒด ๋งต

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ, ์ œํ’ˆ, ํŒ€

Singleton

๋กœ์ผ€์ผ๋‹น ๋‹จ์ผ ํ•ญ๋ชฉ

JSON ๊ฐ์ฒด

ํžˆ์–ด๋กœ ์„น์…˜, ์‚ฌ์ดํŠธ ์„ค์ •

Document

Markdown + ํ”„๋ก ํŠธ๋งคํ„ฐ

.md ํŒŒ์ผ

๋ฌธ์„œ, ๊ธฐ์‚ฌ, ๋ณ€๊ฒฝ ๋กœ๊ทธ

Dictionary

ํ”Œ๋žซ ํ‚ค-๊ฐ’ ๋ฌธ์ž์—ด

JSON ํ”Œ๋žซ ๋งต

i18n ๋ฒˆ์—ญ, UI ๋ผ๋ฒจ

27๊ฐ€์ง€ ํ•„๋“œ ํƒ€์ž…(๋ฌธ์ž์—ด, ์ด๋ฉ”์ผ, URL, ์ด๋ฏธ์ง€, ๊ด€๊ณ„, ๋ฐฐ์—ด, ๊ฐ์ฒด, ๋งˆํฌ๋‹ค์šด ๋“ฑ)๊ณผ ๋‚ด์žฅ ๊ฒ€์ฆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์–ด๋””์„œ๋‚˜ ์ฝ˜ํ…์ธ  ์‚ฌ์šฉ

์ฝ˜ํ…์ธ ๋Š” ์ผ๋ฐ˜ JSON ๋ฐ Markdown์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์–ธ์–ด์—์„œ ์ง์ ‘ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TypeScript ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ, ํƒ€์ž…์ด ์ง€์ •๋œ SDK๋ฅผ ์ƒ์„ฑํ•˜์„ธ์š”:

npx contentrain generate
import { query, singleton, dictionary, document } from '#contentrain'

const hero = singleton('hero').locale('en').get()
const posts = query('blog-post').locale('en').include('author').all()
const labels = dictionary('ui-labels').locale('tr').get('auth.login')
const article = document('docs').locale('en').bySlug('getting-started')

Nuxt, Next.js, Astro, SvelteKit, Vue, React, Node, Go, Python, Swift, Flutter ๋ฐ 20๊ฐœ ์ด์ƒ์˜ ์Šคํƒ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ํŒ€์ด ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • Git-native โ€” ๋ชจ๋“  ์“ฐ๊ธฐ ์ž‘์—…์€ ์ž‘์—… ํŠธ๋ฆฌ ๊ฒฉ๋ฆฌ + ๊ฒ€ํ†  ๋ธŒ๋žœ์น˜๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

  • ์ •๊ทœํ™” ํ๋ฆ„ โ€” ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด ์Šค์บ” โ†’ ์ถ”์ถœ โ†’ i18n ์ค€๋น„ ์ฝ˜ํ…์ธ  ์ƒ์„ฑ โ†’ ์†Œ์Šค ํŒŒ์ผ ํŒจ์น˜

  • MCP ์—”์ง„ โ€” stdio ๋˜๋Š” HTTP ์ „์†ก์„ ํ†ตํ•œ 17๊ฐ€์ง€ ๋„๊ตฌ, Claude Code, Cursor, Windsurf ๋˜๋Š” ๋ชจ๋“  MCP ํด๋ผ์ด์–ธํŠธ์™€ ์ž‘๋™

  • ๊ณต๊ธ‰์ž ๋…๋ฆฝ์  ์—”์ง„ โ€” ๋„๊ตฌ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์ด ๋กœ์ปฌ ์ž‘์—… ํŠธ๋ฆฌ, GitHub ๋˜๋Š” GitLab(์ž์ฒด ํ˜ธ์ŠคํŒ… ํฌํ•จ)์—์„œ ๋™์ผํ•œ ๋„๊ตฌ ์ธํ„ฐํŽ˜์ด์Šค ์‹คํ–‰. Studio์™€ ๊ฐ™์€ ์›๊ฒฉ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์œ„ํ•œ HTTP ์ „์†ก ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

  • ํ‘œ์ค€ ์ง๋ ฌํ™” โ€” ์ •๋ ฌ๋œ ํ‚ค, ๊ฒฐ์ •๋ก ์  ์ถœ๋ ฅ, ๊น”๋”ํ•œ git diff, ์ถฉ๋Œ ์—†๋Š” ๋ณ‘๋ ฌ ํŽธ์ง‘

  • ์—์ด์ „ํŠธ ๊ทœ์น™ ๋ฐ ๊ธฐ์ˆ  โ€” ํ–‰๋™ ์ •์ฑ… ๋ฐ ๋‹จ๊ณ„๋ณ„ ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ npm ํŒจํ‚ค์ง€๋กœ ์ œ๊ณต๋จ

  • Serve UI โ€” ๋ชจ๋ธ, ์ฝ˜ํ…์ธ , ๊ฒ€์ฆ ๋ฐ ์ •๊ทœํ™” ์ƒํƒœ๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋กœ์ปฌ ์›น ๋Œ€์‹œ๋ณด๋“œ

  • ํ”„๋ ˆ์ž„์›Œํฌ ๋…๋ฆฝ์  โ€” MCP๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ + ๊ธฐ์ˆ ์ด ์Šคํƒ๋ณ„ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ ๊ธฐ์ˆ 

์ด ์ €์žฅ์†Œ๋Š” 15๊ฐ€์ง€ ์—์ด์ „ํŠธ ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๊ฐ€ ํ•„์š”์— ๋”ฐ๋ผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค.

์—์ด์ „ํŠธ์— ๋ชจ๋“  ๊ธฐ์ˆ  ์„ค์น˜:

npx skills add Contentrain/ai/packages/skills

๋˜๋Š” ํŠน์ • ๊ธฐ์ˆ  ์„ค์น˜:

npx skills add Contentrain/ai/packages/skills --skill contentrain-normalize

๊ธฐ์ˆ ์€ Claude Code, Cursor, Windsurf, GitHub Copilot, OpenAI Codex, Gemini CLI ๋ฐ 40๊ฐœ ์ด์ƒ์˜ ๋‹ค๋ฅธ ์—์ด์ „ํŠธ์™€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด ๊ธฐ์ˆ  ์นดํƒˆ๋กœ๊ทธ ๋ฐ ์—์ด์ „ํŠธ ์ง€์นจ์€ AGENTS.md๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํŒจํ‚ค์ง€

ํŒจํ‚ค์ง€

npm

์—ญํ• 

@contentrain/mcp

๐Ÿ‘ npm

17๊ฐ€์ง€ MCP ๋„๊ตฌ + stdio / HTTP ์ „์†ก + ๋กœ์ปฌ / GitHub / GitLab ๊ณต๊ธ‰์ž

contentrain

๐Ÿ‘ npm

CLI + Serve UI + MCP stdio ์ง„์ž…์ 

@contentrain/query

๐Ÿ‘ npm

์ƒ์„ฑ๋œ TypeScript ์ฟผ๋ฆฌ SDK

@contentrain/types

๐Ÿ‘ npm

๊ณต์œ  ํƒ€์ž… ์ •์˜ + ์ƒ์ˆ˜

@contentrain/rules

๐Ÿ‘ npm

IDE ํ†ตํ•ฉ์„ ์œ„ํ•œ ์—์ด์ „ํŠธ ํ’ˆ์งˆ ๊ทœ์น™

@contentrain/skills

๐Ÿ‘ npm

์›Œํฌํ”Œ๋กœ์šฐ ์ ˆ์ฐจ + ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ€์ด๋“œ

์Šคํƒ€ํ„ฐ ํ…œํ”Œ๋ฆฟ

Contentrain ์ฝ˜ํ…์ธ  ๋ชจ๋ธ, ์ƒ์„ฑ๋œ SDK ํด๋ผ์ด์–ธํŠธ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋ณ„ ํŒจํ„ด์ด ํฌํ•จ๋œ ํ”„๋กœ๋•์…˜ ์ค€๋น„ ํ…œํ”Œ๋ฆฟ:

ํ…œํ”Œ๋ฆฟ

ํ”„๋ ˆ์ž„์›Œํฌ

์‚ฌ์šฉ ์‚ฌ๋ก€

astro-blog

Astro

๋ธ”๋กœ๊ทธ / ํŽธ์ง‘

astro-landing

Astro

๋žœ๋”ฉ ํŽ˜์ด์ง€

next-commerce

Next.js

์ „์ž์ƒ๊ฑฐ๋ž˜ ์Šคํ† ๋ฆฌํ…”๋ง

next-multi-surface-saas

Next.js

๋งˆ์ผ€ํŒ… + ์•ฑ + ๋ฌธ์„œ ํ†ตํ•ฉ

next-saas-dashboard

Next.js

SaaS ๋Œ€์‹œ๋ณด๋“œ UI ํ…์ŠคํŠธ

next-white-label-portal

Next.js

ํ™”์ดํŠธ ๋ผ๋ฒจ / ๋ฉ€ํ‹ฐ ํ…Œ๋„ŒํŠธ

nuxt-admin-console

Nuxt

๊ด€๋ฆฌ์ž ์ฝ˜์†” / ์šด์˜

nuxt-saas

Nuxt

SaaS ๋งˆ์ผ€ํŒ… ์‚ฌ์ดํŠธ

sveltekit-editorial

SvelteKit

ํŽธ์ง‘ / ์ถœํŒ

vitepress-docs

VitePress

๋ฌธ์„œ ์‚ฌ์ดํŠธ

๊ฐ ํ…œํ”Œ๋ฆฟ์€ GitHub ํ…œํ”Œ๋ฆฟ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. "Use this template"์„ ํด๋ฆญํ•˜์—ฌ ์‹œ์ž‘ํ•˜์„ธ์š”.

๋น ๋ฅธ ์ฐธ์กฐ

npx contentrain init # initialize project
npx contentrain serve # local review UI (port 3333)
npx contentrain serve --stdio # MCP over stdio for IDE agents
npx contentrain validate # check content health
npx contentrain generate # generate typed SDK client
npx contentrain status # project overview
npx contentrain doctor # setup health check
npx contentrain studio login # authenticate with Studio
npx contentrain studio connect # connect repo to Studio project

๋ฌธ์„œ

  • 2๋ถ„ ๋ฐ๋ชจ โ€” ์ œํ’ˆ์„ ์ดํ•ดํ•˜๋Š” ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ•

  • ์‹œ์ž‘ํ•˜๊ธฐ โ€” ์„ค์น˜, ์—์ด์ „ํŠธ ์—ฐ๊ฒฐ ๋ฐ ์ฒซ ๋ฒˆ์งธ ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰

  • ์ •๊ทœํ™” ๊ฐ€์ด๋“œ โ€” ์ฃผ์š” ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด ๋ณต๊ตฌ ํ๋ฆ„

  • ์ƒํƒœ๊ณ„ ์ง€๋„ โ€” AI์™€ Studio๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ํŒจํ‚ค์ง€-์ œํ’ˆ ๋ธŒ๋ฆฌ์ง€

  • Contentrain Studio โ€” Git ๊ธฐ๋ฐ˜ ๊ตฌ์กฐํ™”๋œ ์ฝ˜ํ…์ธ ๋ฅผ ์œ„ํ•œ ์˜คํ”ˆ ์ฝ”์–ด ํŒ€ ์šด์˜, ์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€๋Šฅ ๋˜๋Š” ๊ด€๋ฆฌํ˜• Pro/Enterprise ์ œ๊ณต

  • ์ „์ฒด ๋ฌธ์„œ โ€” ๊ฐ€์ด๋“œ, ํŒจํ‚ค์ง€ ์ฐธ์กฐ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ ํ†ตํ•ฉ

๊ฐœ๋ฐœ

pnpm install && pnpm build && pnpm test

๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ๊ฒŒ์‹œ ์›Œํฌํ”Œ๋กœ์šฐ๋Š” RELEASING.md๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ปค๋ฎค๋‹ˆํ‹ฐ

  • Discord โ€” ํŒ€ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋Œ€ํ™”

  • GitHub Discussions โ€” ์งˆ๋ฌธ ๋ฐ ์•„์ด๋””์–ด

  • Twitter / X โ€” ์ œํ’ˆ ์—…๋ฐ์ดํŠธ ๋ฐ ๊ณต์ง€์‚ฌํ•ญ

  • LinkedIn โ€” ํšŒ์‚ฌ ๋‰ด์Šค

  • YouTube โ€” ํŠœํ† ๋ฆฌ์–ผ ๋ฐ ๋ฐ๋ชจ

  • GitHub Issues โ€” ๋ฒ„๊ทธ ๋ณด๊ณ  ๋ฐ ๊ธฐ๋Šฅ ์š”์ฒญ

Contentrain AI๊ฐ€ ์œ ์šฉํ•˜๋‹ค๋ฉด ๋ณ„ํ‘œ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค

MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Contentrain/ai'

If you have feedback or need assistance with the MCP directory API, please join our Discord server