Hashnode MCP Server

Un servidor MCP para interactuar con la API de Hashnode.

Documentación

MseeP.ai Security Assessment Badge

Servidor MCP de Hashnode

Un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con la API de Hashnode. Este servidor proporciona herramientas para acceder y buscar contenido de Hashnode programáticamente.

Hashnode MCP Server

Demo

  • Crear artículo Create Article
  • Actualizar artículo Update Article

Características

  • Crear y publicar nuevos artículos
  • Actualizar artículos existentes
  • Buscar artículos por palabras clave
  • Obtener detalles de artículos
  • Obtener información de usuarios
  • Obtener los artículos más recientes de una publicación

Instalación

  1. Clona el repositorio:

    git clone https://github.com/sbmagar13/hashnode-mcp-server.git
    cd hashnode-mcp-server
    
  2. Crea un entorno virtual y actívalo:

    python -m venv .venv
    source .venv/bin/activate  # On Windows, use: .venv\Scripts\activate
    
  3. Instala las dependencias:

    pip install -r requirements.txt
    
  4. Crea un archivo .env en el directorio raíz con tus credenciales de la API de Hashnode:

    HASHNODE_PERSONAL_ACCESS_TOKEN=your_personal_access_token
    HASHNODE_API_URL=https://gql.hashnode.com
    

Uso

Iniciar el servidor

Tienes dos opciones para ejecutar el servidor:

Opción 1: Ejecutar el servidor manualmente

python run_server.py

O directamente usando el archivo raíz:

python mcp_server.py

El servidor se iniciará y escuchará conexiones de asistentes de IA. Por defecto, se ejecuta en localhost:8000 usando el protocolo de transporte de Eventos Enviados por el Servidor (SSE).

Opción 2: Deja que la integración MCP lo maneje automáticamente

Cuando se configura correctamente en Claude Desktop o la extensión Cline de VSCode, la integración MCP iniciará y gestionará automáticamente el proceso del servidor por ti.

Nota importante sobre la estructura de archivos

Al configurar tu servidor MCP en Claude Desktop o la extensión Cline de VSCode, debes usar el archivo raíz mcp_server.py directamente en lugar de los archivos en el directorio hashnode_mcp. El directorio hashnode_mcp es principalmente para fines de empaquetado.

Herramientas disponibles

El servidor proporciona las siguientes herramientas:

  • test_api_connection(): Prueba la conexión con la API de Hashnode
  • create_article(title, body_markdown, tags="", published=False): Crea y publica un nuevo artículo en Hashnode
  • update_article(article_id, title=None, body_markdown=None, tags=None, published=None): Actualiza un artículo existente en Hashnode
  • get_latest_articles(hostname, limit=10): Obtiene los artículos más recientes de una publicación de Hashnode por nombre de host
  • search_articles(query, page=1): Busca artículos en Hashnode
  • get_article_details(article_id): Obtiene información detallada sobre un artículo específico
  • get_user_info(username): Obtiene información sobre un usuario de Hashnode

Usar el servidor MCP

Una vez que el servidor esté en ejecución, puedes usarlo con asistentes de IA que admitan el Protocolo de Contexto de Modelo (MCP), como Claude. El asistente podrá usar las herramientas proporcionadas por el servidor para interactuar con la API de Hashnode.

Las herramientas se pueden usar para:

  • Probar la conexión con la API
  • Crear y publicar nuevos artículos
  • Actualizar artículos existentes
  • Obtener los artículos más recientes de una publicación
  • Buscar artículos
  • Obtener información detallada sobre artículos específicos
  • Obtener información sobre usuarios

Configurar MCP en Claude Desktop y la extensión Cline de VSCode

Extensión Cline de VSCode

  1. Navega al archivo de configuración MCP de Cline:

    • Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
    • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings\cline_mcp_settings.json
    • Linux: Unfortunately, Claude Desktop is not available for Linux as of now (Puedes usar la extensión Cline en su lugar)
  2. Añade tu configuración del servidor MCP de Hashnode:

    {
      "mcpServers": {
        "hashnode": {
          "command": "/path/to/your/venv/bin/python",
          "args": [
            "/path/to/your/hashnode-mcp-server/mcp_server.py"
          ],
          "env": {
            "HASHNODE_PERSONAL_ACCESS_TOKEN": "your-personal-access-token"
          }
        }
      }
    }
    

Claude Desktop

  1. Navega al archivo de configuración:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Añade tu configuración del servidor MCP de Hashnode usando el mismo formato que arriba.

Solución de problemas de conexión

Si encuentras problemas de conexión:

  • Verifica que el servidor esté en ejecución
  • Revisa las rutas en tu configuración
  • Asegúrate de que tus variables de entorno estén configuradas correctamente
  • Revisa los registros del servidor para ver mensajes de error
  • Intenta reiniciar tanto el servidor MCP como la aplicación Claude

Variables de entorno

  • HASHNODE_PERSONAL_ACCESS_TOKEN: Tu token de acceso personal de Hashnode
  • HASHNODE_API_URL: La URL de la API GraphQL de Hashnode (por defecto: https://gql.hashnode.com)

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una Solicitud de Extracción (Pull Request).

  1. Haz un fork del repositorio
  2. Crea tu rama de características (git checkout -b feature/amazing-feature)
  3. Haz commit de tus cambios (git commit -m 'Add some amazing feature')
  4. Haz push a la rama (git push origin feature/amazing-feature)
  5. Abre una Solicitud de Extracción

Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.

Repositorio de GitHub

El código fuente de este proyecto está disponible en GitHub: https://github.com/sbmagar13/hashnode-mcp-server

Arquitectura técnica

El proyecto está organizado con una estructura limpia y modular:

  • mcp_server.py: Implementación raíz del servidor que se puede ejecutar directamente
  • hashnode_mcp/: Paquete principal que contiene la funcionalidad modular
    • mcp_server.py: Versión del paquete de la implementación del servidor
    • utils.py: Funciones de utilidad para formatear respuestas y consultas GraphQL
  • run_server.py: Punto de entrada para ejecutar el servidor usando la versión del paquete

El servidor usa programación asíncrona con las bibliotecas asyncio y httpx de Python para una comunicación eficiente con la API. Las consultas y mutaciones GraphQL se definen como constantes, lo que facilita su mantenimiento y actualización.

Mejoras futuras

Los desarrollos futuros planificados incluyen:

  • Funcionalidades adicionales de Hashnode (comentarios, series, boletines)
  • Integración de análisis
  • Optimización de contenido
  • Soporte multiusuario
  • Soporte de webhooks

Agradecimientos