Skip to main content
Glama
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