MCP

MCP Server

Claude, Cursor, Windsurf 및 기타 AI 도구에서 mdfy.app 문서를 직접 생성하고 관리할 수 있습니다.

AI 에이전트를 위한 MCP-native memory layer.

오늘 mdfy URL을 컨텍스트로 읽고, Phase 2에서 MCP를 통해 메모리를 기록합니다.

오늘 Live

  • mdfy URL을 AI 컨텍스트로 읽기
  • 25개 MCP 도구를 통한 문서 CRUD
  • 자동 소스 감지

출시 예정 Q2 2026

  • 메모리 쓰기 접근
  • 번들 배포
  • 멀티 에이전트 메모리 공유
  • 실시간 번들 동기화

MCP란

Model Context Protocol (MCP)은 AI 어시스턴트가 외부 도구 및 서비스와 상호작용할 수 있게 하는 개방형 표준입니다. mdfy MCP 서버는 7개 카테고리에 걸쳐 25개 도구를 제공합니다 -- 핵심 CRUD, append/prepend, 섹션 편집, 공유 설정, 버전 이력, 폴더, 통계. https://mdfy.app/api/mcp의 호스팅 엔드포인트는 모든 MCP 호환 클라이언트(Claude Web, Cursor 등)에서 사용할 수 있습니다.

Claude Web (호스팅 MCP)

호스팅 MCP 엔드포인트를 통해 claude.ai에서 바로 mdfy.app를 사용할 수 있습니다 -- 로컬 설치가 필요 없습니다.

엔드포인트 URL

https://mdfy.app/api/mcp

Claude.ai에서 Settings → Integrations / Connectors → Add custom MCP server → 위 URL을 붙여넣기 합니다.

같은 호스팅 엔드포인트가 원격 HTTP MCP를 지원하는 모든 MCP 호환 클라이언트(Cursor, ChatGPT, Gemini 등)에서 동작합니다.

로컬 설치

로컬 stdio 기반 클라이언트(Claude Desktop, Claude Code, Cursor stdio 모드)의 경우, npm 패키지를 설치합니다:

bash
npm install -g mdfy-cli && mdfy login

MCP 서버는 mdfy login의 JWT 인증을 사용합니다. 환경 변수 설정이 필요 없습니다.

Claude Code 설정

프로젝트 루트의 .mcp.json에 추가합니다:

json
{
  "mcpServers": {
    "mdfy": {
      "command": "npx",
      "args": ["mdfy-mcp"]
    }
  }
}

Claude Desktop 설정

claude_desktop_config.json에 추가합니다:

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

json
{
  "mcpServers": {
    "mdfy": {
      "command": "npx",
      "args": ["mdfy-mcp"]
    }
  }
}

Cursor / Windsurf

Cursor와 Windsurf 모두 MCP를 지원합니다. 호스팅 HTTP 엔드포인트 또는 npm 패키지를 사용합니다.

Cursor -- Settings → MCP → Add new global MCP server

json
{
  "mcpServers": {
    "mdfy": {
      "url": "https://mdfy.app/api/mcp"
    }
  }
}

전체 25개 도구

호스팅 MCP는 7개 카테고리에 걸쳐 25개 도구를 제공합니다. 인증은 사용자의 mdfy.app 세션을 통해 이루어집니다 (API 키 불필요).

핵심 CRUD
mdfy_createmdfy_readmdfy_updatemdfy_deletemdfy_listmdfy_search
Append/Prepend
mdfy_appendmdfy_prepend
섹션
mdfy_outlinemdfy_extract_sectionmdfy_replace_section
복제/가져오기
mdfy_duplicatemdfy_import_url
공유
mdfy_publishmdfy_set_passwordmdfy_set_expirymdfy_set_allowed_emailsmdfy_get_share_url
버전
mdfy_versionsmdfy_restore_versionmdfy_diff
통계/폴더
mdfy_statsmdfy_recentmdfy_folder_listmdfy_folder_createmdfy_move_to_folder

아래에 핵심 6개 도구의 상세 매개변수를 설명합니다. 나머지 19개도 같은 패턴을 따르며, 호출 시 AI가 도구 설명에서 인자를 자동 완성합니다.

mdfy_create

Markdown 내용으로 새 문서를 생성합니다. 문서 URL, ID, edit token을 반환합니다.

mdfy_read

ID로 문서의 내용과 메타데이터를 조회합니다.

mdfy_update

기존 문서의 내용이나 제목을 수정합니다.

mdfy_list

인증된 사용자의 모든 문서를 조회합니다.

mdfy_publish

문서를 임시 저장(비공개)과 게시(공개) 상태 간에 전환합니다.

mdfy_delete

문서를 소프트 삭제합니다. 소유자가 복원할 수 있습니다.

mdfy_create

Markdown 내용으로 새 문서를 생성합니다. 문서 URL, ID, edit token을 반환합니다.

매개변수

markdownREQUIREDstringMarkdown 내용.
titlestring문서 제목.
isDraftboolean임시 저장으로 생성. 기본값: false.

예시

// Claude Code에서:
"이 분석 내용을 mdfy.app에 문서로 게시해줘"

// Claude가 mdfy_create를 호출:
{
  "markdown": "# Performance Analysis\n...",
  "title": "Performance Analysis",
  "isDraft": false
}

// 반환값:
{
  "url": "https://mdfy.app/abc123",
  "id": "abc123",
  "editToken": "tok_..."
}

mdfy_read

ID로 문서의 내용과 메타데이터를 조회합니다.

매개변수

idREQUIREDstring문서 ID.

예시

// "mdfy.app/abc123 문서를 읽어줘"

// Claude가 mdfy_read를 호출:
{ "id": "abc123" }

// 전체 markdown 내용과 메타데이터를 반환

mdfy_update

기존 문서의 내용이나 제목을 수정합니다.

매개변수

idREQUIREDstring문서 ID.
markdownstring새 Markdown 내용.
titlestring새 제목.
changeSummarystring변경 사항 설명.

예시

// "수정된 버전으로 문서를 업데이트해줘"

// Claude가 mdfy_update를 호출:
{
  "id": "abc123",
  "markdown": "# Revised Analysis\n...",
  "changeSummary": "Added benchmarks section"
}

mdfy_list

인증된 사용자의 모든 문서를 조회합니다.

예시

// "내가 게시한 문서들을 보여줘"

// Claude가 mdfy_list를 호출 (매개변수 없음)
// id, title, status가 포함된 문서 배열을 반환

mdfy_publish

문서를 임시 저장(비공개)과 게시(공개) 상태 간에 전환합니다.

매개변수

idREQUIREDstring문서 ID.
isDraftREQUIREDbooleantrue이면 임시 저장, false이면 게시.

예시

// "abc123 문서를 공개해줘"

// Claude가 mdfy_publish를 호출:
{ "id": "abc123", "isDraft": false }

mdfy_delete

문서를 소프트 삭제합니다. 소유자가 복원할 수 있습니다.

매개변수

idREQUIREDstring문서 ID.

예시

// "오래된 임시 저장을 삭제해줘"

// Claude가 mdfy_delete를 호출:
{ "id": "abc123" }

사용 예시

문서 게시

You: "WebAssembly에 대한 블로그 글을 써서 mdfy.app에 게시해줘"

Claude: 블로그 글을 작성하고 게시하겠습니다.

[Claude가 내용을 작성한 후 mdfy_create를 호출]

완료! 블로그 글이 https://mdfy.app/abc123 에 게시되었습니다.

수정 반영

You: "mdfy.app/abc123 문서에 벤치마크 섹션을 추가해줘"

Claude: 현재 문서를 읽고 벤치마크 섹션을 추가하겠습니다.

[Claude가 mdfy_read를 호출한 후 mdfy_update로 새 내용을 반영]

업데이트 완료! 문서에 벤치마크 섹션이 추가되었습니다.

문서 관리

You: "내 최근 문서를 보여주고 오래된 임시 저장을 삭제해줘"

Claude: 문서 목록을 확인하겠습니다.

[Claude가 mdfy_list를 호출]

5개의 문서가 있습니다:
1. "API Guide" (게시됨) - 2시간 전 수정
2. "Draft notes" (임시 저장) - 3일 전 수정
3. "Old meeting notes" (임시 저장) - 2주 전 수정

오래된 임시 저장(#2, #3)을 삭제할까요?

You: "네"

[Claude가 각각에 대해 mdfy_delete를 호출]

완료! 2개의 문서가 삭제되었습니다.