博客发布服务

一个通过MCP协议将AI助手生成的博客文章直接发布到Dev.to的服务,支持Markdown格式和API集成。

  • by Anuragck
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Anuragck/dev-blog-mcp-server

使用说明

开发博客 MCP 服务器

一个模型上下文协议(MCP)服务器,它使AI助手能够直接将博客文章发布到Dev.to。此服务器提供了一种无缝的方式,将博客发布功能集成到您的AI工作流程中。

特点/特性

  • 🚀 表情符号“🚀”通常表示火箭、发射或快速前进,也可以用来形容速度非常快或事情进展迅速。在中文里,这个表情可以直接用,不需要翻译,但可以根据上下文解释为“火箭”、“发射”或“飞快”等意思。例如:“🚀 我们即将发射新项目!” 直接发布到Dev.to通过MCP直接将博客文章发布到Dev.to
  • 📝 丰富内容支持全面支持Markdown,包括标签、系列和封面图片
  • 🔒 表示“锁”或“安全”的意思,常用于表示信息或系统的安全性,如“🔒 请勿泄露密码”或“🔒 该网站已加密”。 安全API集成使用环境变量来管理API密钥
  • 🛠️(扳手/工具) 轻松集成使用uv包管理器进行简单设置
  • 📊(图表) 全面日志记录详细的日志记录用于调试和监控

先决条件

在开始之前,请确保已安装以下内容:

  • Python 3.13或更高版本
  • 紫外线 (Python包管理器)
  • Git(版本控制系统) (用于版本控制)
  • Dev.to API密钥 (从……获取 Dev.to 设置)

安装

1. 安装 uv(如果尚未安装)

# On macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# Or using pip
pip install uv

2. 克隆仓库

git clone https://github.com/anuragck2/dev-blog-mcp-server.git
cd dev-blog-mcp-server

3. 安装依赖项

# Install project dependencies using uv
uv sync

4. 环境设置

创建一个 .env 项目根目录下的文件:

# Copy the example environment file
cp .env.example .env

# Edit the .env file and add your Dev.to API key
echo "DEVTO_API_KEY=your_devto_api_key_here" > .env

获取您的Dev.to API密钥:

  1. 首选 Dev.to 设置
  2. 向下滚动到“API密钥”部分
  3. 生成一个新的API密钥
  4. 复制密钥并将其添加到您的 .env 文件

使用方法

运行MCP服务器

# Activate the virtual environment and run the server
uv run python main.py

服务器将启动并监听通过stdio传输的MCP连接。

与MCP Inspector配合使用

MCP Inspector 是一个用于测试和调试 MCP 服务器的强大工具。以下是设置方法:

1. 安装MCP Inspector

# Install MCP Inspector globally
npm install -g @modelcontextprotocol/inspector

2. 配置MCP检查器

为MCP Inspector创建一个配置文件:

{
  "mcpServers": {
    "dev-blog-mcp-server": {
      "command": "uv",
      "args": ["run", "python", "main.py"],
      "cwd": "/path/to/your/dev-blog-mcp-server"
    }
  }
}

3. 运行MCP检查器

# Start the MCP Inspector
mcp-inspector

这将打开一个网页界面,在其中您可以:

  • 测试 publish_blog_to_devto 工具
  • 查看服务器日志
  • 调试MCP通信
  • 监控工具执行情况

与Claude Desktop配合使用

要使用此MCP服务器与Claude Desktop配合:

  1. 打开Claude桌面设置
  2. 添加MCP服务器配置

在您的Claude桌面配置中添加以下内容:

{
  "mcpServers": {
    "dev-blog-mcp-server": {
      "command": "uv",
      "args": ["run", "python", "main.py"],
      "cwd": "/path/to/your/dev-blog-mcp-server"
    }
  }
}
  1. 重启Claude桌面版

添加配置后,重启 Claude Desktop 以加载新的 MCP 服务器。

API 参考文档

publish_blog_to_devto 工具

在Dev.to上发布一篇博客文章,参数如下:

参数 类型 必需 描述
(无对应中文) (无对应中文) (无对应中文) (无对应中文)
字符串 ✅ 博客文章的标题 body_markdown
字符串 ✅ Markdown格式的内容 tags
字符串列表 ❌ 标签列表(例如,["python", "webdev"]) published
用于草稿 series
字符串 ❌ 本文所属系列的名称 canonical_url
字符串 ❌ 如跨平台发布,则为规范URL cover_image

| 字符串 | ❌ | 封面图片的URL |

# Example tool call
publish_blog_to_devto(
    title="Getting Started with MCP",
    body_markdown="# Introduction\n\nThis is a great article about MCP!",
    tags=["mcp", "ai", "tutorial"],
    published=False,  # Save as draft
    series="MCP Fundamentals"
)

示例用法

发展

dev-blog-mcp-server/
├── main.py              # Main MCP server implementation
├── pyproject.toml       # Project configuration and dependencies
├── .env.example         # Environment variables template
├── sample_prompt.md     # Sample prompts for testing
├── README.md           # This file
└── uv.lock             # Dependency lock file

项目结构

  1. 添加新功能 添加新工具 @mcp.tool()
  2. 通过创建带有装饰器的函数 更新依赖项 pyproject.toml
  3. 在 使用MCP Inspector进行测试
  4. 在部署之前 更新文档

在这个README文件中

# Run the server in development mode
uv run python main.py

# Test with MCP Inspector
mcp-inspector

测试

故障排除

  1. 常见问题

    • “DEVTO_API_KEY”环境变量未设置 .env 确保你的
    • 文件存在且包含正确的API密钥
  2. 验证API密钥是否有效且具有必要的权限

    • 网络或API请求错误
    • 检查你的网络连接
    • 验证Dev.to API是否可访问
  3. 确保您的API密钥尚未过期

    • MCP Inspector连接问题
    • 验证服务器是否正在运行
    • 检查配置文件路径

确保所有依赖项都已安装

调试模式 main.py通过修改日志级别来启用调试日志记录

logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')

:

  1. 贡献;做出贡献
  2. 为仓库创建分支(或“克隆仓库”)git checkout -b feature/amazing-feature创建一个特性分支(
  3. )git commit -m 'Add some amazing feature'提交您的更改(
  4. )git push origin feature/amazing-feature推送到分支(
  5. )

提交一个拉取请求

许可证 这个项目遵循MIT许可证授权——详见 许可证

文件中有详细信息。

  • 支持 **📧 电子邮件符号,可直接用作“邮件”或“电子邮件”的代称,在中文中通常不直接翻译,而是保留原样使用。**问题 :
  • GitHub Issues(GitHub问题) **📖 代表书籍的图标,可译为“书籍”或根据上下文译为“书本”等,具体译文需结合语境确定。**文档 :
  • MCP 文档 **🐦 翅膀(或鸟)**Twitter(推特) :

@anuragck2(这个用户名或标签在中文中通常保持不变,因为它们是特定于网络或社交媒体的标识)


对于卓越的MCP服务器框架