Buttondown MCP Server
使人工智能和大型语言模型系统能够与 Buttondown 新闻邮件服务进行交互,通过模型上下文协议接口支持邮件起草、安排发送时间、检索分析数据和列表管理。
README
Buttondown API 集成
一个全面的 Buttondown 新闻通讯服务的 TypeScript 集成,提供 CLI 界面和模型上下文协议 (MCP) 服务器,用于管理新闻通讯、草稿和分析。
特性
-
多种界面:
- 命令行界面 (CLI),用于直接交互
- 模型上下文协议 (MCP) 服务器,用于 AI/LLM 集成
- 程序化的 TypeScript API,用于自定义集成
-
核心功能:
- 电子邮件草稿管理(创建、更新、删除)
- 电子邮件调度系统
- 分析检索和格式化
- 列表管理
- 标签管理
-
安全性:
- 1Password 集成,用于 API 密钥管理
- 环境变量支持
- 安全的凭据处理
-
开发者体验:
- 完整的 TypeScript 支持
- 完善的类型定义
- 基于真实 API 响应的类型
- 内置的测试实用程序
安装
# 使用 pnpm 安装 (推荐)
pnpm install
# 或者使用 npm
npm install
# 或者使用 yarn
yarn install
配置
API 密钥可以通过两种方式提供:
-
环境变量:
export BUTTONDOWN_API_KEY=your_api_key -
1Password CLI (推荐):
- 将您的 API 密钥存储在 1Password 的
op://Development/Buttondown API/notesPlain中 - 集成将在需要时自动获取它
- 将您的 API 密钥存储在 1Password 的
用法
CLI 界面
# 列出所有电子邮件
buttondown emails list
# 创建新的草稿
buttondown draft create <file>
# 安排电子邮件
buttondown schedule set <draft-id> <relative-time>
# 获取分析
buttondown analytics get <draft-id>
MCP 服务器
-
启动服务器:
pnpm mcp:start -
使用检查器启动(用于开发):
pnpm mcp:inspect
可用的 MCP 工具:
-
list_emails: 列出所有电子邮件,并可选择状态过滤{ "status": "draft" // 可选: "draft", "scheduled", "sent" } -
create_draft: 创建新的电子邮件草稿{ "content": "Markdown 格式的电子邮件内容", "title": "可选的电子邮件主题" } -
get_analytics: 获取特定电子邮件的分析{ "draftId": "email-id-here" } -
schedule_draft: 安排电子邮件发送{ "draftId": "email-id-here", "scheduledTime": "2024-03-27T10:00:00Z" }
程序化用法
import { ButtondownAPI } from "api-integrator";
// 初始化客户端
const api = new ButtondownAPI(); // 将使用 1Password 或环境变量
// 列出草稿
const drafts = await api.getDrafts();
// 创建草稿
const draft = await api.createEmail({
subject: "My Newsletter",
body: "Content here",
status: "draft",
});
// 安排电子邮件
const scheduled = await api.scheduleEmail(draft.id, "2024-03-27T10:00:00Z");
// 获取分析
const analytics = await api.getEmailStats(draft.id);
开发
# 构建项目
pnpm build
# 运行测试
pnpm test
# 在开发模式下启动 MCP 服务器
pnpm mcp:inspect
# 构建 MCP 服务器
pnpm mcp:build
测试
该项目包括几种类型的测试:
- 核心功能的单元测试
- API 交互的集成测试
- CLI 命令测试
- MCP 服务器测试
使用以下命令运行测试:
pnpm test
项目结构
.
├── src/
│ ├── api/ # 核心 API 客户端
│ ├── cli/ # CLI 实现
│ ├── mcp/ # MCP 服务器
│ ├── types/ # TypeScript 定义
│ └── utils/ # 共享实用程序
├── tests/ # 测试文件
├── api-responses/ # 缓存的 API 响应
└── memory-bank/ # 项目文档
贡献
- Fork 仓库
- 创建您的功能分支 (
git checkout -b feature/amazing-feature) - 提交您的更改 (
git commit -m 'Add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 打开一个 Pull Request
许可证
ISC 许可证 - 有关详细信息,请参阅 LICENSE
致谢
- Buttondown 感谢他们出色的新闻通讯服务
- 模型上下文协议 感谢 AI 集成框架
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。