Token导航 LogoToken导航

MCP Server · 文档知识

Blogging MCP

一个基于MCP协议的博客发布服务,支持将Markdown文章一键发布到dev.to和Hashnode平台。

stdio官方级别未说明来源级核验工具 12
PythonClaudeAPI集成Claude DesktopCursor

快速开始

作者 / 组织
Alsaheem
提供方
Alsaheem
运行时
Python

工具数量

12

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

7

仓库热度

收录来源

1 个

MCP World

选型结论

Blogging MCP 属于文档知识类 MCP Server,公开资料标注 12 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude、Cursor,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

文档知识

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

uv run python -m blogging_mcp

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 12 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

MCP博客

当前版本: 0.2.0 --设置在 pyproject.toml ([project].version)以及 blogging_mcp.__version__.在这着陆之后 main,Docker Hub将发布 alsaheem/blogging-mcp:0.2.0, alsaheem/blogging-mcp:0.2.0-,并更新 alsaheem/blogging-mcp:latest.

文档和快速设置:

快速启动(托管MCP)

使用 远程 服务器——没有克隆,没有Python,没有本地进程。您只需要dev.to和Hashnode凭据以及客户端配置。

端点: https://blogging-mcp.adebisiayomide.com/mcp

对您的凭据进行编码

HTTP客户端发送三个标头。值必须为 标准Base64 (UTF-8,然后编码)。服务器对每个请求进行Base64解码;如果解码失败,则尝试原始字符串,以便纯文本仍然可以工作。

echo -n 'paste-your-real-devto-key-here' | base64
echo -n 'paste-your-hashnode-token-here' | base64
echo -n 'yourblog.hashnode.dev' | base64

使用 echo -n 因此,您无需添加尾随换行符。

从哪里获取值标头名称
dev.to API密钥 → DEV社区API密钥X-DEVTO-API-KEY
哈希节点PATX-HASHNODE-TOKEN
您的博客主机,例如。 username.hashnode.devX-HASHNODE-PUBLICATION-HOST

粘贴每个 单行 Base64输出到下面的匹配字段。片段使用 虚拟的 Base64——用你的替换。

安全: 做 不 将真实代币提交给git。 mcp.json 和 claude_desktop_config.json 秘密应该只留在你的机器上。

一个 Authorization: Bearer … 标题是 不 除非您添加一个将其映射到这三个值的代理,否则对于此服务器来说已经足够了。

光标(远程)

文件: ~/.cursor/mcp.json (macOS/Linux)或 %USERPROFILE%\.cursor\mcp.json (Windows)。您还可以从以下位置进行编辑 光标设置→ MCP.

{
  "mcpServers": {
    "blogging-mcp": {
      "url": "https://blogging-mcp.adebisiayomide.com/mcp",
      "headers": {
        "X-DEVTO-API-KEY": "ZXhhbXBsZS1kZXZ0by1rZXktcGxhY2Vob2xkZXI=",
        "X-HASHNODE-TOKEN": "MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAx",
        "X-HASHNODE-PUBLICATION-HOST": "ZXhhbXBsZWJsb2cuaGFzaG5vZGUuZGV2"
      }
    }
  }
}

完全地 退出Cursor 并重新打开,以便MCP重新加载。

示例文件: mcp.cursor.json.remote.example.

克劳德桌面(远程)

克劳德知道 不 支持Cursor的 "url" + "headers" 块。使用 mcp-remote (节点18+, npx)要连接到 相同的HTTPS URL. 不要 通过 --allow-http 对于此托管URL。

文件:

操作系统路径
macOS~/Library/Application Support/Claude/claude_desktop_config.json
窗户%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

合并 "mcpServers" 使用任何现有密钥(例如。 "preferences").

{
  "mcpServers": {
    "blogging-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://blogging-mcp.adebisiayomide.com/mcp",
        "--header",
        "X-DEVTO-API-KEY: ZXhhbXBsZS1kZXZ0by1rZXktcGxhY2Vob2xkZXI=",
        "--header",
        "X-HASHNODE-TOKEN: MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAx",
        "--header",
        "X-HASHNODE-PUBLICATION-HOST: ZXhhbXBsZWJsb2cuaGFzaG5vZGUuZGV2"
      ]
    }
  }
}

如果 npx 首次运行时提示安装,使用 "args": ["-y", "mcp-remote", ...] 而不是 "mcp-remote" 作为第一个arg。

完全地 退出克劳德桌面 并重新开放。 克劳德网络/连接器 通常无法发送这些标头;使用 桌面+ mcp-remote (或克隆的stdio——见下文)。

示例文件: mcp.claude.json.remote.example.

______________________________________________________________________

本地和自托管(可选)

如果需要离线使用、自定义URL或开发,请在您的计算机或您自己的主机上运行MCP。

光标(本地URL)

启动服务器(运行服务器),然后点 mcp.json 在 http://127.0.0.1:8765/mcp 具有相同的三个Base64标头。例子: mcp.cursor.json.local.example.

克劳德桌面(本地+ mcp-remote)

带着一个 本地 HTTP服务器必须允许非TLS HTTP:

{
  "mcpServers": {
    "blogging-mcp": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://127.0.0.1:8765/mcp",
        "--allow-http",
        "--header",
        "X-DEVTO-API-KEY: ZXhhbXBsZS1kZXZ0by1rZXktcGxhY2Vob2xkZXI=",
        "--header",
        "X-HASHNODE-TOKEN: MDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAx",
        "--header",
        "X-HASHNODE-PUBLICATION-HOST: ZXhhbXBsZWJsb2cuaGFzaG5vZGUuZGV2"
      ]
    }
  }
}

例子: mcp.claude.json.local.example.

从源运行(stdio)

克隆仓库并使用 标准 朴素地 env (无Base64)。替换 cwd 使用克隆路径:

{
  "mcpServers": {
    "blogging-mcp": {
      "command": "uv",
      "args": ["run", "python", "-m", "blogging_mcp"],
      "cwd": "/absolute/path/to/blogging-mcp",
      "env": {
        "DEVTO_API_KEY": "your-devto-api-key-here",
        "HASHNODE_TOKEN": "your-hashnode-personal-access-token-here",
        "HASHNODE_PUBLICATION_HOST": "yourblog.hashnode.dev"
      }
    }
  }
}

安全: 如果任何人都可以访问没有身份验证的公共HTTP MCP URL,则可能会被滥用。此项目不在HTTP侦听器上提供OAuth;需要时在自托管部署前使用auth。

______________________________________________________________________

需求

设置(本地开发)

克隆存储库并安装依赖项:

cd blogging-mcp
uv sync --all-groups

复制 .env.example 到 .env 并设置 DEVTO_API_KEY, HASHNODE_TOKEN,以及 HASHNODE_PUBLICATION_HOST 你真正的价值观(与 mcp.json 标头 如果你使用HTTP——永远不要提交 .env).

谁配置什么: 每个 用户 使用自己的dev.to和Hashnode凭据。对于HTTP MCP,输入 Base64编码 值在 mcp.json headers;对于本地服务器/stdio,请使用 .env 或 env 在客户端配置中(纯值)。不要将真正的代币提交给git。

运行服务器

stdio(默认) --Cursor或Claude Desktop生成进程并通过stdin/stdout进行对话:

uv run python -m blogging_mcp

HTTP(流式HTTP) --对于光标 统一资源定位符 模式或其他远程客户端。FastMCP为MCP端点提供服务 /mcp (默认)。

MCP_TRANSPORT=http MCP_HTTP_PORT=8765 uv run python -m blogging_mcp

当进程在VM或Docker中运行时,绑定到所有接口(这样你的笔记本电脑就可以访问它):

MCP_TRANSPORT=http MCP_HTTP_HOST=0.0.0.0 MCP_HTTP_PORT=8765 uv run python -m blogging_mcp

环境:

  • MCP_TRANSPORT — stdio (默认)或 http
  • MCP_HTTP_HOST --绑定地址(默认 127.0.0.1)
  • MCP_HTTP_PORT --使用时的端口 http (默认值 8765)
  • MCP_HTTP_TIMEOUT --dev.to/Hashnode调用的HTTP客户端超时时间(秒)(默认值 30)

流式HTTP行为(JSON vs SSE,无状态模式)由以下因素控制 FastMCP --查看其文档和环境变量,例如 FASTMCP_JSON_RESPONSE / FASTMCP_STATELESS_HTTP 如果你需要调整交通。

或者:

uv run fastmcp run src/blogging_mcp/server.py:mcp

HTTP部署(服务器、Docker、反向代理)

这与FastMCP指南中的模式相匹配: HTTP部署.

1.直接HTTP(内置Uvicorn) --相同的想法 mcp.run(transport="http", host="0.0.0.0", port=8000) 在文件中;这个项目把它连接起来 MCP_TRANSPORT 和 MCP_HTTP_*:

MCP_TRANSPORT=http MCP_HTTP_HOST=0.0.0.0 MCP_HTTP_PORT=8765 uv run python -m blogging_mcp

客户端使用流式HTTP URL http://: /mcp (默认路径;请参阅FastMCP的 自定义路径 如果你需要另一个)。

2.Asgi应用程序+uvicorn --相同的想法 app = mcp.http_app() 在文件中;该应用程序显示为 blogging_mcp.asgi:

uv run uvicorn blogging_mcp.asgi:app --host 0.0.0.0 --port 8765

当您想要与FastMCP指南相同的旋钮(工作器、中间件、在Starlette/FastAPI中安装等)时,请使用此选项。

生产说明(来自FastMCP): 将TLS和超时放在前面(例如nginx proxy_buffering off 对于SSE),请考虑 FASTMCP_STATELESS_HTTP=true 在负载平衡器后面,添加 认证 有关互联网上可访问的任何内容,请参阅 认证 在FastMCP文档中。

工具

创建(两个平台)

  • publish_article --在dev.to和Hashnode上创建(createDraft 然后 publishDraft 当 hashnode_published 是真的)。每个平台的回报结果(ok, url, error, note).如果 hashnode_published 为false,仅为哈希节点 草稿 创建。

dev.to(REST) --响应使用 { "ok": true, "data": ... } 或 { "ok": false, "error": "..." }.

  • devto_get_article — GET /api/articles/{id}
  • devto_list_my_articles — scope: published | unpublished | all,分页
  • devto_update_article — PUT 部分更新(最大 4 标签)
  • devto_delete_article — DELETE /api/articles/{id}

哈希节点(GraphQL) --同样的 { ok, data | error } 形状。

  • hashnode_get_post / hashnode_get_draft --按id读取
  • hashnode_list_posts / hashnode_list_drafts --列出发布内容(光标 after 职位)
  • hashnode_update_post --更新a 发表 职位(updatePost)
  • hashnode_remove_post --删除已发布的帖子(removePost)

Hashnode的公共API不公开 updateDraft 突变;在Hashnode编辑器中编辑草稿或发布,然后使用 hashnode_update_post.

其他

  • verify_credentials --检查dev.to键和Hashnode发布(无写入)。

发展

uv run ruff check .
uv run ruff format .
uv run pytest

GitHub 操作→ Docker 中心

开 拉取请求,CI运行lint、测试和 Docker构建 标记的 sha- (图片为 不 推)。开 推至 main/master (在lint+测试通过后),CI构建 linux/amd64 并推动 alsaheem/blogging-mcp:latest, alsaheem/blogging-mcp:,以及 alsaheem/blogging-mcp:-,在哪里 `` 来自 pyproject.toml ([project].version).

添加这些 存储库机密 (设置→ 秘密和变量→ 行动):

秘密价值
DOCKERHUB_USERNAME您的Docker Hub用户名(例如。 alsaheem)
DOCKERHUB_TOKEN A. (创建于 *账户设置→ 安全*).比起您的帐户密码,更喜欢这个。

您还可以手动运行工作流(行动→ CI → 运行工作流).

贡献

欢迎捐款。看 贡献.md 用于设置、运行 ruff 和 pytest,并拉取请求期望。

对于 安全漏洞,使用 安全.md 并且不要公开漏洞利用细节。

当首先在问题中讨论时,大型行为或API更改更容易审查。

码头工人

图像构建自 pyproject.toml, uv.lock,以及 src/ 只有。 .env 在...里 .dockerignore --它不会复制到构建上下文中,因此笔记本电脑中的秘密 不 烘焙成图像层 除非 您添加 ARG/ENV 钥匙在 Dockerfile (不要)。

秘密属于运行时: 使用 -e NAME=value, --env-file 指向文件 在主机上,或您的编排器的秘密存储。你传递的任何东西 -e 存在于 运行容器的环境,不是在图像tarball你 docker push (假设您没有将密钥也提交到Dockerfile中)。

云运行(linux/amd64,x86_64)

云运行 跑 linux/amd64 默认情况下为图像。如果你在Apple Silicon(arm64)上构建 docker build 产生一个 手臂 除非你设置了平台。

建立并推动 amd64 和 Buildx:

docker login   # Docker Hub (or Artifact Registry docker auth)
docker buildx build \
  --platform linux/amd64 \
  -t alsaheem/blogging-mcp:latest \
  --push .

加载到本地Docker(amd64镜像;通过Apple Silicon上的仿真运行):

docker buildx build --platform linux/amd64 -t alsaheem/blogging-mcp:latest --load .

本地构建(本地平台)

docker build -t alsaheem/blogging-mcp:latest .
docker login   # as Docker Hub user alsaheem
docker push alsaheem/blogging-mcp:latest
docker run --rm -i \
  --env-file .env \
  alsaheem/blogging-mcp:latest

或者显式设置变量(如果使用粘贴,请避免在共享历史记录中记录命令):

docker run --rm -i \
  -e DEVTO_API_KEY=... \
  -e HASHNODE_TOKEN=... \
  -e HASHNODE_PUBLICATION_HOST=you.hashnode.dev \
  alsaheem/blogging-mcp:latest

集装箱运行 uv run python -m blogging_mcp (参见 Dockerfile CMD).

超文本传输协议 (例如,主机的游标URL模式):

docker run --rm -p 8765:8765 \
  -e MCP_TRANSPORT=http \
  -e MCP_HTTP_HOST=0.0.0.0 \
  -e MCP_HTTP_PORT=8765 \
  --env-file .env \
  alsaheem/blogging-mcp:latest

然后Cursor可以使用 "url": "http://127.0.0.1:8765/mcp".

许可证

该项目根据 MIT许可证.

工具与能力

工具数量

12

资源数量

0

提示词数量

0

能力标签

博客发布Python本地部署多平台同步Markdown支持API集成

支持客户端

Claude DesktopClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

读长文档提问

把 PDF、Markdown 和笔记交给模型,按章节追问细节。

整理知识库

把零散资料归档、打标签,检索时更容易命中。

批量出摘要

提取要点,输出能直接引用的段落。

选择建议

值得选的地方

  • 工具数量 12 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在文档知识场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Blogging MCP

MCP World · 本页

12stdio有1 个2026-05-17
Cherry Studio

MCP World

0未说明未标注1 个2026-05-17
Pdf Math Translate

MCP World

0stdio有1 个2026-05-17
report generation

MCP World

0stdio有1 个2026-05-17
Anything To Notebooklm

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Blogging MCP 怎么安装?

公开资料给出的安装命令是 uv run python -m blogging_mcp,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Blogging MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Blogging MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Blogging MCP 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Blogging MCP 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP