DevLog MCP
DevLog MCP
Codex, Claude Code 같은 AI 코딩 에이전트가 작성한 개발 일지를 기존 Notion Blog DB에 발행하는 stdio MCP 서버다. 에이전트가 회고와 본문 작성을 담당하고, 이 서버는 입력 검증과 Notion 저장만 담당한다.
요구 사항
Node.js 20 이상
기존 Notion Blog Database
Database에 연결된 Notion Integration
Related MCP server: Notion MCP Server
설치와 빌드
npm install
npm test
npm run build개발 중 직접 실행할 때는 환경 변수를 현재 셸에 설정한다. 이 프로젝트는 .env 파일을 자동으로 읽지 않는다.
export NOTION_TOKEN="secret_..."
export NOTION_DATABASE_ID="..."
npm run devstdio 서버는 MCP 클라이언트와 JSON-RPC로 통신하므로 터미널에서 실행했을 때 일반적인 안내 문구가 출력되지 않는다.
Notion 설정
Notion의 Integrations 화면에서 Internal Integration을 만든다.
Integration token을
NOTION_TOKEN으로 사용한다.기존 Blog Database의 연결 메뉴에서 해당 Integration을 추가한다.
Database URL에서 Database ID를 찾아
NOTION_DATABASE_ID로 사용한다.
Database 속성 이름과 타입은 다음과 같아야 한다.
속성 | Notion 타입 | 기본값 |
| Title | 필수 입력 |
| Select |
|
| Multi-select | 빈 목록 |
| Date | 현재 날짜 |
| Status |
|
기존 Database의 Select, Multi-select, Status 옵션에 전달한 이름이 없으면 Notion 권한과 설정에 따라 옵션 생성이 제한될 수 있다.
MCP 도구
서버는 publish_dev_log 도구 하나를 제공한다.
type PublishDevLogInput = {
title: string;
category?: string;
tags?: string[];
publishedAt?: string;
status?: "published" | "draft";
content: string;
};본문에서 지원하는 Markdown은 제목 1~3, 문단, 순서/비순서 목록, fenced code block, 구분선이다.
호출 입력 예시는 다음과 같다.
{
"title": "DevLog MCP 첫 구현",
"tags": ["MCP", "Notion", "TypeScript"],
"content": "# 오늘의 작업\nNotion 발행 도구를 구현했다.\n\n## 결정\n- MCP는 저장만 담당한다.\n- 회고 작성은 코딩 에이전트가 담당한다."
}Codex 연결
먼저 절대 경로 기준으로 빌드 결과를 등록한다.
codex mcp add devlog-mcp \
--env NOTION_TOKEN=secret_... \
--env NOTION_DATABASE_ID=... \
-- node /Users/oddd/workspace/notion/devlog-mcp/dist/index.js등록 상태는 다음 명령으로 확인한다.
codex mcp listClaude Code 연결
프로젝트 범위 MCP 서버로 등록한다.
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등록 상태는 다음 명령으로 확인한다.
claude mcp list연결 후 에이전트에게 오늘 개발한 내용을 일지로 정리하고 publish_dev_log로 발행해줘라고 요청할 수 있다.
devlog-mcp
Available Tools
1 toolpublish_dev_log개발 일지 발행B
완성된 개발 일지를 기존 Notion Blog DB에 발행합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | 글 내용을 나타내는 태그 | |
| title | Yes | 개발 일지 제목 | |
| status | No | 발행 상태 | |
| content | Yes | Markdown 형식의 개발 일지 본문 | |
| category | No | 카테고리. 기본값은 개발 | |
| publishedAt | No | 발행일. YYYY-MM-DD 형식 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the action (publish to DB) without mentioning idempotency, overwriting behavior, authentication needs, error conditions, or any side effects. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core action and target. Every word is meaningful, and there is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, and the presence of 6 parameters including an enum, the description does not provide enough context. It omits return values, error behavior, status effects, and operational prerequisites, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning to any parameter beyond what the schema already provides (e.g., format hints, defaults, or usage context).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states the verb 'publishes' and the resource 'completed development log' to the 'existing Notion Blog DB'. It is clear what the tool does, but with no sibling tools, differentiation is not applicable, so it scores 4 per rubric.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes '완성된' (completed), which implies the tool should be used when the development log is finished. However, it provides no explicit when-not-to-use instructions, prerequisites, or alternative tools, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
publish_dev_log
TDQS
Scored across 1 tool
With only one tool, there is no possibility of confusion. The tool's purpose is entirely distinct by default.
A single tool cannot violate any naming pattern. The name 'publish_dev_log' follows a clear verb_noun convention.
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.
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
Related MCP Connectors
Publish to self-hosted WordPress from AI agents: markdown, images, SEO, and Notion sync.
Create, manage, publish, and analyze Inblog content through AI agents.
Instant blogs for AI agents: a publishing CMS with no dashboard. One signup call returns a blog, an API key and a live URL; then publish markdown posts and get public URLs back.
Database for your AI agent. Turn its output into data, docs, skills, and apps you can actually use.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Language Models to interact with Notion workspaces through standardized tools for searching, reading, creating, and updating pages and databases.119MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Notion workspaces through the Notion API, allowing them to search, read, create, update pages and databases, and manage comments using natural language commands.168,517 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to save and manage question-and-answer pairs within a structured Notion database. It provides tools for database setup, entry creation, and querying existing conversation history.2 npm1MIT
- AlicenseAqualityAmaintenanceEnables AI coding agents to store and retrieve durable project decisions, conventions, environment notes, and bug fixes in Notion, with optional Obsidian Vault dual-write.620 npmMIT