wikidocs-mcp
Enables AI agents to read, edit, and manage Wikidocs books and blogs, including page CRUD operations, keyword search, and image uploads.
README
위키독스 MCP 서버
AI 에이전트가 위키독스(Wikidocs) 책과 블로그를 읽고, 편집하고, 관리할 수 있도록 하는 Model Context Protocol (MCP) 서버입니다.
✨ 주요 기능
📚 책 관리
- 스마트 캐싱: 대량 페이지 데이터를 로컬에 캐시하여 성능 최적화
- 키워드 검색: 책 내용에서 관련도 기반 페이지 검색
- 구조 탐색: 책의 목차 구조를 요약하여 전체 구조 파악
- 페이지 CRUD: 페이지 읽기, 생성, 수정 기능
📝 블로그 관리
- 블로그 포스트 목록 조회 및 내용 읽기
- 새 포스트 생성 및 기존 포스트 수정
- 태그 관리 및 공개/비공개 설정
🖼️ 이미지 업로드
- 페이지 및 블로그용 이미지 업로드 지원
🚀 빠른 시작
1. 설치
git clone https://github.com/ychoi-kr/wikidocs-mcp.git
cd wikidocs-mcp
pip install -r requirements.txt
2. 환경 설정
.env 파일을 생성하고 위키독스 API 토큰을 설정합니다.
WIKIDOCS_API_TOKEN="여기에_발급받은_API_토큰을_입력하세요"
💡 API 토큰 발급: 위키독스 로그인 > 계정설정 > API 토큰에서 토큰을 확인할 수 있습니다.
3. Claude Desktop 연결
Claude Desktop 설정 파일(claude_desktop_config.json)에 서버를 등록합니다:
{
"mcpServers": {
"wikidocs": {
"command": "/opt/anaconda3/bin/python3",
"args": ["/Users/your-username/wikidocs-mcp/main.py"]
}
}
}
⚠️ 중요: 경로를 본인 환경에 맞게 수정하세요.
- Python 경로 확인:
which python3- 프로젝트 경로 확인:
pwd
4. 테스트 실행
Claude Desktop을 재시작하고 다음과 같이 테스트해 보세요.
내 책 목록을 보여줘
MCP 클라이언트가 인자 없이 툴을 호출하는 문제를 진단하려면 CLI에서 직접 다음을 실행해 보세요.
claude mcp call wikidocs-mcp get_book_structure --json '{"book_id": 12345, "max_depth": 3}'
🛠️ 도구 목록
📖 책 관리 도구
| 도구명 | 설명 | 사용 예시 |
|---|---|---|
list_my_books |
내가 작성한 책 목록 조회 | "내 책 목록을 보여줘" |
get_book_info |
책 정보 조회 및 캐시 저장 | "책 ID 123의 정보를 가져와줘" |
search_book_pages |
키워드로 페이지 검색 | "MCP 관련 내용을 찾아줘" |
get_book_structure |
책 목차 구조 요약 | "이 책의 구조를 보여줘" |
get_page |
특정 페이지 내용 조회 | "페이지 456의 내용을 보여줘" |
create_page |
새 페이지 생성 | "새로운 챕터를 추가해줘" |
update_page |
페이지 내용 수정 | "이 페이지를 수정해줘" |
renumber_pages |
페이지 번호 일괄 변경 | "5.2절부터 번호를 하나씩 뒤로 밀어줘" |
upload_page_image |
페이지용 이미지 업로드 | "이미지를 업로드해줘" |
get_cache_status |
캐시 상태 확인 | "캐시 상태를 확인해줘" |
📝 블로그 관리 도구
| 도구명 | 설명 | 사용 예시 |
|---|---|---|
get_blog_profile |
블로그 프로필 정보 조회 | "내 블로그 정보를 보여줘" |
get_blog_list |
블로그 포스트 목록 조회 | "최근 블로그 포스트를 보여줘" |
get_blog_post |
특정 포스트 내용 조회 | "포스트 789의 내용을 보여줘" |
create_blog_post |
새 포스트 생성 | "새 블로그 포스트를 작성해줘" |
update_blog_post |
포스트 내용 수정 | "이 포스트를 수정해줘" |
upload_blog_image |
블로그용 이미지 업로드 | "블로그 이미지를 업로드해줘" |
💡 사용법 예시
기본 워크플로
1. 책 목록 확인
→ "내 위키독스 책 목록을 보여줘"
2. 특정 책 로드
→ "책 ID 99999의 정보를 가져와줘"
(대량 페이지 데이터가 로컬 캐시에 저장됨)
3. 키워드 검색
→ "MCP 관련 내용을 검색해줘"
(관련도 높은 페이지들만 반환)
4. 상세 내용 조회
→ "페이지 99999999의 전체 내용을 보여줘"
5. 내용 수정
→ "이 페이지에 새로운 예제를 추가해줘"
고급 활용 예시
# 책 전체 분석
"MCP 가이드 책의 구조를 분석하고, 부족한 부분이 있으면 알려줘"
# 콘텐츠 최적화
"이 책에서 'MCP'라는 키워드가 나오는 모든 페이지를 찾아서 설명의 일관성을 확인해줘"
# 자동 블로그 포스팅
"책의 3장 내용을 요약해서 블로그 포스트로 작성해줘"
🏗️ 아키텍처
프로젝트 구조
wikidocs-mcp/
├── main.py # 메인 서버 진입점
├── book_tools.py # 책 관련 도구들
├── blog_tools.py # 블로그 관련 도구들
├── utils.py # 공통 유틸리티 함수
├── search_utils.py # 캐시 및 검색 기능
├── .env # 환경 변수 (API 토큰)
└── requirements.txt # 패키지 의존성
캐시 시스템
- 위치:
~/.wikidocs_mcp_cache/ - 구조:
book_{id}.json: 책 데이터book_{id}_meta.json: 캐시 메타데이터
- 유효기간: 24시간 (설정 가능)
- 자동 무효화: 페이지 생성/수정 시
검색 알고리듬
- 텍스트 정규화: HTML 태그 제거, 특수문자 처리
- 관련도 점수 계산:
- 제목 매칭: 10.0점 (완전 일치 시 +5.0점)
- 내용 매칭: 매칭 수 × 2.0점
- 부분 매칭: 단어별 0.5-3.0점
- 결과 정렬: 관련도 점수 기준 내림차순
📚 참고 자료
- 위키독스 API 문서
- Model Context Protocol
- MCP: AI 에이전트 시대의 통합 가이드 (이 프로젝트의 기반이 된 책)
🛡️ 보안 및 주의사항
- API 토큰 보안:
.env파일을 절대 git에 커밋하지 마세요 - 권한 확인: MCP 도구 실행 시 Claude가 권한을 요청합니다
- 캐시 관리: 민감한 정보가 포함된 경우 캐시 디렉터리를 주기적으로 정리하세요
📄 라이선스
MIT License - 자세한 내용은 LICENSE 파일을 참조하세요.
🤝 기여하기
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📞 지원 및 문의
- Issues: GitHub Issues
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.