AI 도구

이 페이지

EmDash에는 AI 어시스턴트가 사이트 콘텐츠를 직접 다룰 수 있게 하는 내장 Model Context Protocol (MCP) 서버가 있습니다. Claude, ChatGPT 또는 다른 도구에 게시물 초안 작성, 페이지 업데이트, 미디어 관리, 콘텐츠 검색 등을 자연스러운 대화로 요청할 수 있습니다.

사이트의 MCP 서버

MCP 서버는 기본적으로 활성화되어 있습니다. 끄지 않는 한 EmDash는 /_emdash/api/mcp를 마운트합니다. 엔드포인트는 OAuth 또는 개인 액세스 베어러 토큰을 받습니다. 관리 브라우저 세션만으로는 MCP 요청이 인증되지 않습니다. OAuth는 연결하는 사람이 EmDash가 토큰을 발급하기 전에 스코프를 선택하게 합니다.

비활성화하려면 Astro 구성에서 mcp: false를 설정하세요.

emdash({
	mcp: false,
});

AI 클라이언트 연결하기

사이트의 MCP 서버 URL은 다음과 같습니다.

https://example.com/_emdash/api/mcp

example.com을 도메인으로 바꾸세요. 로컬 개발에는 http://localhost:4321/_emdash/api/mcp를 사용하세요.

Claude

URL을 원격 사용자 정의 커넥터로 추가하세요. Claude는 EmDash OAuth 흐름을 열어 로그인하고 권한을 선택할 수 있게 합니다. Anthropic은 EmDash와 독립적으로 커넥터 화면을 바꾸므로, 정확한 컨트롤과 플랜 요구 사항은 현재 사용자 정의 커넥터 안내를 따르세요.

ChatGPT

ChatGPT 개발자 모드는 원격 MCP 서버에 연결할 수 있고 OAuth 인증 도구를 지원합니다. 자격과 설정 화면은 바뀔 수 있으므로 공식 ChatGPT 개발자 모드 가이드를 따르고 앱을 만들 때 사이트의 MCP URL을 사용하세요. 쓰기 호출은 승인하기 전에 검토하세요.

Codex

Codex CLI에서 원격 서버를 추가한 다음 OAuth 로그인을 시작하세요.

codex mcp add emdash-site --url https://example.com/_emdash/api/mcp
codex mcp login emdash-site

ChatGPT 데스크톱 앱, Codex CLI, IDE 확장은 같은 Codex 호스트의 MCP 구성을 공유합니다. 구성 파일, OAuth, 지원 전송은 공식 Codex MCP 문서를 참조하세요.

사이트 콘텐츠 다루기

연결되면 자연어로 이러한 작업 중 어느 것이든 AI 어시스턴트에 요청할 수 있습니다. 도구 이름을 알 필요는 없습니다 — 원하는 것만 설명하면 됩니다.

Content

  • 콘텐츠 둘러보기 — “Show me the latest 10 blog posts” 또는 “Find all draft pages”
  • 콘텐츠 읽기 — “Get the post called ‘hello-world’ and summarize it”
  • 콘텐츠 만들기 — “Write a new blog post about our summer sale” 또는 “Create a draft page for the About section”
  • 콘텐츠 편집 — “Update the pricing page to mention the new plan” 또는 “Fix the typo in the FAQ post”
  • 게시와 예약 — “Publish the summer sale post”, “Schedule the announcement for June 1st at 9am”, 또는 “Cancel the schedule on the launch post”
  • 버전 비교 — “Show me what changed in the homepage since it was last published”
  • 초안 관리 — “Discard the draft changes on the about page” 또는 “Duplicate the newsletter template”
  • 번역 — “What translations exist for the welcome post?” 또는 “Create a French draft linked to this English post”(i18n이 활성화된 경우)

Bylines

  • 바이라인 둘러보기 — “List the guest contributors whose names contain ‘Lee’”
  • 콘텐츠에 크레딧 — “Add Priya Shah as the primary byline on this post”
  • 바이라인 관리 — “Create a guest byline for Sam Rivera” 또는 “Update this contributor’s bio”
  • 바이라인 번역 — “Show the locale variants of this byline”

바이라인 생성·업데이트·삭제·번역에는 Editor 역할이 필요합니다. 콘텐츠 쓰기 도구는 호출자가 해당 콘텐츠를 만들거나 편집할 권한이 있을 때 기존 바이라인 ID를 받습니다.

Media

  • 미디어 둘러보기 — “List all uploaded images” 또는 “Show me PDFs in the media library”
  • 세부 정보 확인 — “Get the details for this media item”
  • 파일 업로드 — “Upload this base64 image as banner.png”
  • 서명된 업로드 확인 — “Confirm the upload with this storage key”
  • 메타데이터 업데이트 — “Set the alt text on the hero image to ‘Mountain sunset’”
  • 파일 제거 — “Delete the old banner image”

media_upload는 base64로 인코딩된 바이트를 받아 파일을 저장하고, 미디어 항목을 등록하며, ID와 URL을 반환합니다. 사이트의 MIME 타입과 업로드 크기 한도를 적용합니다.

media_create는 POST /_emdash/api/media/upload-url로 만든 대기 중 업로드를 완료합니다. 반환된 서명된 URL로 파일을 업로드한 다음, 같은 사용자 계정에서 그 storageKey를 media_create에 전달하세요. 확인은 저장된 파일이 존재하고 업로드 URL을 요청할 때 제공한 크기와 일치하는지 검사합니다. 이 워크플로에는 Author 이상 역할이 필요합니다. Contributor는 media_upload를 사용할 수 있습니다.

  • 콘텐츠 찾기 — “Search for posts mentioning ‘accessibility’” 또는 “Find anything about TypeScript across all collections”

Taxonomies

  • 둘러보기 — “List all categories” 또는 “Show me the tags”
  • 용어 만들기 — “Add a ‘tutorials’ tag” 또는 “Create a ‘Frontend’ subcategory under ‘Engineering’”
  • 용어 이름 바꾸기 — “Rename the ‘frontend’ category to ‘Web Frontend’”
  • 용어 이동 — “Move the ‘tutorials’ tag under the ‘guides’ category” 또는 “Detach ‘react’ from its parent”
  • 용어 삭제 — “Delete the unused ‘archive’ tag”
  • 메뉴 보기 — “Show me the main navigation menu” 또는 “What’s in the footer menu?”
  • 메뉴 만들기 — “Create a new ‘sidebar’ menu”
  • 메뉴 편집 — “Rename the ‘main’ menu to ‘Primary navigation’”
  • 항목 설정 — “Replace the items in the main menu with Home, Blog, About, and Contact”
  • 메뉴 삭제 — “Delete the unused ‘mobile’ menu”

Site settings

  • 검사 — “What’s the current site title?” 또는 “Show me the social links”
  • 신원 업데이트 — “Set the site title to ‘Acme Blog’ and tagline to ‘Stories from the team’”
  • 로고 / 파비콘 설정 — “Use this image as the site logo”(media_upload로 업로드한 후)
  • SEO 기본값 — “Set the default OG image to the new banner” 또는 “Update the title separator to a vertical bar”
  • 소셜 핸들 — “Add our GitHub and YouTube links to the social settings”

Schema(Admin만)

  • 검사 — “What collections exist?” 또는 “Show me the fields on the posts collection”
  • 컬렉션 만들기 — “Create a new ‘testimonials’ collection with name and quote fields”
  • 스키마 수정 — “Add a ‘featured’ boolean field to posts”

Revisions

  • 기록 보기 — “Show the revision history for this post”
  • 복원 — “Restore the post to its previous version”

권한

MCP 클라이언트가 OAuth 동의 페이지를 열면 요청한 모든 권한이 기본적으로 선택됩니다. 접근을 승인하기 전에 클라이언트가 필요 없는 권한의 선택을 해제하세요. 결과 토큰은 선택한 채로 둔 권한과 EmDash 역할이 허용하는 권한으로 제한되므로, 권한을 줄여도 클라이언트가 할 수 있는 일이 늘어나지 않습니다.

역할AI가 할 수 있는 일
Admin스키마 변경과 사이트 설정 업데이트를 포함한 모든 것
Editor모든 콘텐츠, 미디어, 바이라인, 택소노미, 메뉴 관리. 스키마 보기와 설정 읽기.
Author콘텐츠 만들기, 소유 콘텐츠 편집·게시, 미디어 업로드와 소유 미디어 관리.
Contributor초안 콘텐츠 만들기와 미디어 업로드(게시 없음).

토큰 스코프 또는 사용자 역할이 부족하면 EmDash는 도구 호출을 거부합니다. 클라이언트가 그 오류를 설명할 수는 있지만, 강제하는 권한은 EmDash입니다.

팁

  • 컬렉션을 구체적으로. 컬렉션이 여러 개면 「create a post」보다 「create a blog post」라고 말하세요.
  • 먼저 스키마를 물어보세요. 컬렉션 필드가 확실하지 않으면 만들거나 편집하기 전에 「What fields does the posts collection have?」라고 물어보세요.
  • 게시 전에 검토하세요. AI에게 초안으로 만들게 하고 관리 패널에서 검토한 뒤 게시를 요청하거나 직접 게시하세요.
  • 검토에는 compare를 사용하세요. 게시 전에 「Compare the live and draft versions of this post」라고 물어 정확히 무엇이 바뀌는지 보세요.
  • 리치 텍스트 필드는 Portable Text. AI는 리치 텍스트용 내용을 쓸 수 있지만, 복잡한 서식은 관리 편집기가 가장 좋습니다.

개발자용

MCP 서버 엔드포인트, 인증 방법, OAuth 디스커버리, 도구 매개변수, 오류 처리는 MCP 서버 참조에 문서화되어 있습니다.