DevLog MCP
by odddman44
README.md
# DevLog MCP
Codex, Claude Code 같은 AI 코딩 에이전트가 작성한 개발 일지를 기존 Notion Blog DB에 발행하는 stdio MCP 서버다. 에이전트가 회고와 본문 작성을 담당하고, 이 서버는 입력 검증과 Notion 저장만 담당한다.
## 요구 사항
- Node.js 20 이상
- 기존 Notion Blog Database
- Database에 연결된 Notion Integration
## 설치와 빌드
```bash
npm install
npm test
npm run build
```
개발 중 직접 실행할 때는 환경 변수를 현재 셸에 설정한다. 이 프로젝트는 `.env` 파일을 자동으로 읽지 않는다.
```bash
export NOTION_TOKEN="secret_..."
export NOTION_DATABASE_ID="..."
npm run dev
```
stdio 서버는 MCP 클라이언트와 JSON-RPC로 통신하므로 터미널에서 실행했을 때 일반적인 안내 문구가 출력되지 않는다.
## Notion 설정
1. Notion의 Integrations 화면에서 Internal Integration을 만든다.
2. Integration token을 `NOTION_TOKEN`으로 사용한다.
3. 기존 Blog Database의 연결 메뉴에서 해당 Integration을 추가한다.
4. Database URL에서 Database ID를 찾아 `NOTION_DATABASE_ID`로 사용한다.
Database 속성 이름과 타입은 다음과 같아야 한다.
| 속성 | Notion 타입 | 기본값 |
| --- | --- | --- |
| `Title` | Title | 필수 입력 |
| `Category` | Select | `개발` |
| `Tags` | Multi-select | 빈 목록 |
| `PublishedAt` | Date | 현재 날짜 |
| `Status` | Status | `published` |
기존 Database의 Select, Multi-select, Status 옵션에 전달한 이름이 없으면 Notion 권한과 설정에 따라 옵션 생성이 제한될 수 있다.
## MCP 도구
서버는 `publish_dev_log` 도구 하나를 제공한다.
```ts
type PublishDevLogInput = {
title: string;
category?: string;
tags?: string[];
publishedAt?: string;
status?: "published" | "draft";
content: string;
};
```
본문에서 지원하는 Markdown은 제목 1~3, 문단, 순서/비순서 목록, fenced code block, 구분선이다.
호출 입력 예시는 다음과 같다.
```json
{
"title": "DevLog MCP 첫 구현",
"tags": ["MCP", "Notion", "TypeScript"],
"content": "# 오늘의 작업\nNotion 발행 도구를 구현했다.\n\n## 결정\n- MCP는 저장만 담당한다.\n- 회고 작성은 코딩 에이전트가 담당한다."
}
```
## Codex 연결
먼저 절대 경로 기준으로 빌드 결과를 등록한다.
```bash
codex mcp add devlog-mcp \
--env NOTION_TOKEN=secret_... \
--env NOTION_DATABASE_ID=... \
-- node /Users/oddd/workspace/notion/devlog-mcp/dist/index.js
```
등록 상태는 다음 명령으로 확인한다.
```bash
codex mcp list
```
## Claude Code 연결
프로젝트 범위 MCP 서버로 등록한다.
```bash
claude mcp add -s project devlog-mcp \
-e NOTION_TOKEN=secret_... \
-e NOTION_DATABASE_ID=... \
-- node /Users/oddd/workspace/notion/devlog-mcp/dist/index.js
```
등록 상태는 다음 명령으로 확인한다.
```bash
claude mcp list
```
연결 후 에이전트에게 `오늘 개발한 내용을 일지로 정리하고 publish_dev_log로 발행해줘`라고 요청할 수 있다.
# devlog-mcp
TDQS
B3.4/5.0
Scored across 1 tool
Disambiguation5/5
With only one tool, there is no possibility of confusion. The tool's purpose is entirely distinct by default.
Naming Consistency5/5
A single tool cannot violate any naming pattern. The name 'publish_dev_log' follows a clear verb_noun convention.
Tool Count3/5
A single tool for a server named 'DevLog MCP' feels thin. While it may serve a specific publishing need, the scope suggests more tools would be expected for full log management.
Completeness2/5
The tool only covers publishing completed logs. Missing basic operations like create, list, update, or delete dev logs, which are likely needed for a complete workflow.
Maintenance
ActivitySlowing
ResponsivenessNo issues