mcpField
🚀
🚀 Dev.to MCP Server

🚀 Dev.to MCP Server

远程服务
github.com/rawveg社交媒体132 周前更新
代码仓库

关于 🚀 Dev.to MCP Server

Dev.to MCP Server 将 AI 工具连接到 Dev.to,用于浏览、搜索、阅读、分析和管理文章。除 SSE/MCP 外,也支持 REST/OpenAPI 模式。

主要功能

  1. 01浏览最新和热门文章
  2. 02按关键词、标签或作者搜索
  3. 03阅读文章和用户资料
  4. 04分析文章和用户资料
  5. 05创建、更新和发布文章
  6. 06REST 与 OpenAPI 模式

适用场景

  1. 01查找特定主题或标签的文章
  2. 02总结文章或用户资料
  3. 03管理草稿和已发布文章
  4. 04通过 REST 工具访问 Dev.to

MCP 相关

该服务通过 SSE 向 MCP 客户端提供 Dev.to 浏览、搜索、阅读、分析及需认证的发布工具。它也可运行于 REST/OpenAPI 模式。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址http://localhost:8000/sse
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

🚀 Dev.to MCP 服务

License: AGPL v3 Docker Dev.to API


一个面向 Dev.to API 的模型上下文协议(MCP)服务实现,提供在 Dev.to 上搜索、浏览、阅读和创建内容的功能。


✨ 功能

功能描述
🔍 浏览最新文章获取 Dev.to 上的最新文章
🌟 浏览热门文章获取最受欢迎的文章
🏷️ 按标签浏览获取带有指定标签的文章
📚 按标题浏览获取标题符合指定内容的文章
📖 阅读文章获取特定文章的详细信息
👤 用户资料获取 Dev.to 用户的信息
🔎 搜索文章使用关键词搜索文章
👤 按用户搜索文章搜索特定用户的所有文章
📝 按 ID 获取文章获取特定文章的详细信息
📝 按标题获取文章获取特定文章的详细信息
🧠 分析文章分析特定文章(基于提示词,输出摘要)
🧠 分析用户资料分析特定用户资料(基于提示词,输出摘要)
📝 创建文章创建并发布新文章
✏️ 更新文章更新你已有的文章
📝 按标题更新文章按标题更新你已有的文章(解析为 ID)
📜 列出我的文章列出你已发布的文章
📝 列出我的草稿文章列出你的草稿文章
📝 列出我的未发布文章列出你未发布的文章
📝 列出我的定时发布文章列出你已安排发布的文章
🧑‍💻 按 ID 发布文章按 ID 发布你自己的文章
📝 按标题发布文章按标题发布你自己的文章
🧑‍💻 按 ID 撤回发布文章按 ID 撤回你自己的文章
📝 按标题撤回发布文章按标题撤回你自己的文章
📝 删除文章删除你自己的文章

🧠 分析工具

功能描述
🧠 分析文章分析特定文章(基于提示词,输出摘要)
🧠 分析用户资料分析特定用户资料(基于提示词,输出摘要)

注意: 分析工具提供自然语言摘要和见解,而非原始数据转储。


📝 许可证

本项目依据 GNU Affero General Public License v3.0 (AGPLv3) 授权。

商业用途警告

如果你想以任何形式将此代码用于或部署为面向他人的营利性服务,即使你不专门对代码收费,也需要联系我获得许可(这意味着 你们 Smithery/Glama 或任何类似服务)——只有在支付相应的许可费用后才会授予许可。没错,你可能没有对代码本身的使用收费,也可能只是提供基础设施,但你是在使用 我的 代码来支持 你的 服务。这是固有的依赖关系,必须获得授权。

对于其他所有人,无论你是企业还是个人,希望它能对你有所帮助。尽情使用吧。


⚙️ 服务配置

可以使用以下环境变量配置服务:

环境变量说明默认值
PORT服务运行的端口8000
LOG_LEVEL日志级别(INFO、DEBUG 等)INFO

🔐 客户端身份验证

每个客户端都需要提供自己的 Dev.to API 密钥以执行需要身份验证的操作。为此,请在客户端的 MCP 服务配置中将 API 密钥作为环境变量安全地提供。

注意: 应在 MCP 客户端配置的环境变量部分将密钥设为 DEVTO_API_KEY。


🚀 快速开始

🐳 使用 Docker 运行
  1. 克隆代码库:
git clone https://github.com/rawveg/devtomcp.git
cd devtomcp
  1. 使用 Docker Compose 构建并运行:
docker-compose up --build

服务将在 http://localhost:8000 上提供,SSE 端点为 http://localhost:8000/sse。


🛠️ MCP 工具

分析内容
  • analyse_article - 分析指定文章
  • analyse_user_profile - 分析指定用户
浏览内容
  • browse_latest_articles() - 获取 Dev.to 上最新的文章
  • browse_popular_articles() - 获取最受欢迎的文章
  • browse_articles_by_tag(tag) - 获取带有指定标签的文章
阅读内容
  • get_article(id) - 获取指定文章的详细信息
  • get_user_profile(username) - 获取 Dev.to 用户的信息
搜索内容
  • search_articles(query, page=1) - 使用关键词搜索文章
  • search_articles_by_user(username, page=1) - 搜索指定用户的所有文章
管理内容(需要身份验证)
  • list_my_articles(page=1, per_page=30) - 列出你已发布的文章
  • list_my_draft_articles(page=1, per_page=30) - 列出你的草稿文章
  • list_my_unpublished_articles(page=1, per_page=30) - 列出你尚未发布的文章
  • create_article(title, content, tags="", published=False) - 创建新文章
  • update_article(id, title=None, content=None, tags=None, published=None) - 更新现有文章
  • delete_article(id) - 删除现有文章
  • publish_article_by_id(id) - 按 ID 发布你自己的文章
  • publish_article_by_title(title) - 按标题发布你自己的文章
  • unpublish_article_by_id(id) - 按 ID 取消发布你自己的文章
  • unpublish_article_by_title(title) - 按标题取消发布你自己的文章
  • update_article_by_title(title, new_title=None, content=None, tags=None, published=None) - 按标题更新现有文章(解析为 ID)

🌐 REST API 与 OpenAPI 工具服务

Dev.to MCP 服务现已支持双模式运行:

模式说明
🟢 SSE/MCP用于大模型/Agent 集成,使用 Model Context Protocol (MCP)
🟦 REST/OpenAPI用于直接 HTTP 访问、OpenAPI 工具运行器及兼容 OpenAI 的工具
🚦 切换模式

在 .env 文件中设置模式:

SERVER_MODE=sse   # For SSE/MCP (default)
# or
SERVER_MODE=rest  # For REST API & OpenAPI toolserver
🔑 REST 模式下的身份验证
  • 在 Authorization 标头中以 Bearer 令牌的形式提供 Dev.to API 密钥:
    Authorization: Bearer YOUR_DEVTO_API_KEY
    
  • REST 模式下无需在 .env 中设置 DEVTO_API_KEY。
📖 OpenAPI 和 Swagger UI
🧑‍💻 示例:列出我的文章(REST)
curl -X GET "http://localhost:8000/list_my_articles?page=1&per_page=30&max_pages=10" \
  -H "Authorization: Bearer YOUR_DEVTO_API_KEY"
🛠️ REST 端点
  • 所有主要工具都可通过 REST 端点使用(详情请参阅 /docs)
  • 每个端点都包含丰富的 OpenAPI 元数据、示例和标签,便于查找
  • update_article_by_title - 按标题更新自己的文章(解析为 ID)
🤖 这样做的意义
  • 只需一个代码库,即可将其用作传统 REST API、OpenAPI 工具服务器或大模型/Agent 工具提供方!
  • 可与 OpenAI、LangChain 以及任何兼容 OpenAPI 的客户端即插即用
  • 开箱即用、美观且交互性强的文档

🖥️ 客户端配置

Claude Desktop 配置

在 Claude Desktop 的 config.json 中添加 MCP 服务:

{
  "mcpServers": {
    "devto": {
      "url": "http://localhost:8000/sse"
    }
  }
}
Cursor 配置

在 Cursor 的配置中添加 MCP 服务:

{
  "mcpServers": {
    "devto": {
      "url": "http://localhost:8000/sse"
    }
  }
}

注意

某些客户端可能需要使用 serverUrl 而非 url,例如 Codium 的 Windsurf IDE。

使用 Python 进行编程访问
import asyncio
import os
from fastmcp.client import Client

async def main():
    # Set environment variable for authentication
    os.environ["DEVTO_API_KEY"] = "your_dev_to_api_key_here"
    
    # Connect to the MCP server
    client = Client("http://localhost:8000/sse")
    
    # Use the client
    async with client:
        # Get popular articles
        results = await client.call_tool("browse_popular_articles", {})
        print(results)

if __name__ == "__main__":
    asyncio.run(main())

☁️ 部署到 Google Cloud Run

部署到 Google Cloud Run:

  1. 按照 Google Cloud Run 快速入门 设置环境

  2. 将 Dev.to API 密钥设置为密钥:

    gcloud secrets create devto-api-key --data-file=- <<< "your_api_key_here"
    
  3. 在 SSE 模式下挂载密钥并进行部署:

    gcloud run deploy devtomcp \
       --source . \
       --platform managed \
       --allow-unauthenticated \
       --region [REGION] \
       --set-env-vars="LOG_LEVEL=<<LOG_LEVEL>>" \
       --set-env-vars="DEVTO_API_KEY=<<DEVTO_API_KEY>>" \
       --set-env-vars="SERVER_MODE=sse" \
       --set-env-vars="DEVTO_API_BASE_URL=<<DEVTO_API_BASE_URL>>" \
       --format="json"
    

    环境变量

    变量描述默认值
    LOG_LEVEL日志级别(INFO、DEBUG 等)INFO
    DEVTO_API_KEYDev.to API 密钥None
    DEVTO_API_BASE_URLDev.to API 基础 URLhttps://dev.to/api
    SERVER_MODE要部署的服务模式sse

    由于 .env 文件不会挂载到容器中,因此必须在 gcloud run deploy 命令行中设置这些变量。

    也可以使用 OpenAPI 工具以 REST 模式部署:

    gcloud run deploy devtomcp \
       --source . \
       --platform managed \
       --allow-unauthenticated \
       --region [REGION] \
       --set-env-vars="LOG_LEVEL=<<LOG_LEVEL>>" \
       --set-env-vars="SERVER_MODE=rest" \
       --set-env-vars="DEVTO_API_BASE_URL=<<DEVTO_API_BASE_URL>>" \
       --format="json"
    

    环境变量

    变量描述默认值
    LOG_LEVEL日志级别(INFO、DEBUG 等)INFO
    SERVER_MODE要部署的服务模式rest
    DEVTO_API_BASE_URLDev.to API 基础 URLhttps://dev.to/api

    由于 .env 文件不会挂载到容器中,因此必须在 gcloud run deploy 命令行中设置这些变量。

区域选择 应根据关联项目所在的区域进行选择。可在此处查看可用区域列表。

⚠️ 安全警告 - SSE 模式:

  • --allow-unauthenticated 标志会使你的服务可公开访问

  • 由于这是一个使用你的 API 密钥的单用户服务,你必须实施额外的安全措施:

  • 在 REST 模式下部署(推荐用于 Cloud Run)时,上述安全注意事项不适用,因为此模式下的每个请求都必须携带 Authorization Bearer Token Authorization: Bearer <<your_dev_to_api_key_here>>,从而立即限制破坏性访问。

有关详细的安全配置说明,请参阅 GCP_DEPLOYMENT.md。


⚠️ 错误处理

服务器返回标准的 MCP 错误响应:

{
  "status": "error",
  "message": "Error description",
  "code": 401
}

常见错误代码:

  • 401:身份验证失败(缺少或无效的 API 密钥)
  • 404:找不到资源
  • 422:参数无效
  • 500:服务器错误

🔒 安全注意事项

  • 服务器使用环境变量配置 API 密钥,以提供适当的安全隔离
  • 每个客户端连接都使用各自配置的 API 密钥
  • 所有 API 凭据均由服务器端处理
  • 在生产环境中使用 HTTPS
  • 在云部署中使用安全的密钥管理方式管理 API 密钥

🤝 参与贡献

欢迎贡献!请随时提交 Pull Request。


🙏 致谢


📬 联系方式

如有疑问、建议或需要支持,请提交 issue。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。