Buttondown MCP Server

by The-Focus-AI
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Used for securely storing and retrieving API keys, specifically integrating with the Buttondown API by fetching credentials from a specific 1Password path.

  • Supports creating email content in Markdown format when creating newsletter drafts through the Buttondown API.

  • Supported as an alternative package manager for installing and managing the Buttondown API integration package.

Buttondown API 集成

Buttondown 新闻通讯服务的全面 TypeScript 集成,提供 CLI 界面和模型上下文协议 (MCP) 服务器来管理新闻通讯、草稿和分析。

特征

  • 多种接口
    • 用于直接交互的命令行界面 (CLI)
    • 用于 AI/LLM 集成的模型上下文协议 (MCP) 服务器
    • 用于自定义集成的编程 TypeScript API
  • 核心功能
    • 电子邮件草稿管理(创建、更新、删除)
    • 电子邮件调度系统
    • 分析检索和格式化
    • 列表管理
    • 标签管理
  • 安全
    • 1Password 集成用于 API 密钥管理
    • 环境变量支持
    • 安全凭证处理
  • 开发人员经验
    • 全面支持 TypeScript
    • 全面的类型定义
    • 真正的基于 API 响应的类型
    • 内置测试实用程序

安装

# Install using pnpm (recommended) pnpm install # Or using npm npm install # Or using yarn yarn install

配置

API 密钥可以通过两种方式提供:

  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 许可证 - 详情请参阅许可证

致谢

-
security - not tested
F
license - not found
-
quality - not tested

使 AI 和 LLM 系统能够与 Buttondown 新闻通讯服务进行交互,通过模型上下文协议接口支持电子邮件起草、安排、分析检索和列表管理。

  1. Features
    1. Installation
      1. Configuration
        1. Usage
          1. CLI Interface
          2. MCP Server
          3. Programmatic Usage
        2. Development
          1. Testing
            1. Project Structure
              1. Contributing
                1. License
                  1. Acknowledgments
                    ID: 788lpnjn1o