novel-mart-mcp
v1.3.1
Published
Novel Mart MCP Server - AI로 작성한 소설을 Novel Mart에 업로드
Maintainers
Readme
Novel Mart MCP Server
AI로 작성한 소설을 Novel Mart에 업로드하는 MCP 서버입니다.
💡 TIP: MCP를 설치하지 않아도 Cursor/VSCode의 AI Chat에서 바로 명령어를 던져 사용할 수 있습니다!
📋 목차
🚀 빠른 시작 (설치 없이 사용)
Cursor나 VSCode에서 별도 설치 없이 바로 사용하는 방법입니다.
1단계: PAT 토큰 발급
- 웹사이트 접속: https://proposal-mart.vercel.app
- 로그인: Google 또는 Kakao 계정으로 로그인
- 토큰 발급:
- 우측 상단 프로필 클릭 → Settings 선택
- 왼쪽 메뉴에서 API 토큰 선택
- 새 토큰 생성 버튼 클릭
- 토큰 이름 입력 (예: "Cursor AI", "VSCode MCP")
- 생성 버튼 클릭
- ⚠️ 중요: 생성된 토큰을 복사하여 안전한 곳에 보관 (재확인 불가!)
2단계: Chat에서 바로 명령어 사용
Cursor에서 사용
- Cursor 열기 (Cmd+L 또는 Ctrl+L)
- 명령어 입력:
노벨마트에 이 소설 업로드해줘
제목: 별빛 아래의 약속
장르: 로맨스
내용:
[여기에 소설 내용 붙여넣기]- AI가 자동으로:
- Novel Mart API 호출
- 소설 구조화 및 업로드
- 결과 URL 제공
VSCode (GitHub Copilot Chat)에서 사용
- Copilot Chat 열기 (Cmd+I 또는 Ctrl+I)
- 명령어 입력:
@workspace 노벨마트에 소설 올려줘
제목: 판타지 모험기
장르: FANTASY
[소설 내용]🔑 PAT 토큰 발급
온라인 (프로덕션)
URL: https://proposal-mart.vercel.app
- 로그인
- Settings → API 토큰
- 새 토큰 생성
- 토큰 복사 (한 번만 표시됨!)
로컬 개발
로컬에서 개발 서버를 실행 중인 경우:
# 프로젝트 디렉토리에서
pnpm dev- 브라우저에서 http://localhost:3010 접속
- 로그인
- Settings → Tokens → 새 토큰 생성
- 토큰 복사
토큰 형식: pat_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
💻 Cursor IDE 설정
방법 1: GUI 설정 (추천)
- Cursor 열기
- Settings 열기:
- Mac:
Cmd+, - Windows/Linux:
Ctrl+,
- Mac:
- "MCP" 검색
- MCP Settings 편집 클릭
- 다음 내용 추가:
{
"mcpServers": {
"novel-mart": {
"command": "npx",
"args": ["novel-mart-mcp"],
"env": {
"NOVEL_MART_TOKEN": "pat_여기에_발급받은_토큰_붙여넣기"
}
}
}
}💡 참고: Cursor는 "type": "stdio" 없이도 작동합니다. VSCode와 다른 형식입니다!
방법 2: 파일 직접 수정
설정 파일 위치:
- Mac:
~/.cursor/mcp.json - Windows:
%APPDATA%\Cursor\mcp.json - Linux:
~/.config/Cursor/mcp.json
# Mac/Linux
code ~/.cursor/mcp.json
# Windows (PowerShell)
notepad $env:APPDATA\Cursor\mcp.json설정 내용:
{
"mcpServers": {
"novel-mart": {
"command": "npx",
"args": ["novel-mart-mcp"],
"env": {
"NOVEL_MART_TOKEN": "pat_84b81048823d1b210242c3b1a0ab44d73a2c061e3f4498831af9659d268a96ea"
}
}
}
}로컬 개발 서버 연결 (선택)
로컬 서버를 사용하려면 NOVEL_MART_URL 추가:
{
"mcpServers": {
"novel-mart": {
"command": "npx",
"args": ["novel-mart-mcp"],
"env": {
"NOVEL_MART_TOKEN": "pat_your_token",
"NOVEL_MART_URL": "http://localhost:3010"
}
}
}
}3. Cursor 재시작
설정 저장 후 Cursor를 완전히 종료하고 다시 실행합니다.
🔧 VSCode 설정
전제 조건
- Node.js 18 이상 설치 필요
- GitHub Copilot 확장 설치
설정 파일 생성
프로젝트 루트에 .vscode/mcp.json 파일 생성:
# 프로젝트 루트에서
mkdir -p .vscode
touch .vscode/mcp.json내용:
{
"servers": {
"novel-mart": {
"type": "stdio",
"command": "npx",
"args": ["novel-mart-mcp"],
"env": {
"NOVEL_MART_TOKEN": "pat_여기에_발급받은_토큰_붙여넣기"
}
}
}
}⚠️ 중요: VSCode에서는 "type": "stdio" 설정이 필수입니다! 이 설정이 없으면 MCP가 작동하지 않습니다.
VSCode 재시작
Cmd+Shift+P (또는 Ctrl+Shift+P) → "Reload Window" 선택
🖥️ Claude Desktop 설정
Mac
설정 파일 위치: ~/Library/Application Support/Claude/claude_desktop_config.json
# 파일 열기
code ~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindows
설정 파일 위치: %APPDATA%\Claude\claude_desktop_config.json
# 파일 열기
notepad $env:APPDATA\Claude\claude_desktop_config.json설정 내용
{
"mcpServers": {
"novel-mart": {
"command": "npx",
"args": ["novel-mart-mcp"],
"env": {
"NOVEL_MART_TOKEN": "pat_your_token_here"
}
}
}
}Claude Desktop 재시작
설정 저장 후 Claude Desktop을 완전히 종료하고 다시 실행합니다.
📝 사용 방법
기본 명령어
Novel Mart MCP는 자연어 명령으로 작동합니다. 다음 키워드를 포함하면 자동 인식됩니다:
트리거 키워드:
- 한글:
노벨마트,소설마트,Novel Mart - 영문:
novelmart,NovelMart - 약어:
NM
1️⃣ 소설 업로드
새 소설 생성
노벨마트에 이 소설 올려줘
제목: 마법사의 모험
장르: FANTASY
설명: 평범한 소년이 마법사가 되는 이야기
제1장: 시작
[내용...]
제2장: 여정
[내용...]AI가 자동으로:
- 제목, 장르 인식
- 장 구조 파싱
- Novel Mart에 업로드
- 결과 URL 제공
마크다운 파일에서 업로드
노벨마트에 novel.md 파일을 판타지 소설로 올려줘AI가 파일을 읽고 자동으로 소설로 변환하여 업로드합니다.
2️⃣ 기존 소설에 장 추가
노벨마트 "마법사의 모험"에 3장 추가해줘
제3장: 전투
[내용...]3️⃣ 내 소설 목록 보기
노벨마트 내 소설 목록 보여줘출력 예시:
📚 내 소설 목록 (3개)
1. **마법사의 모험**
상태: DRAFT | 5화 | 12,345자
조회: 0 | 좋아요: 0
ID: cmkdjdtu40000cjq66yqt0sbs
https://proposal-mart.vercel.app/novel/cmkdjdtu40000...
2. **별빛 아래의 약속**
...4️⃣ 포인트 확인
노벨마트 포인트 얼마야?또는
NM 내 포인트 확인해줘출력:
💰 포인트 잔액: 1,035P
👤 사용자: Mike Choi
💡 포인트는 Proposal Mart와 공유됩니다.5️⃣ 소설 검색
노벨마트에서 "판타지" 검색해줘내 서재에서 제목에 "판타지"가 포함된 소설을 검색합니다.
🎯 고급 기능
novelmart_write (스마트 업로드)
제목 기반으로 자동으로 소설을 찾아 처리하는 고급 기능입니다.
동작 방식
- 제목으로 검색:
- 내 서재(DRAFT)에서 동일 제목 검색
- 결과에 따른 동작:
- 0개: 새 소설 생성 + 제1장 추가
- 1개: 해당 소설에 새 장 추가
- 2개 이상: 목록 표시 (novelId 선택 요청)
사용 예시
노벨마트에 "내 소설" 제목으로 이 내용 저장해줘
[소설 내용]첫 실행 시 → 새 소설 생성
두 번째 실행 시 → 기존 소설에 장 추가
특정 장 번호 지정
노벨마트 "내 소설" 2장에 이 내용으로 업데이트해줘
[새 내용]→ 2장의 내용이 새 내용으로 교체됩니다.
🔄 기존 소설 수정 워크플로우 ⭐ 중요!
소설을 한 번 올린 후 수정하고 싶을 때 사용하는 패턴입니다.
트리거 키워드: "수정해줘", "고쳐줘", "업데이트해줘", "변경해줘"
전체 수정 (모든 장 업데이트)
"수정해줘"만 요청하면, 제목이 같은 소설을 찾아 1장부터 모든 장을 순차적으로 업데이트합니다.
노벨마트 "나의 소설" 수정해줘
[수정된 1장 내용]
---
[수정된 2장 내용]
---
[새로운 3장 내용 - 기존에 없던 장]LLM 동작 방식:
1회: novelmart_write(title="나의 소설", chapterNumber=1, content="수정된 1장")
2회: novelmart_write(title="나의 소설", chapterNumber=2, content="수정된 2장")
3회: novelmart_write(title="나의 소설", content="새로운 3장") ← 자동으로 다음 번호 할당특정 장만 수정
"N장만 수정해줘"라고 요청하면 해당 장만 업데이트하고 다른 장은 그대로 유지합니다.
노벨마트 "나의 소설" 3장만 수정해줘
[수정된 3장 내용]LLM 동작 방식:
1회: novelmart_write(title="나의 소설", chapterNumber=3, content="수정된 3장")
→ 1장, 2장은 그대로 유지장르 코드
| 코드 | 설명 | 예시 |
|------|------|------|
| ROMANCE | 로맨스 | 연애, 사랑 이야기 |
| FANTASY | 판타지 | 마법, 이세계 |
| SF | SF | 우주, 미래 |
| MYSTERY | 미스터리 | 추리, 탐정 |
| THRILLER | 스릴러 | 긴장감, 서스펜스 |
| DRAMA | 드라마 | 일상, 성장 |
| COMEDY | 코미디 | 유머, 웃음 |
| OTHER | 기타 | 분류하기 어려운 장르 |
| NONE | 미선택 | 장르 미지정 |
환경 변수
| 변수 | 필수 | 기본값 | 설명 |
|------|------|--------|------|
| NOVEL_MART_TOKEN | ✅ | - | Personal Access Token |
| NOVEL_MART_URL | ❌ | https://proposal-mart.vercel.app | API 기본 URL |
로컬 개발 시:
{
"env": {
"NOVEL_MART_TOKEN": "pat_xxx",
"NOVEL_MART_URL": "http://localhost:3010"
}
}⚠️ 제한사항
대량 업로드 제한 ⭐ 중요!
novelmart_upload: 최대 1장까지만 업로드 가능- 2장 이상:
novelmart_write를 사용하여 한 장씩 추가
이유: LLM이 여러 장을 한 번에 처리하면 컨텍스트 제한 초과 및 에러 발생
올바른 워크플로우:
5장짜리 소설 업로드 방법:
Step 1: novelmart_upload로 제목 + 1장
Step 2: novelmart_write로 2장 추가
Step 3: novelmart_write로 3장 추가
Step 4: novelmart_write로 4장 추가
Step 5: novelmart_write로 5장 추가장당 글자 수
- 최대: 20,000자
- 권장: 5,000~10,000자 (가독성)
장당 글자 수가 너무 많으면 읽기 힘들 수 있으니, 적절히 나누는 것을 권장합니다.
수정 제한
- DRAFT (초안): ✅ 언제든 수정 가능
- PUBLIC (공개): ❌ 수정 불가
- PAID (유료): ❌ 수정 불가
발행 후에는 수정할 수 없으니, 충분히 검토 후 발행하세요!
성인 콘텐츠
19세 이상 콘텐츠는 반드시 isAdult: true 태그를 설정해야 합니다:
노벨마트에 성인 소설 올려줘 (19+)
제목: ...💰 포인트 시스템
공유 포인트
Novel Mart와 Proposal Mart는 같은 PMPoint를 사용합니다.
Proposal Mart ←→ PMPoint ←→ Novel Mart
(공유) (공유)포인트 사용
| 작업 | 비용 | |------|------| | 소설 업로드 | 무료 | | 소설 열람 (PUBLIC) | 무료 | | 소설 구매 (PAID) | 작가가 설정한 가격 |
포인트 획득
| 방법 | 보상 | |------|------| | 회원가입 | +1,000P | | 출석 체크 | +50P/일 (7일 연속 보너스) | | 광고 시청 | +10P/회 (하루 10회) | | 미니게임 | 5~20P (하루 5회) | | 소설 판매 | 판매가의 50% | | 프로포잘 판매 | 판매가의 50% |
🐛 트러블슈팅
1. "Unauthorized" 오류
증상:
❌ 오류: 인증 실패: 토큰이 만료되었거나 유효하지 않습니다.해결 방법:
- 토큰 확인:
- https://proposal-mart.vercel.app
- Settings → API 토큰
- 토큰 목록에서 "마지막 사용" 확인
- 새 토큰 발급:
- 기존 토큰 삭제
- 새 토큰 생성
- 설정 파일에 새 토큰 입력
- IDE 재시작:
- Cursor/VSCode 완전 종료 후 재실행
2. MCP 서버가 인식되지 않음
증상:
- 명령어 입력 시 아무 반응 없음
- "Unknown tool" 오류
해결 방법:
Cursor
# 1. 설정 파일 확인
cat ~/.cursor/mcp.json
# 2. 설정이 없으면 생성
mkdir -p ~/.cursor
cat > ~/.cursor/mcp.json << 'EOF'
{
"mcpServers": {
"novel-mart": {
"command": "npx",
"args": ["novel-mart-mcp"],
"env": {
"NOVEL_MART_TOKEN": "pat_your_token"
}
}
}
}
EOF
# 3. Cursor 재시작VSCode
# 프로젝트 루트에 설정 파일 생성
mkdir -p .vscode
cat > .vscode/mcp.json << 'EOF'
{
"servers": {
"novel-mart": {
"command": "npx",
"args": ["novel-mart-mcp"],
"env": {
"NOVEL_MART_TOKEN": "pat_your_token"
}
}
}
}
EOF3. npx 명령어 오류
증상:
command not found: npx해결 방법:
- Node.js 설치 확인:
node --version # v18 이상 필요
npm --versionNode.js 설치 (없는 경우):
- Mac:
brew install node - Windows: https://nodejs.org 에서 다운로드
- Linux:
sudo apt install nodejs npm
- Mac:
설정 파일 수정 (글로벌 설치):
# 글로벌 설치
npm install -g novel-mart-mcp
# 설정 파일에서 command 변경
{
"command": "novel-mart-mcp", # npx 제거
"args": []
}4. "장당 20,000자 초과" 오류
증상:
❌ 오류: 장 내용이 20,000자를 초과합니다.해결 방법:
- 장을 나누기:
너무 긴 장을 2-3개로 나눠서 올려줘- 자동 분할 요청:
이 소설을 적절한 길이로 자동 분할해서 노벨마트에 올려줘5. 연결 오류
증상:
❌ 오류: fetch failed해결 방법:
- 인터넷 연결 확인
- 서버 상태 확인:
- https://proposal-mart.vercel.app 접속 테스트
- 로컬 서버 사용 중인 경우:
# 개발 서버 실행 확인
pnpm dev
# 브라우저에서 http://localhost:3010 접속 테스트📚 실전 예제
예제 1: 처음 소설 올리기
노벨마트에 판타지 소설 올려줘
제목: 드래곤 슬레이어
장르: FANTASY
설명: 평범한 대장장이가 전설의 용사가 되는 이야기
제1장 - 시작
옛날 옛적, 작은 마을에 한 대장장이 소년이 살았습니다.
그의 이름은 에이든...
[계속...]
제2장 - 여정
어느 날, 마을에 용이 나타났습니다...
[계속...]예제 2: 기존 소설에 이어쓰기
노벨마트 "드래곤 슬레이어"에 3장 추가해줘
제3장 - 시련
에이든은 험난한 산을 넘어야 했습니다...
[내용...]예제 3: 파일에서 소설 업로드
@novel.md 파일 내용을 노벨마트에 로맨스 소설로 올려줘
제목은 "봄날의 편지"로 해줘예제 4: 소설 현황 파악
노벨마트에 올린 소설들 현황 정리해줘AI가 자동으로:
- 소설 목록 조회
- 조회수, 좋아요 통계
- 판매 수익 정보
- 마크다운 표로 정리
📋 IDE별 설정 차이
MCP 설정은 IDE마다 형식이 다릅니다:
| IDE | 키 | type | 파일 위치 |
|-----|-----|------|-----------|
| Cursor | mcpServers | ❌ 불필요 | ~/.cursor/mcp.json |
| VSCode | servers | ✅ 필수 ("stdio") | .vscode/mcp.json (프로젝트 루트) |
| Claude Desktop | mcpServers | ❌ 불필요 | ~/Library/Application Support/Claude/... |
예시 비교:
// Cursor / Claude Desktop
{
"mcpServers": {
"novel-mart": {
"command": "npx",
...
}
}
}
// VSCode (주의!)
{
"servers": {
"novel-mart": {
"type": "stdio", // 필수!
"command": "npx",
...
}
}
}🔗 관련 링크
| 링크 | 설명 | |------|------| | Proposal Mart | 메인 웹사이트 | | Novel Mart | 소설 마켓플레이스 | | 가이드 | 전체 가이드 | | GitHub | 소스 코드 |
💬 지원
문제가 해결되지 않으면:
- GitHub Issues: https://github.com/Mike-kor/proposal-mart/issues
- 이메일: [email protected]
📄 라이선스
MIT License
Made with ❤️ by Proposal Mart Team
