WJ

wyattjoh/jmap-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

178 stars 32 forks Качество 75 Тренд 31MIT

wyattjoh/jmap-mcp — это кандидат на MCP-сервер, импортированный из https://github.com/wyattjoh/jmap-mcp.

Обзор

wyattjoh/jmap-mcp — это кандидат на MCP-сервер, импортированный из https://github.com/wyattjoh/jmap-mcp.

Обзор (машинный перевод)

Рабочее пространство Deno, содержащее функциональный клиент электронной почты JMAP и Model Context Сервер протокола (MCP), построенный на нём. Клиентский пакет использует jmap-jam для доступа к протоколу JMAP; пакет MCP адаптирует эти типизированные операции в инструменты.

Особенности

Инструменты управления электронной почтой

  • Поиск по электронной почте: Поиск по письмам с текстовыми запросами, фильтрами отправителя/получателя, Диапазоны дат и ключевые слова. Все фильтры объединены И вместе.
  • Получить электронные письма: Получить конкретные письма по ID с настраиваемым свойством Выбор
  • Получить Threads: Получить потоки электронной почты (цепочки переписок)
  • Отметить письма: Отметить письма как прочитанные/непрочитанные, помеченные/неотмеченные
  • Переместить письма: Переместить письма в один почтовый ящик
  • Патчить почтовые ящики: Добавить или удалить выбранные почтовые ящики во время сохранение неуточнённого членства
  • Удалить письма: Удалить письма навсегда

Управление почтовыми ящиками

  • Получить почтовые ящики: Перечислить все почтовые ящики/папки с поддержкой иерархии. Используйте это чтобы находить идентификаторы почтовых ящиков, необходимые другим инструментам.

Постепенная синхронизация

  • Получить изменения в электронной почте: Получить ID писем, созданных, обновлённых или уничтоженных с тех пор Предыдущий штат (отслеживание дельты на основе штата)

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

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:

Открыть полный README на GitHub

Установка

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" } } } }