Shim MCP — Claude Code, Cursor 및 모든 MCP 클라이언트를 위한 WordPress MCP 서버
PHP >= 8.0
WordPress >= 6.9
License GPL-2.0-or-later
WordPress Plugin Version
CodeRabbit Pull Request Reviews
개발자를 위해 구축된, WordPress용 자체 포함 Model Context Protocol (MCP) 서버입니다. 이 플러그인 하나를 설치하면 귀하의 WordPress 사이트가 MCP 서버가 되며, Claude Code, Claude Desktop, Cursor, Windsurf, Cline 또는 모든 MCP 호환 AI 클라이언트가 구동할 수 있습니다. 게시물, 페이지, 미디어, 사용자, 플러그인, 메뉴, 위젯, 댓글, 옵션 및 시스템 관리 전반에 걸쳐 57가지 기능을 제공합니다.
별도의 보조 플러그인이 필요하지 않습니다. 클라우드 중계가 없습니다. 어떠한 계정도 필요하지 않습니다. 귀하의 사이트가 AI 클라이언트와 직접 통신하며 그 사이에 어떤 것도 존재하지 않습니다.
누가 사용해야 하는가
터미널이나 에디터에서 생활하는 개발자들입니다.
만약 wp 명령어를 실행하고, 하루 종일 VS Code를 열어두며, Claude Code나 Cursor가 로컬 WordPress 설치 환경에서 나머지 코드베이스와 동일하게 작동하기를 원한다면, 바로 이 경우를 위해 구축되었습니다. 프로덕션 사이트의 원격 서버로도 잘 작동하지만, 주목을 받은 것은 로컬 우선(local-first) 방식입니다.
연결하는 두 가지 방법
1. stdio를 통한 로컬 연결 (WP-CLI) — 이 플러그인이 존재하는 이유입니다.
wp shim-mcp serve --user=admin
이 명령어는 MCP 서버를 일반적인 stdio 프로세스로 실행합니다: STDIN으로 JSON-RPC가 입력되고, STDOUT으로 응답이 출력됩니다. HTTP도 없고, 포트도 없고, 터널링도 없고, 애플리케이션 비밀번호도 없고, OAuth 과정도 없습니다. Claude Code나 Cursor를 이 명령어에 연결하면 다른 모든 로컬 MCP 서버와 동일한 방식으로 연결됩니다.
여기서 무엇이 다른지 정확히 아는 것이 중요합니다. 여러 WordPress MCP 플러그인들이 WP-CLI를 언급하는데, 이 경우 WP-CLI는 AI가 호출할 수 있는 도구입니다. 즉, 모델이 인증된 HTTP 연결을 통해 원격 서버에 귀하를 대신하여 wp 명령어를 실행하도록 요청하는 것입니다. 유용하지만, 연결은 여전히 원격이며, 여전히 HTTP이고, 토큰이 필요합니다.
Shim은 전송 자체로 WP-CLI를 사용합니다. 서버는 사용자 기기에서 로컬 프로세스로 실행되며 파이프(pipe)를 통해 MCP를 전송합니다. HTTP 요청도 없고, 발급하거나 취소할 토큰도 없으며, 포트에서 리스닝하는 것도 없습니다. 따라서 로컬에서 체크아웃한 사이트의 경우, 인증 표면을 보호하는 대신 완전히 제거합니다.
2. 원격(Remote), HTTP를 통해 — 사용자가 직접 앞에 있지 않은 사이트를 위한 방식입니다.
'도구(Tools) → Shim MCP'에서 애플리케이션 비밀번호를 생성하고, 설정 스니펫을 복사하면 끝납니다. 스트림 가능한 HTTP 전송 방식으로, MCP 사양을 준수하며, 모든 호출마다 기능 검사를 수행합니다.
왜 'Shim'인가요?
시스템 프로그래밍에서 shim이란 두 인터페이스 사이에 위치하여 양쪽 모두 변경할 필요 없이 함께 작동하게 만드는 얇은 계층(thin layer)을 의미합니다.
이것이 바로 그 역할을 합니다. WordPress는 Abilities API를 사용하고, AI 클라이언트는 MCP를 사용합니다. Shim은 이 둘 사이에서 번역하는 역할만 하며 다른 것은 아무것도 하지 않습니다.
이 이름은 범위에 대한 약속입니다. 이것은 AI 제품이 아닙니다. 챗봇, 콘텐츠 생성기, 크레딧 시스템 또는 워크플로우가 되기를 원하는 대시보드를 번들로 제공하지 않습니다. 외부와 통신(phone home)하지도 않습니다. 이것은 어댑터이지, 가전제품(appliance)이 아니며 — WordPress 코어에서 Abilities API를 네이티브하게 배포할 때, 플러그인은 커지기보다 작아집니다.
무엇이 다른가요?
-
MCP 서버는 stdio를 통해 실행됩니다. 다른 방식들은 WP-CLI를 원격 HTTP 연결을 통해 접근 가능한 도구로 노출하는 반면; 여기서는 WP-CLI 자체가 전송 수단이며, 포트도 없고, 토큰도 없고, HTTP 계층조차 없습니다.
-
Abilities API 네이티브. 모든 기능(ability)은 WordPress 자체의 wp_register_ability()를 통해 등록됩니다. 사적인 도구 레지스트리에 아무것도 존재하지 않기 때문에, 다른 플러그인에 의해 등록된 기능들도 어댑터 코딩 없이 자동으로 노출됩니다.
-
광범위한 검사가 아닌 객체별 권한 확인. 모든 기능은 특정 기능을 선언하며, 특정 객체를 건드리는 모든 기능은 읽거나 변경하기 전에 해당 객체에 대한 개별 객체 기능(예: edit_post, delete_post, read_post, edit_user, delete_user, edit_comment)을 확인합니다. 기여자 클라이언트는 편집자의 게시물을 수정할 수 없습니다. edit_posts를 가지고 있다고 해서 모든 게시물을 수정할 권한이 있는 것으로 간주되지 않습니다.
-
의도적으로 57가지 기능. 이것은 가장 많은 도구 수를 겨루는 경쟁이 아닙니다. 모든 기능은 기능 참조에서 필요한 기능과 함께 문서화되어 있습니다.
-
아무것도 서버를 벗어나지 않습니다. 프록시(proxy), 중계(relay), 원격 측정(telemetry), 판매자 계정(vendor account)이 없습니다.
-
가장 위험한 기능은 기본적으로 비활성화됩니다. wp-config.php를 재작성하는 것은 define( 'SHIM_MCP_ALLOW_CONFIG_WRITES', true );로 명시적으로 옵트인하지 않는 한 비활성화된 상태로 유지됩니다.
빠른 시작 (Quick start)
로컬 개발 (stdio)
git clone https://github.com/justadityaraj/shim-mcp.git wp-content/plugins/shim-mcp
wp plugin activate shim-mcp
wp shim-mcp serve --user=admin
그런 다음 클라이언트에 등록합니다. macOS 또는 Linux용 Claude Code의 경우:
claude mcp add shim-mcp -- wp shim-mcp serve --user=admin --path=/path/to/wordpress
Windows, Claude Desktop 및 Cursor는 약간 다른 명령이 필요합니다. 로컬 설정 가이드에 각 환경별 테스트된 구성과 클라이언트를 연결하기 전에 서버가 응답하는 한 줄 확인 절차가 포함되어 있습니다.
원격 사이트 (HTTP)
- 플러그인을 설치하세요 — Plugins → Add New에서 Shim MCP를 검색하거나 WordPress.org 목록에서 다운로드합니다.
- Tools → Shim MCP로 이동하여 'Generate'를 클릭해 애플리케이션 비밀번호를 생성하세요.
- 대시보드에 표시되는 설정 스니펫을 AI 클라이언트의 설정에 복사하세요.
Claude Code, Claude Desktop, Cursor용으로 미리 만들어진 스니펫이 대시보드에 있습니다.
사용 가능한 명령어
wp shim-mcp serve [--server=<서버-id>] [--user=<id|login|email>]]
wp shim-mcp list [--format=<형식>]
기능
- 콘텐츠, 미디어, 사용자, 플러그인, 메뉴, 위젯, 댓글, 옵션 및 시스템 관리에 걸친 57가지 WordPress 기능(abilities)
- 플러그인 기능은 설치된 플러그인의 목록 보기, 활성화, 비활성화 및 삭제, 그리고 슬러그를 통해 WordPress.org 디렉토리에서 설치하는 것을 포함합니다. URL이나 업로드된 아카이브로 설치하는 것은 의도적으로 범위를 벗어납니다.
- 자동 버전 협상을 지원하는 MCP 프로토콜 2024-11-05, 2025-03-26 및 2025-06-18
- 두 가지 전송 방식: WP-CLI를 통한 stdio, 그리고 Streamable HTTP
- 애플리케이션 비밀번호 생성 및 폐기를 지원하는 관리자 대시보드
- Claude Code, Claude Desktop, Cursor용 설정 내보내기(Config export)
- 다른 MCP 서버 플러그인을 감지하고 두 개가 충돌할 경우 경고합니다.
요구 사항
- WordPress 6.9 이상 (코어에서 6.9부터 제공되는 Abilities API용)
- PHP 8.0 이상
- WP-CLI (stdio 전송 방식에 한함)
문서
- 설정 가이드 — 설치, 클라이언트 설정, 문제 해결
- 기능 참조 — 필요한 기능(capabilities)과 함께 모든 57가지 기능
- 보안 정책 — 신뢰 모델 및 취약점 신고 방법
상태
WordPress.org 플러그인 디렉토리에서 승인되어 라이브 상태입니다. wp-admin의 플러그인(Plugins) → 새로 추가(Add New)에서 직접 설치하거나, 릴리스 페이지에서 zip 파일을 다운로드하여 사용할 수 있습니다.
기능적으로는 완벽하며 기능들이 문서화되어 있지만, 아직 광범위한 호스팅 환경에서 실행된 적은 없습니다. 문제점이나 보고 사항을 환영합니다.
검증(Verification)
모든 푸시 및 풀 리퀘스트는 GitHub Actions에서 WordPress 6.9와 PHP 8.0, 최신 WordPress와 PHP 8.5, 그리고 멀티사이트 네트워크를 사용하여 스모크 테스트(smoke tests)를 실행합니다. 이 과정에서 신규 사이트에 릴리스 zip을 설치하고 stdio 및 Streamable HTTP를 통해 구동하며, 핵심의 네이티브 Abilities API, 권한 확인, 세션 처리, 프로토콜 오류, 그리고 저장된 데이터가 변경 없이 돌아오는 등 총 57가지 기능에 대한 테스트를 진행합니다. 테스트 실행하기를 참조하세요.
| 항목 | 결과 |
|---|
| WordPress 플러그인 검사 (실험적 및 저위험 검사를 포함한 모든 카테고리) | 오류 0개, 경고 0개 |
| ... | |
| 플러그인 검사는 디렉토리의 코딩 요구 사항에 대한 자동 스캔입니다. 통과했다는 것은 해당 코드가 그 표준을 충족한다는 의미이며, WordPress.org가 보증하거나 승인한다는 것을 의미하지는 않습니다. | |
개발 버전(Development version)
안정 릴리스는 main 브랜치에서 제공되며 WordPress.org 목록에 게시되는 내용입니다. 작업 중인 내용은 dev 브랜치에 있습니다.
아직 출시되지 않은 변경 사항을 사용해 보고 싶다면, 릴리스 페이지에서 가장 최신 프리릴리즈(pre-release) 버전을 받아보세요. 이 버전들은 안정 릴리스와 동일한 방식으로 빌드되며 플러그인 → 새로 추가 → 플러그인 업로드를 통해 정상적으로 설치할 수 있습니다.
대신 dev 브랜치를 직접 추적하려면 다음 명령어를 사용하세요:
git clone -b dev https://github.com/justadityaraj/shim-mcp.git wp-content/plugins/shim-mcp
반드시 shim-mcp라는 이름의 디렉토리에 클론해야 합니다. GitHub의
프리릴리즈 빌드(Pre-release builds)는 정의상 미출시 버전입니다. 이는 릴리스 검사를 거치지 않았으며 WordPress.org에 등록되지 않은 상태를 의미합니다. 따라서 프로덕션 사이트에서는 실행하지 마십시오.
테스트 실행하기
스모크 테스트(smoke tests)는 릴리즈 zip 파일을 생성하고, SQLite로 구동되는 임시 WordPress 사이트에 이를 설치한 다음, MCP를 통해 플러그인과 통신합니다. 이 테스트를 위해서는 PHP 8.0 이상 버전과 pdo_sqlite, zip 확장 기능이 필요하며, 첫 실행 시에는 네트워크 접근 권한도 필요합니다. 데이터베이스 서버나 Docker는 필요하지 않습니다.
composer install
composer lint
composer analyse
...
php tests/run.php stdio는 이름에 stdio가 포함된 스위트만 실행합니다. 다른 WordPress 릴리즈를 테스트하려면 test:setup 전에 WP_VERSION을 설정하고, 멀티사이트 네트워크를 설치하려면 WP_MULTISITE=1을 사용하며, 테스트 사이트를 시스템 임시 디렉토리 외부로 이동시키려면 SHIM_TEST_ROOT를 사용합니다. zip 파일은 git ls-files에서 생성되므로, 재빌드하기 전에 git에 새 파일을 추가해야 합니다. GitHub Actions는 최소 지원 쌍(WordPress 6.9, PHP 8.0)과 모든 푸시 및 풀 리퀘스트마다, 최신 WordPress와 PHP 8.5 환경에서, 그리고 최신 WordPress 멀티사이트 네트워크 환경에서 동일한 명령을 실행합니다.
유지보수자 (Maintainer)
Aditya Raj Singh가 BNCW Enterprises에서 구축하고 유지보수했습니다.
크레딧 (Credits)
Shim MCP는 WordPress 자체의 MCP 작업 위에 프로토콜 계층을 구축했습니다. includes/Server/ 아래의 모든 내용은 WordPress MCP Adapter (GPL-2.0)에서 파생되었습니다. 기능(abilities)은 WordPress 자체의 Abilities API를 통해 등록되는데, 이는 코어 버전 6.9부터 포함됩니다. 57개의 기능, 관리자 대시보드, WP-CLI stdio 브릿지 및 패키징은 이 플러그인 고유의 내용입니다. 전체 상세 내용은 CREDITS.md를 참조하십시오.
라이선스 (License)
GPL-2.0-or-later. 전체 텍스트는 LICENSE를 참조하십시오.