WJ

wyattjoh/jmap-mcp

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

178 stars 32 forks 품질 75 트렌드 31MIT

wyattjoh/jmap-mcp는 [[T0]에서 가져온 MCP 서버 후보입니다.

개요

wyattjoh/jmap-mcp는 [[T0]에서 가져온 MCP 서버 후보입니다.

개요(AI 번역)

기능적인 JMAP 이메일 클라이언트와 모델 컨텍스트를 포함하는 Deno 작업 공간 프로토콜(MCP) 서버는 그 위에 구축되었습니다. 클라이언트 패키지는 JMAP 프로토콜 접근을 위한 jmap-jam; MCP 패키지는 이러한 타입 연산을 도구로 변환합니다.

특징

이메일 관리 도구

  • 이메일 검색: 텍스트 쿼리, 발신자/수신자 필터가 포함된 이메일 검색, 날짜 범위와 키워드. 모든 필터는 AND로 묶여 있습니다.
  • 이메일 받기: 설정 가능한 속성을 가진 ID별 이메일 검색 선발
  • 스레드 가져오기: 이메일 스레드 검색 (대화 체인)
  • 이메일 표시: 이메일을 읽음/읽지 않음, 플래그됨/해제 표시
  • 이메일 이동: 이메일을 한 메일박스로 이동
  • 이메일 메일박스 패치: 선택된 메일박스 멤버십을 추가하거나 제거할 수 있습니다. 미지정 회원 보존
  • 이메일 삭제: 이메일을 영구 삭제합니다

우편함 관리

  • Get Mailboxes: 계층 구조 지원이 있는 모든 메일박스/폴더를 나열하세요. 이 기능을 사용하세요 다른 도구들이 필요로 하는 메일박스 ID를 찾기 위해서입니다.

점진적 동기화

  • 이메일 변경 받기: 이후 생성, 업데이트 또는 파기된 이메일의 ID를 받기 이전 상태 (주 기반 델타 추적)

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

README

원문 README의 일부입니다. 원문 보기.

JMAP MCP Server

A Deno workspace containing a functional JMAP email client and a Model Context Protocol (MCP) server built on top of it. The client package uses jmap-jam for JMAP protocol access; the MCP package adapts those typed operations into tools.

Features

Email Management Tools

  • Search Emails: Search emails with text queries, sender/recipient filters, date ranges, and keywords. All filters are AND’d together.
  • Get Emails: Retrieve specific emails by ID with configurable property selection
  • Get Threads: Retrieve email threads (conversation chains)
  • Mark Emails: Mark emails as read/unread, flagged/unflagged
  • Move Emails: Move emails to one mailbox
  • Patch Email Mailboxes: Add or remove selected mailbox memberships while preserving unspecified memberships
  • Delete Emails: Delete emails permanently

Mailbox Management

  • Get Mailboxes: List all mailboxes/folders with hierarchy support. Use this to find mailbox IDs needed by other tools.

Incremental Sync

  • Get Email Changes: Get IDs of emails created, updated, or destroyed since a previous state (state-based delta tracking)
  • Get Search Updates: Get additions/removals within a previous search query since its last queryState

Email Composition

  • Send Email: Compose and send new emails with support for plain text and HTML
  • Reply to Email: Reply to existing emails with automatic header handling and reply-all support

Key Capabilities

  • Full JMAP RFC 8620/8621 compliance via jmap-jam
  • Comprehensive input validation with Zod schemas
  • Pagination support for all list operations
  • State-based incremental sync for efficient polling
  • Rich error handling and connection management
  • Capability-based tool registration (read-only, submission)
  • TypeScript support with strong typing

Reusable JMAP Client

Standalone applications can import @wyattjoh/jmap without creating an MCP server or transport:

import { connectJmap, searchEmails } from "jsr:@wyattjoh/jmap";

const connection = await connectJmap({
  sessionUrl: Deno.env.get("JMAP_SESSION_URL")!,
  bearerToken: Deno.env.get("JMAP_BEARER_TOKEN")!,
  accountId: Deno.env.get("JMAP_ACCOUNT_ID"),
});

const unread = await searchEmails(connection, {
  filter: { inMailbox: "inbox-id", notKeyword: "$seen" },
  limit: 50,
  position: 0,
});

See packages/jmap/README.md for the client package.

Installation

Install via the plugin marketplace:

GitHub에서 전체 README 보기

설치

This server does not publish a one-line install command.

Open the repository installation guide MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →

설정

{ "mcpServers": { "jmap": { "type": "stdio", "command": "deno", "args": [ "run", "--allow-net=api.fastmail.com", "--allow-env=JMAP_SESSION_URL,JMAP_BEARER_TOKEN,JMAP_ACCOUNT_ID", "jsr:@wyattjoh/[email protected]" ], "env": { "JMAP_SESSION_URL": "https://api.fastmail.com/jmap/session", "JMAP_BEARER_TOKEN": "YOUR_API_TOKEN" } } } }