Skip to main content
Glama
Buttondown MCP Server

Buttondown MCP Server

by The-Focus-AI

ボタンダウン API 統合

Buttondown ニュースレター サービス用の包括的な TypeScript 統合。ニュースレター、下書き、分析を管理するための CLI インターフェイスと Model Context Protocol (MCP) サーバーの両方を提供します。

特徴

  • 複数のインターフェース:

    • 直接対話するためのコマンドラインインターフェース(CLI)

    • AI/LLM統合のためのモデルコンテキストプロトコル(MCP)サーバー

    • カスタム統合のためのプログラム可能な TypeScript API

  • コア機能:

    • メールの下書き管理(作成、更新、削除)

    • メールスケジュールシステム

    • 分析情報の取得とフォーマット

    • リスト管理

    • タグ管理

  • 安全:

    • APIキー管理のための1Password統合

    • 環境変数のサポート

    • 安全な資格情報の取り扱い

  • 開発者エクスペリエンス:

    • 完全なTypeScriptサポート

    • 包括的な型定義

    • 実際のAPIレスポンスベースのタイプ

    • 組み込みのテストユーティリティ

Related MCP server: Buttondown MCP Server

インストール

# Install using pnpm (recommended)
pnpm install

# Or using npm
npm install

# Or using yarn
yarn install

構成

API キーは次の 2 つの方法で提供できます。

  1. 環境変数:

    export BUTTONDOWN_API_KEY=your_api_key
  2. 1Password CLI(推奨):

    • APIキーを1Passwordのop://Development/Buttondown API/notesPlainに保存します。

    • 統合により、必要に応じて自動的に取得されます

使用法

CLIインターフェース

# List all emails
buttondown emails list

# Create a new draft
buttondown draft create <file>

# Schedule an email
buttondown schedule set <draft-id> <relative-time>

# Get analytics
buttondown analytics get <draft-id>

MCPサーバー

  1. サーバーを起動します。

    pnpm mcp:start
  2. インスペクターから開始します(開発用):

    pnpm mcp:inspect

利用可能な MCP ツール:

  • list_emails : オプションのステータスフィルタリングを使用してすべてのメールを一覧表示します

    {
      "status": "draft" // Optional: "draft", "scheduled", "sent"
    }
  • create_draft : 新しいメールの下書きを作成する

    {
      "content": "Email content in markdown",
      "title": "Optional email subject"
    }
  • get_analytics : 特定のメールの分析情報を取得する

    {
      "draftId": "email-id-here"
    }
  • schedule_draft : メールの送信スケジュールを設定する

    {
      "draftId": "email-id-here",
      "scheduledTime": "2024-03-27T10:00:00Z"
    }

プログラムによる使用

import { ButtondownAPI } from "api-integrator";

// Initialize the client
const api = new ButtondownAPI(); // Will use 1Password or env var

// List drafts
const drafts = await api.getDrafts();

// Create a draft
const draft = await api.createEmail({
  subject: "My Newsletter",
  body: "Content here",
  status: "draft",
});

// Schedule an email
const scheduled = await api.scheduleEmail(draft.id, "2024-03-27T10:00:00Z");

// Get analytics
const analytics = await api.getEmailStats(draft.id);

発達

# Build the project
pnpm build

# Run tests
pnpm test

# Start MCP server in development mode
pnpm mcp:inspect

# Build MCP server
pnpm mcp:build

テスト

このプロジェクトにはいくつかの種類のテストが含まれています。

  • コア機能のユニットテスト

  • APIインタラクションの統合テスト

  • CLIコマンドテスト

  • MCP サーバーテスト

次のテストを実行します:

pnpm test

プロジェクト構造

.
├── src/
│   ├── api/          # Core API client
│   ├── cli/          # CLI implementation
│   ├── mcp/          # MCP server
│   ├── types/        # TypeScript definitions
│   └── utils/        # Shared utilities
├── tests/            # Test files
├── api-responses/    # Cached API responses
└── memory-bank/      # Project documentation

貢献

  1. リポジトリをフォークする

  2. 機能ブランチを作成します( git checkout -b feature/amazing-feature )

  3. 変更をコミットします ( git commit -m 'Add some amazing feature' )

  4. ブランチにプッシュする ( git push origin feature/amazing-feature )

  5. プルリクエストを開く

ライセンス

ISCライセンス - 詳細についてはライセンスを参照してください

謝辞

Available Tools

4 tools
create_draftA

Create a new email draft in Buttondown with the specified content and optional title. This tool requires explicit user confirmation before proceeding as it will create a new draft in your Buttondown account.

Inputs: content (required), confirmed (required), title.

get_analyticsC

Retrieve analytics data for a specific email draft from Buttondown

Inputs: draftId (required).

list_emailsB

List all emails, optionally filtered by status (draft, scheduled, sent)

Inputs: status.

schedule_draftA

Schedule an existing email draft to be sent at a specific time. This tool requires explicit user confirmation before proceeding as it will modify the draft's status and schedule.

Inputs: draftId (required), scheduledTime (required), confirmed (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose targeting specific actions in the email lifecycle: create_draft for creation, list_emails for listing, get_analytics for analytics retrieval, and schedule_draft for scheduling. There is no overlap or ambiguity between these functions.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with snake_case (create_draft, get_analytics, list_emails, schedule_draft). The verbs are appropriate and predictable, making the set easy to understand and use.

    Tool Count4/5

    With 4 tools, the count is reasonable for an email newsletter server, covering core operations. However, it feels slightly thin as it lacks tools for updating or deleting drafts, which are common in such domains, but the scope is still well-defined.

    Completeness4/5

    The tool set covers key email lifecycle stages: creation, listing, analytics, and scheduling. Minor gaps exist, such as no update_draft or delete_draft tools, but agents can work around this by creating new drafts or using existing ones, and the core workflow is supported.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers