Token导航 LogoToken导航TokenDH.com
Astro Blog MCP Server logo
文档知识stdio官方级别未说明来源级核验

Astro Blog MCP Server

MCP Server

Astro Blog MCP Server 是一个自动化博客文章创建的服务,支持通过REST API自动发布文章到Astro博客,并集成GitHub和Vercel部署。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
知识管理TypeScriptAPI集成GitHub

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

amilcar-laniakea

提供方

amilcar-laniakea

最后核验

2026/5/17 20:22

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 3000:3000 --env-file .env astro-blog-mcp

详细介绍

Astro Blog MCP Server

MCP (Model Context Protocol) Server para automatizar la creación de posts en un blog Astro desplegado en Vercel.

🚀 Características

  • ✅ Creación automática de posts vía API REST
  • ✅ Integración directa con GitHub
  • ✅ Validación y sanitización de inputs
  • ✅ Seguridad con API Keys
  • ✅ Rate limiting
  • ✅ Trigger automático de deployments en Vercel
  • ✅ Compatible con n8n y otras herramientas de automatización

📦 Instalación

1. Clona el repositorio

git clone 
cd astro-blog-mcp

2. Instala dependencias

pnpm install

3. Configura variables de entorno

Copia .env.example a .env y completa los valores:

cp .env.example .env

Variables requeridas:

  • GITHUB_TOKEN: Personal Access Token de GitHub con permisos de repo
  • GITHUB_OWNER: Tu usuario de GitHub
  • GITHUB_REPO: Nombre del repositorio de tu blog
  • GITHUB_BRANCH: Branch a usar (default: main)
  • API_SECRET_KEY: Una clave secreta aleatoria de al menos 32 caracteres
  • MCP_PORT: Puerto del servidor (default: 3000)
  • DEPLOY_HOOK: (Opcional) Deploy Hook de Vercel

4. Compila el proyecto

pnpm build

🎯 Uso

Iniciar el servidor

Modo desarrollo:

pnpm dev

Modo producción:

pnpm start

Probar la API

pnpm test

🔑 Configuración de GitHub Token

  1. Ve a GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
  2. Genera un nuevo token con estos permisos:

- repo (acceso completo)

  1. Copia el token y agrégalo a tu .env

🔗 Configuración de Vercel Deploy Hook

  1. En tu proyecto de Vercel, ve a Settings → Git
  2. En la sección "Deploy Hooks", crea un nuevo hook
  3. Copia la URL y agrégala a DEPLOY_HOOK en tu .env

📡 API Endpoints

Health Check

GET /health

Validar configuración

GET /api/validate
Headers: x-api-key: YOUR_API_KEY

Crear un post

POST /api/posts
Headers:
  Content-Type: application/json
  x-api-key: YOUR_API_KEY

Body:
{
  "title": "Mi Nuevo Post",
  "description": "Descripción del post",
  "tags": ["astro", "blog"],
  "category": "Tutorial",
  "draft": false,
  "content": "# Contenido del post\n\nTexto aquí..."
}

Actualizar un post

PUT /api/posts/:fileName
Headers:
  Content-Type: application/json
  x-api-key: YOUR_API_KEY

Body: (mismo formato que crear)

🔌 Integración con n8n

Paso 1: Añadir Credentials

En n8n:

  1. Ve a CredentialsNew
  2. Selecciona Header Auth
  3. Configura:

- Name: Astro Blog MCP - Header Name: x-api-key - Value: Tu API_SECRET_KEY

Paso 2: Crear Workflow

  1. Añade un nodo HTTP Request
  2. Configura:

- Method: POST - URL: http://tu-servidor:3000/api/posts - Authentication: Selecciona las credentials creadas - Body Content Type: JSON - Body:

   {
     "title": "{{ $json.title }}",
     "description": "{{ $json.description }}",
     "tags": {{ $json.tags }},
     "category": "{{ $json.category }}",
     "content": "{{ $json.content }}"
   }

Ejemplo de Workflow n8n

{
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "http://localhost:3000/api/posts",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "headerAuth",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "title",
              "value": "Nuevo Post desde n8n"
            },
            {
              "name": "description",
              "value": "Post creado automáticamente"
            },
            {
              "name": "tags",
              "value": ["automation", "n8n"]
            },
            {
              "name": "category",
              "value": "Automation"
            },
            {
              "name": "content",
              "value": "# Hola Mundo\n\nEste post fue creado por n8n"
            }
          ]
        }
      },
      "name": "Create Blog Post",
      "type": "n8n-nodes-base.httpRequest",
      "position": [250, 300]
    }
  ]
}

🐳 Deploy con Docker

docker build -t astro-blog-mcp .
docker run -p 3000:3000 --env-file .env astro-blog-mcp

🔒 Seguridad

  • ✅ Autenticación con API Key
  • ✅ Rate limiting (20 req/min)
  • ✅ Validación de nombres de archivo (previene path traversal)
  • ✅ Sanitización de inputs con Zod
  • ✅ Timing-safe comparison para API keys
  • ✅ CORS configurado

🧪 Testing

El proyecto incluye un script de prueba completo:

pnpm test

Esto probará:

  1. Health check
  2. Validación de acceso a GitHub
  3. Creación de un post de prueba

📝 Formato de Posts

Los posts se crean con este front-matter:

---
title: Título del Post
published: 2025-10-25
description: "Descripción corta"
image: ""
tags: ["tag1", "tag2"]
category: "Categoría"
draft: false
---
Contenido del post aquí...

🛠️ Troubleshooting

Error: "Failed to validate GitHub access"

  • Verifica que tu GITHUB_TOKEN sea válido
  • Confirma que el token tenga permisos de repo
  • Verifica que GITHUB_OWNER y GITHUB_REPO sean correctos

Error: "File already exists"

  • El archivo ya existe en el repositorio
  • Usa un nombre diferente o el endpoint PUT para actualizar

Error: "API key is required"

  • Asegúrate de incluir el header x-api-key en tus requests
  • Verifica que la API key coincida con API_SECRET_KEY

📚 Recursos

📄 Licencia

MIT

目录标签

目录标签

知识管理TypeScriptAPI集成GitHub博客自动化本地部署RESTAPIGitHub集成Vercel部署内容管理

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Docker

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-keyremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP