Ghost MCP Server

Integrations

  • Supports configuration through environment variables for storing Ghost API credentials and server settings.

  • Optionally integrates with 1Password CLI for securely storing and accessing Ghost API credentials.

  • Implements a REST API server alongside the MCP server functionality.

고스트 MCP 서버

이 프로젝트( ghost-mcp-server )는 정의된 도구를 통해 MCP 클라이언트(예: Cursor 또는 Claude Desktop)가 Ghost CMS 인스턴스와 상호 작용할 수 있도록 하는 MCP(Model Context Protocol) 서버를 구현합니다.

요구 사항

  • Node.js 14.0.0 이상
  • Ghost Admin API URL 및 키

Ghost MCP 서버 세부 정보

이 서버는 Ghost CMS 관리 기능을 MCP 도구로 제공하여 Cursor나 Claude Desktop과 같은 AI 클라이언트가 Ghost 블로그를 관리할 수 있도록 합니다.

MCP 클라이언트는 실행 중인 MCP 서버(기본적으로 3001번 포트에서 수신 대기)의 루트 엔드포인트(예: http://localhost:3001/ )에 쿼리를 보내 이러한 리소스와 도구를 찾을 수 있습니다. 서버는 모델 컨텍스트 프로토콜(MPP) 사양에 따라 기능을 제공합니다.

정의된 리소스

  • ghost/tag : Ghost CMS의 태그를 나타냅니다. id , name , slug , description 포함합니다.
  • ghost/post : Ghost CMS의 게시물을 나타냅니다. id , title , slug , html , status , feature_image , published_at , tags ( ghost/tag 배열), 메타데이터 필드 등을 포함합니다.

(전체 리소스 스키마는 src/mcp_server.js 를 참조하세요.)

정의된 도구

사용 가능한 MCP 도구를 사용하기 위한 가이드는 다음과 같습니다.

  1. ghost_create_tag
    • 목적 : 새로운 태그를 만듭니다.
    • 입력 :
      • name (문자열, 필수): 새 태그의 이름입니다.
      • description (문자열, 선택 사항): 태그에 대한 설명입니다.
      • slug (문자열, 선택 사항): URL 친화적인 슬러그(생략 시 자동 생성됨).
    • 출력 : 생성된 ghost/tag 리소스.
  2. ghost_get_tags
    • 목적 : 기존 태그를 검색합니다. 태그 ID를 찾거나 태그 생성 전에 태그가 존재하는지 확인하는 데 사용할 수 있습니다.
    • 입력 :
      • name (문자열, 선택 사항): 정확한 이름으로 태그를 필터링합니다.
    • 출력 : 필터와 일치하는 ghost/tag 리소스의 배열(이름이 제공되지 않으면 모든 태그).
  3. ghost_upload_image
    • 목적 : 게시물의 추천 이미지로 사용할 이미지를 Ghost에 업로드합니다.
    • 입력 :
      • imageUrl (문자열 URL, 필수): 업로드할 이미지의 공개적으로 접근 가능한 URL입니다.
      • alt (문자열, 선택 사항): 이미지에 대한 대체 텍스트(생략하면 기본값이 생성됩니다).
    • 출력 : 최종 url (업로드된 이미지의 Ghost URL)과 결정된 alt 텍스트를 포함하는 객체입니다.
    • 사용 참고 사항 : 추천 이미지가 필요한 게시물을 만들기 전에 먼저 이 도구를 호출하여 고스트 이미지 URL을 얻으세요.
  4. ghost_create_post
    • 목적 : 새로운 게시물을 만듭니다.
    • 입력 :
      • title (문자열, 필수): 게시물의 제목입니다.
      • html (문자열, 필수): HTML 형식의 게시물의 주요 내용입니다.
      • status (문자열, 선택 사항, 기본값: '초안'): 상태를 '초안', '게시됨' 또는 '예약됨'으로 설정합니다.
      • tags (문자열 배열, 선택 사항): 연결할 태그 이름 목록입니다. 태그는 자동으로 검색되거나 생성됩니다.
      • published_at (문자열 ISO 날짜, 선택 사항): 게시 또는 예약할 날짜/시간입니다. 상태가 '예약됨'인 경우 필수입니다.
      • custom_excerpt (문자열, 선택 사항): 간략한 요약입니다.
      • feature_image (문자열 URL, 선택 사항): 추천 이미지의 URL( ghost_upload_imageurl 출력을 사용).
      • feature_image_alt (문자열, 선택 사항): 기능 이미지에 대한 대체 텍스트입니다.
      • feature_image_caption (문자열, 선택 사항): 피처 이미지의 캡션입니다.
      • meta_title (문자열, 선택 사항): 사용자 지정 SEO 제목.
      • meta_description (문자열, 선택 사항): 사용자 정의 SEO 설명.
    • 출력 : 생성된 ghost/post 리소스.

설치 및 실행

  1. 저장소 복제 :지엑스피1
  2. 종속성 설치 :
    npm install
  3. 환경 변수 구성 : 프로젝트 루트에 .env 파일을 만들고 Ghost Admin API 자격 증명을 추가합니다.
    # Required: GHOST_ADMIN_API_URL=https://your-ghost-site.com GHOST_ADMIN_API_KEY=your_admin_api_key # Optional: # PORT=3000 # Port for the (optional) Express REST API server # MCP_PORT=3001 # Port for the MCP server # NODE_ENV=development # Set to 'production' for production deployments # LOG_LEVEL=info # Set logging level (debug, info, warn, error) # If using 1Password CLI for secrets: # You might store the API key in 1Password and use `op run --env-file=.env -- ...`
    • Ghost Admin API URL을 찾아 통합 -> 사용자 정의 통합에서 Ghost Admin 설정에 입력합니다.
  4. 서버 실행 :
    npm start # OR directly: # node src/index.js
    이 명령은 Express 서버(경로가 여전히 마운트되어 있는 경우)와 MCP 서버를 모두 시작합니다.
    • MCP 서버는 일반적으로 http://localhost:3001 (또는 지정한 MCP_PORT )에서 사용할 수 있습니다.
    • MCP 클라이언트는 이 주소에 연결하여 도구를 검색하고 사용할 수 있습니다.
  5. 개발 모드(nodemon 사용) : 자동 재시작이 가능한 개발의 경우:
    npm run dev

문제 해결

  • Ghost에서 발생한 401 무단 오류: .env 파일의 GHOST_ADMIN_API_URLGHOST_ADMIN_API_KEY 가 올바른지, Ghost에서 사용자 정의 통합이 활성화되어 있는지 확인하세요.
  • MCP 서버 연결 문제: MCP 서버가 실행 중인지 확인하세요(콘솔 로그 확인). 포트( MCP_PORT , 기본값 3001)가 방화벽으로 차단되어 있지 않은지 확인하세요. 클라이언트가 올바른 주소와 포트에 연결되었는지 확인하세요.
  • 도구 실행 오류: 서버 콘솔 로그에서 특정 도구 구현(예: ghost_create_post , ghost_upload_image )의 자세한 오류 메시지를 확인하세요. 일반적인 문제로는 잘못된 입력( src/mcp_server.js 및 README 가이드의 도구 스키마 참조), imageUrl 에서 다운로드하는 데 문제가 있거나, 이미지 처리 오류가 발생하거나, Ghost API의 업스트림 오류가 발생할 수 있습니다.
  • 종속성 설치 문제: 호환되는 Node.js 버전이 설치되어 있는지 확인하세요(요구 사항 섹션 참조). node_modulespackage-lock.json 제거하고 npm install 다시 실행해 보세요.
-
security - not tested
A
license - permissive license
-
quality - not tested

Cursor나 Claude Desktop과 같은 AI 클라이언트가 게시물 생성, 태그 추가, 이미지 업로드 등의 기능을 제공하여 Ghost CMS 블로그를 관리할 수 있도록 하는 Model Context Protocol Server의 구현입니다.

  1. Requirements
    1. Ghost MCP Server Details
      1. Resources Defined
      2. Tools Defined
    2. Installation and Running
      1. Troubleshooting
        ID: 1gerxdlb96