博客生成器MCP
利用AI自动生成技术博客的MCP服务器。
______________________________________________________________________
快速入门
1.安装
npx blog-generator-mcp2.准备API密钥
- Gemini API密钥: 谷歌AI工作室发放
3.Claude桌面设置
~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"blog-generator": {
"command": "npx",
"args": ["-y", "blog-generator-mcp"],
"env": {
"GEMINI_API_KEY": "your-gemini-api-key",
"BLOG_SAVE_DIRECTORY": "./posts"
}
}
}
}环境变量说明:
| 环境变量 | 必需 | 说明 |
|---|---|---|
GEMINI_API_KEY | O | Gemini API密钥 |
BLOG_SAVE_DIRECTORY | X | 博客保存路径(默认:./posts) |
重新启动Claude Desktop,准备使用!
______________________________________________________________________
使用方法
默认工作流
1. blog_start_draft → 초안 생성 시작
2. blog_get_status → 완료 확인
3. blog_apply_feedback → (선택) 피드백 반영
4. blog_start_review → 검수 시작
5. blog_save → 파일 저장Pro Mode工作流(v4.1)
根据环境的不同,以不同的方式创建高质量博客:
Claude Desktop/Code环境:
Claude에게 직접 요청 → Claude가 코드 분석 + 블로그 작성 → blog_saveHTTP模式(服务器部署):
1. blog_start_draft_pro → Gemini 분석 → Claude API 작성
2. blog_get_status → 완료 확인
3. blog_apply_feedback_pro → (선택) 피드백 반영
4. blog_save → 파일 저장______________________________________________________________________
专业模式(v4.1)
Claude Desktop/Code环境
如果您使用Claude Desktop或Claude Code 不需要单独的Pro Mode工具。 请直接向正在对话的Claude请求:
User: "이 코드로 블로그 써줘"
User: ""
→ Claude가 직접 코드를 분석하고 블로그를 작성합니다.
→ blog_save로 저장하면 끝!优点:
- 无需API密钥(Gemini和Anthropic两者)
- 利用对话脉络自然写作
- 实时反馈
HTTP模式(服务器部署)
部署到HTTP服务器,供多个用户使用时使用Pro Mode工具。
体系结构:
┌─────────────────────────────────────────────────────────────┐
│ blog_start_draft_pro │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Gemini Pro │ ──────> │ Claude API │ │
│ │ (Researcher) │ 분석결과 │ (Writer) │ │
│ │ │ │ │ │
│ │ - code_diff │ │ - 분석 기반 │ │
│ │ - dev_log 분석 │ │ - 서사적 글쓰기 │ │
│ │ - 아키텍처 해석 │ │ - 인사이트 도출 │ │
│ └─────────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────────┘blog_start_draft_pro-Pro草拟(仅限HTTP模式)
必需参数:
{
"code_diff": "git diff 또는 변경된 코드"
}选择参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
dev_log | 开发人员的苦恼/备忘录/决策过程-- | |
request | 最优先约束条件(将此请求反映为最优先)-- | |
style | 文章风格 | deep-dive |
language | 语言 | ko |
instructions | 详细创作说明-- | |
gemini_api_key | Gemini API密钥(可由环境变量替换)-- | |
anthropic_api_key Anthropic API密钥(可由环境变量替换)-- |
blog_apply_feedback_pro-Pro反映反馈(仅限HTTP模式)
参数:
{
"task_id": "Pro 작업 ID",
"feedback": "수정 요청 사항"
}HTTP模式首选参数
在HTTP模式下使用Pro Mode需要Anthropic API密钥:
{
"mcpServers": {
"blog-generator": {
"command": "npx",
"args": ["-y", "blog-generator-mcp", "--http", "--port", "3000"],
"env": {
"GEMINI_API_KEY": "your-gemini-api-key",
"ANTHROPIC_API_KEY": "your-anthropic-api-key",
"BLOG_SAVE_DIRECTORY": "./posts"
}
}
}
}使用Pro Mode的示例(HTTP模式)
1. blog_start_draft_pro
- code_diff: ""
- dev_log: "기존 세션 기반에서 JWT로 전환. 보안 강화가 목표..."
- request: "보안 관점에서 왜 이 방식을 선택했는지 강조"
2. blog_get_status (완료 확인)
3. blog_apply_feedback_pro (선택)
- feedback: "코드 예제에 주석을 더 추가해줘"
4. blog_save
- directory: "./posts"______________________________________________________________________
工具详细指南
blog_start_draft-草拟
必需参数:
{
"input_type": "keyword",
"content": "React useEffect 훅 사용법",
"gemini_api_key": "YOUR_API_KEY"
}选择参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
style | 文章风格 | tutorial |
language | 语言 | ko |
model | Gemini型号 | gemini-1.5-flash |
instructions | 详细创作说明-- | |
custom_prompt | 简单的附加请求-- |
输入类型(input_type): 值用途示例 |----|------|------| | keyword |使用关键字生成文章|“React hooks”| | code |代码描述文章|代码片断| | memo |将注释扩展为文字|项目符号注释| | git_push |生成开发日志| git diff内容|
文字样式(style): 值说明 |----|------| | tutorial |分阶段教程| | til |今天我学到了| | deep-dive |深入分析| | troubleshooting |故障排除过程|
使用示例:
"React hooks에 대한 튜토리얼을 작성해줘"
→ blog_start_draft 호출:
- input_type: "keyword"
- content: "React hooks"
- style: "tutorial"
- gemini_api_key: "YOUR_KEY"______________________________________________________________________
blog_get_status-检查状态
参数:
{
"task_id": "작업 ID"
}示例响应:
{
"task_id": "abc-123",
"status": "completed",
"progress": 100,
"result": {
"draft": "# React Hooks 완벽 가이드\n...",
"metadata": {
"title": "React Hooks 완벽 가이드",
"tags": ["React", "Hooks", "JavaScript"],
"estimatedReadTime": "10분"
}
}
}状态值: 状态说明 |------|------| | pending |等待中| | in_progress |正在进行中| | completed |完成| | failed |失败|
______________________________________________________________________
blog_apply_feedback-反馈
参数:
{
"task_id": "작업 ID",
"feedback": "코드 예제를 더 추가해주세요",
"gemini_api_key": "YOUR_KEY"
}使用示例:
"코드 예제를 더 추가하고, 초보자도 이해할 수 있게 설명을 보충해줘"
→ blog_apply_feedback 호출:
- task_id: "이전 작업 ID"
- feedback: "코드 예제를 더 추가하고, 초보자도 이해할 수 있게 설명을 보충해주세요"______________________________________________________________________
blog_start_review-验收
参数:
{
"task_id": "초안 작업 ID",
"focus": "all",
"gemini_api_key": "YOUR_KEY"
}验收焦点(focus): 值说明 |----|------| | accuracy |技术准确性| | readability |可读性| | seo SEO优化 | all |全面验收(默认)|
______________________________________________________________________
blog_save-保存文件
参数:
{
"task_id": "작업 ID",
"directory": "./posts"
}结果:
{
"filepath": "./posts/2024-01-15-react-hooks-완벽-가이드.md"
}______________________________________________________________________
blog_deploy_github-GitHub部署
参数:
{
"task_id": "작업 ID",
"repo": "username/blog",
"target_path": "_posts/2024-01-15-react-hooks.md",
"github_token": "YOUR_GITHUB_TOKEN"
}______________________________________________________________________
使用详细说明(instructions)
instructions 参数或 instructions_file通过指定标记为的文件路径,可以指定AI应遵循的详细创建规则。
作为文件进行管理
blog_start_draft 호출:
- input_type: "keyword"
- content: "Kubernetes 배포 전략"
- instructions_file: "./my-style-guide.md"如果两者都提供,则会合并:
- instructions_file: "./my-style-guide.md" // 기본 스타일 가이드
- instructions: "이번 글은 특히 보안에 집중해줘" // 추가 요청→文件内容+参数内容合并应用。
示例:公司博客风格指南
blog_start_draft 호출:
- input_type: "keyword"
- content: "Kubernetes 배포 전략"
- instructions: |
## 작성 스타일
- 경어체 사용 (~합니다, ~입니다)
- 문장은 짧고 명확하게
- 한 단락은 3-4문장 이내
## 필수 포함 섹션
1. 개요 (왜 이 주제가 중요한지)
2. 핵심 개념 설명
3. 실습 예제 (복사해서 바로 실행 가능)
4. 주의사항 및 팁
5. 마무리 및 다음 단계
## 코드 스타일
- 모든 코드 블록에 언어 명시
- 주석은 한국어로
- 실제 동작하는 완전한 예제 제공
## 타겟 독자
- 백엔드 개발 경력 1-3년차
- Docker 기본 지식 보유
- Kubernetes 입문자
## 금지 사항
- "쉽습니다", "간단합니다" 등의 표현 금지
- 불필요한 영어 표현 자제示例:TIL样式
instructions: |
## 형식
- 날짜와 제목으로 시작
- 배운 내용을 불릿포인트로 정리
- 실제 코드나 명령어 포함
## 톤
- 개인적이고 솔직한 톤
- 시행착오 과정도 포함
- 다음에 더 알아볼 것 메모______________________________________________________________________
型号选择指南
| 型号 | 用途 | 特点 |
|---|---|---|
gemini-1.5-flash | 一般用途(默认) | 快速响应,经济实惠 |
gemini-1.5-flash-8b | 简单操作 | 最快 |
gemini-1.5-pro | 需要高质量 | 复杂的主题,长文章 |
gemini-2.0-flash | 最新功能 | 最新型号 |
推荐:
- 一般博客文章:
gemini-1.5-flash - 技术深入分析:
gemini-1.5-pro - 短TIL:
gemini-1.5-flash-8b
______________________________________________________________________
实战示例
示例1:编写教程
User: "Next.js App Router에 대한 튜토리얼을 작성해줘"
1. blog_start_draft
- input_type: "keyword"
- content: "Next.js App Router"
- style: "tutorial"
- model: "gemini-1.5-pro"
- gemini_api_key: "..."
2. blog_get_status (완료 확인)
3. blog_apply_feedback
- feedback: "서버 컴포넌트와 클라이언트 컴포넌트 차이를 더 자세히 설명해줘"
4. blog_start_review
- focus: "accuracy"
5. blog_save
- directory: "./content/posts"示例2:自动生成开发日志
User: "오늘 커밋 내용으로 개발일지 써줘"
1. blog_start_draft
- input_type: "git_push"
- content: "
- style: "til"
- gemini_api_key: "..."
2. blog_get_status → blog_save示例3:代码描述博客
User: "이 코드를 설명하는 블로그 글을 작성해줘"
1. blog_start_draft
- input_type: "code"
- content: ""
- style: "deep-dive"
- instructions: "코드의 동작 원리를 시각적으로 설명하고, 성능 관점에서 분석해줘"______________________________________________________________________
HTTP服务器模式
可以部署为多个用户共享的服务器。
# HTTP 서버 시작
npx blog-generator-mcp --http --port 3000
# 헬스 체크
curl http://localhost:3000/health
# MCP 요청
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'______________________________________________________________________
故障排除
“需要Gemini API密钥”
→ gemini_api_key 验证是否已将API密钥传递给参数
“找不到任务”
→ task_id确认是否正确。重新启动服务器时保留以前的操作
“找不到型号”
→确认支持的型号: gemini-1.5-flash, gemini-1.5-pro 灯
响应缓慢
→ gemini-1.5-flash 但是。 gemini-1.5-flash-8b 使用
______________________________________________________________________
许可证
麻省理工学院
