esa MCP Server

공식

esa.io를 위한 공식 Model Context Protocol (MCP) 서버 - STDIO 전송 버전입니다.

문서

esa MCP Server

License: MIT

日本語 | English

esa.io를 위한 공식 Model Context Protocol (MCP) 서버 - STDIO 전송 버전입니다.

개요

이 MCP 서버는 AI 어시스턴트와 협업 문서 플랫폼 esa.io 간의 원활한 통합을 제공합니다. AI 어시스턴트가 Model Context Protocol을 통해 직접 esa 문서를 읽고, 생성하고, 업데이트하고, 관리할 수 있도록 해줍니다.

사용 가능한 도구

팀 관리

  • esa_get_teams - 사용자가 접근 가능한 esa 팀 목록 가져오기
  • esa_get_team_stats - 팀 통계 가져오기 (멤버, 게시글, 댓글, 별표, 구독, 활성 사용자)
  • esa_get_team_tags - 팀 게시글에 사용된 모든 태그와 개수 가져오기
  • esa_get_team_members - 역할 및 프로필 정보가 포함된 팀 멤버 목록 가져오기

게시글 관리

  • esa_search_posts - esa.io에서 게시글 검색하기
  • esa_get_post - 게시글 번호로 특정 게시글 가져오기 (본문의 문자 수와 줄 수를 포함한 backlinks_countbody_md_stats 포함)
  • esa_get_post_backlinks - 특정 게시글을 참조하는 게시글을 페이지네이션과 함께 나열하기
  • esa_create_post - 태그, 카테고리, WIP 상태를 포함한 새 게시글 생성하기
  • esa_update_post - 기존 게시글 업데이트하기 (제목, 내용, 태그, 카테고리, WIP 상태)
  • esa_append_post - 게시글 본문 끝에 내용 추가하기 (현재 본문을 가져올 필요 없음; 새 리비전으로 저장됨)
  • esa_prepend_post - 게시글 본문 시작 부분에 내용 추가하기 (현재 본문을 가져올 필요 없음; 새 리비전으로 저장됨)

게시글 작업

  • esa_archive_post - 게시글을 Archived/ 카테고리로 이동하여 보관하기
  • esa_ship_post - 게시글 발행하기 (wip을 false로 설정하여 완료로 표시)
  • esa_duplicate_post - 게시글 복제하기 (동일한 제목과 본문으로 새 WIP 게시글 생성; 팀 간 복제도 지원됨)

댓글 관리

  • esa_get_comment - ID로 특정 댓글 가져오기
  • esa_create_comment - 게시글에 새 댓글 작성하기
  • esa_update_comment - 기존 댓글 업데이트하기
  • esa_delete_comment - 댓글 삭제하기
  • esa_get_post_comments - 특정 게시글의 댓글을 페이지네이션과 함께 가져오기
  • esa_get_team_comments - 팀 댓글을 페이지네이션과 함께 가져오기

카테고리 관리

  • esa_get_categories - 특정 경로의 카테고리 및 하위 카테고리 가져오기
  • esa_get_top_categories - 팀의 모든 최상위 카테고리 가져오기
  • esa_get_all_category_paths - 팀의 모든 카테고리 경로 가져오기 (게시글 수 포함, 필터링 지원)
    • 카테고리 구조 파악, 조직 계획, 정리에 완벽함
    • 필터 예시: 개발 관련은 prefix: "dev", API 관련 카테고리는 match: "api"

첨부 파일

  • esa_get_attachment - esa 게시글 및 댓글에서 첨부 파일 가져오기
    • 지원되는 이미지(JPEG, PNG, GIF, WebP) 중 30MB 미만인 경우 base64 인코딩된 데이터 반환
    • 다른 파일 유형, 더 큰 이미지, 또는 forceSignedUrl이 지정된 경우 서명된 URL(5분간 유효) 반환

도움말 및 문서

  • esa_get_search_options_help - esa 검색 구문 문서 가져오기
  • esa_get_markdown_syntax_help - esa 마크다운 구문 문서 가져오기
  • esa_search_help - 기능 및 용어에 대한 esa 문서 검색하기

사용 가능한 리소스

  • esa_recent_posts - esa 팀에서 최근 업데이트된 게시글 가져오기
    • 템플릿: esa://teams/{teamName}/posts/recent
    • 반환: 최근 업데이트된 게시글의 JSON 목록

사용 가능한 프롬프트

  • esa_summarize_post - esa 게시글 내용 요약하기
    • 입력: 팀 이름과 게시글 번호
    • 출력: 게시글 내용의 구조화된 요약

MCP 클라이언트 설정

MCP 클라이언트 설정 파일에 추가하세요:

필수 환경 변수

  • ESA_ACCESS_TOKEN: 액세스 토큰
    • 필수 스코프: read write 또는 admin:comment read:post write:post read:category read:tag read:attachment read:team read:member
    • PAT v2 사용을 권장합니다.
  • LANG: UI 언어

Claude Desktop 예시

claude_desktop_config.json에 추가하세요:

옵션 1: Docker (권장)

{
  "mcpServers": {
    "esa": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ESA_ACCESS_TOKEN",
        "-e",
        "LANG",
        "ghcr.io/esaio/esa-mcp-server"
      ],
      "env": {
        "ESA_ACCESS_TOKEN": "your_personal_access_token",
        "LANG": "en"
      }
    }
  }
}

옵션 2: npx

{
  "mcpServers": {
    "esa": {
      "command": "/Users/your-username/.nodenv/shims/npx",
      "args": ["@esaio/esa-mcp-server"],
      "env": {
        "ESA_ACCESS_TOKEN": "your_personal_access_token",
        "LANG": "en"
      }
    }
  }
}

참고: /path/to/your/nodewhich node 명령의 출력으로 교체하세요.

레지스트리

이 패키지는 패키지 루트에 registry.json를 포함하여 등록된 도구, 리소스, 프롬프트를 노출합니다. 서버를 실행하지 않고 프로그래밍 방식으로 사용할 수 있습니다:

import registry from "@esaio/esa-mcp-server/registry.json" with { type: "json" };

스키마:

{
  "tools": [{ "name": "esa_get_teams" }, "..."],
  "resources": [
    { "name": "esa_recent_posts", "uriTemplate": "esa://teams/{teamName}/posts/recent" }
  ],
  "prompts": [{ "name": "esa_summarize_post" }]
}

이 파일은 npm run build:registry에 의해 재생성되며, CI 검사를 통해 등록된 세트와 동기화 상태를 유지하도록 강제합니다.

링크

지원


esa 팀이 ❤️를 담아 제작했습니다