ボタンダウン API 統合
Buttondown ニュースレター サービス用の包括的な TypeScript 統合。ニュースレター、下書き、分析を管理するための CLI インターフェイスと Model Context Protocol (MCP) サーバーの両方を提供します。
特徴
- 複数のインターフェース:
- 直接対話するためのコマンドラインインターフェース(CLI)
- AI/LLM統合のためのモデルコンテキストプロトコル(MCP)サーバー
- カスタム統合のためのプログラム可能な TypeScript API
- コア機能:
- メールの下書き管理(作成、更新、削除)
- メールスケジュールシステム
- 分析情報の取得とフォーマット
- リスト管理
- タグ管理
- 安全:
- APIキー管理のための1Password統合
- 環境変数のサポート
- 安全な資格情報の取り扱い
- 開発者エクスペリエンス:
- 完全なTypeScriptサポート
- 包括的な型定義
- 実際のAPIレスポンスベースのタイプ
- 組み込みのテストユーティリティ
インストール
# Install using pnpm (recommended)
pnpm install
# Or using npm
npm install
# Or using yarn
yarn install
構成
API キーは次の 2 つの方法で提供できます。
- 環境変数:
export BUTTONDOWN_API_KEY=your_api_key
- 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サーバー
- サーバーを起動します。
- インスペクターから開始します(開発用):
利用可能な 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 サーバーテスト
次のテストを実行します:
プロジェクト構造
.
├── 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
貢献
- リポジトリをフォークする
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature
) - 変更をコミットします (
git commit -m 'Add some amazing feature'
) - ブランチにプッシュする (
git push origin feature/amazing-feature
) - プルリクエストを開く
ライセンス
ISCライセンス - 詳細についてはライセンスを参照してください
謝辞