피드로 돌아가기
I Built AI-Powered Forms That Write Directly to Notion — Using MCP at Runtime
Dev.toDev.to
Backend

개발자가 Notion MCP를 Claude 런타임에 연결해 정적 필드 없이 AI 대화로 Notion 데이터베이스에 직접 기록하는 폼 서비스 구현

I Built AI-Powered Forms That Write Directly to Notion — Using MCP at Runtime

Emmanuel Ng'wandu2026년 3월 29일3intermediate

Context

기존 폼 서비스는 미리 정의된 정적 필드로 데이터를 수집했다. 사용자 응답이 모호하거나 불완전해도 추가 질문 없이 제출되는 한계가 있었다. 또한 폼 데이터를 Notion에 저장하려면 수동으로 API 래퍼 코드를 작성하거나 Zapier 같은 별도 서비스에 의존해야 했다.

Technical Solution

  • Notion MCP를 자체 호스팅(Railway)으로 배포: Claude가 런타임에 MCP 서버에 접근하도록 구성
  • Anthropic Claude API의 mcp_servers 파라미터로 Notion MCP 연결: mcp_toolset 타입으로 notion_create_page 도구 동적 발견
  • 시스템 프롬프트에 데이터베이스 ID와 수집 필드를 명시: Claude가 대화 흐름 중 수집 완료 시점을 판단해 자동으로 Notion에 페이지 생성
  • Claude 응답에서 mcp_tool_use / mcp_tool_result 블록 처리: 정규 도구 응답과 구분해 기록 작업 감지
  • TanStack Start + Appwrite + Claude를 조합: 폼 생성 단계에서 Claude와 대화해 필드 컨텍스트 자동 생성 후 공유 링크 발행

Key Takeaway

MCP를 애플리케이션 런타임에 직접 연결하면 AI 모델이 외부 시스템 API 결정을 자동화할 수 있다. 수동 API 글루 코드를 제거하고 AI에게 "언제" 작업을 수행할지 판단하는 권한을 부여하는 설계가 사용자 경험을 크게 단순화한다.


Notion이나 유사 구조화된 데이터 저장소를 사용하는 팀에서 MCP 서버를 자체 호스팅하고 Claude API 호출 시 `mcp_servers` 파라미터로 전달하면, 별도의 동기화 로직 없이 AI가 수집한 데이터를 데이터베이스에 직접 기록할 수 있다. 시스템 프롬프트에 스키마와 필드 설명을 포함하면 Claude는 대화 컨텍스트에서 필요한 정보 식별과 작성 시점을 자동으로 결정한다.

원문 읽기