Hashnode MCP Server

Um servidor MCP para interagir com a API do Hashnode.

Documentação

MseeP.ai Security Assessment Badge

Hashnode MCP Server

Um servidor Model Context Protocol (MCP) para interagir com a API do Hashnode. Este servidor fornece ferramentas para acessar e pesquisar conteúdo do Hashnode programaticamente.

Hashnode MCP Server

Demonstração

  • Criar Artigo Create Article
  • Atualizar Artigo Update Article

Recursos

  • Criar e publicar novos artigos
  • Atualizar artigos existentes
  • Pesquisar artigos por palavras-chave
  • Obter detalhes de artigos
  • Obter informações do usuário
  • Buscar os artigos mais recentes de uma publicação

Instalação

  1. Clone o repositório:

    git clone https://github.com/sbmagar13/hashnode-mcp-server.git
    cd hashnode-mcp-server
    
  2. Crie um ambiente virtual e ative-o:

    python -m venv .venv
    source .venv/bin/activate  # On Windows, use: .venv\Scripts\activate
    
  3. Instale as dependências:

    pip install -r requirements.txt
    
  4. Crie um arquivo .env no diretório raiz com suas credenciais da API do Hashnode:

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

Uso

Iniciando o Servidor

Você tem duas opções para executar o servidor:

Opção 1: Execute o servidor manualmente

python run_server.py

Ou diretamente usando o arquivo raiz:

python mcp_server.py

O servidor iniciará e aguardará conexões de assistentes de IA. Por padrão, ele executa em localhost:8000 usando o protocolo de transporte Server-Sent Events (SSE).

Opção 2: Deixe a integração MCP lidar automaticamente

Quando configurado corretamente no Claude Desktop ou na extensão Cline VSCode, a integração MCP iniciará e gerenciará automaticamente o processo do servidor para você.

Nota Importante sobre a Estrutura de Arquivos

Ao configurar seu servidor MCP no Claude Desktop ou na extensão Cline VSCode, você deve usar o arquivo raiz mcp_server.py diretamente, em vez dos arquivos no diretório hashnode_mcp. O diretório hashnode_mcp é principalmente para fins de empacotamento.

Ferramentas Disponíveis

O servidor fornece as seguintes ferramentas:

  • test_api_connection(): Testar a conexão com a API do Hashnode
  • create_article(title, body_markdown, tags="", published=False): Criar e publicar um novo artigo no Hashnode
  • update_article(article_id, title=None, body_markdown=None, tags=None, published=None): Atualizar um artigo existente no Hashnode
  • get_latest_articles(hostname, limit=10): Obter os artigos mais recentes de uma publicação do Hashnode por hostname
  • search_articles(query, page=1): Pesquisar artigos no Hashnode
  • get_article_details(article_id): Obter informações detalhadas sobre um artigo específico
  • get_user_info(username): Obter informações sobre um usuário do Hashnode

Usando o Servidor MCP

Uma vez que o servidor esteja em execução, você pode usá-lo com assistentes de IA que suportam o Model Context Protocol (MCP), como o Claude. O assistente poderá usar as ferramentas fornecidas pelo servidor para interagir com a API do Hashnode.

As ferramentas podem ser usadas para:

  • Testar a conexão com a API
  • Criar e publicar novos artigos
  • Atualizar artigos existentes
  • Obter os artigos mais recentes de uma publicação
  • Pesquisar artigos
  • Obter informações detalhadas sobre artigos específicos
  • Obter informações sobre usuários

Configurando MCP no Claude Desktop e na Extensão Cline VSCode

Extensão Cline VSCode

  1. Navegue até o arquivo de configurações MCP do 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 (Você pode usar a extensão Cline em vez disso)
  2. Adicione sua configuração do servidor MCP do 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. Navegue até o arquivo de configuração:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Adicione sua configuração do servidor MCP do Hashnode usando o mesmo formato acima.

Solução de Problemas de Conexão

Se você encontrar problemas de conexão:

  • Verifique se o servidor está em execução
  • Verifique os caminhos na sua configuração
  • Certifique-se de que suas variáveis de ambiente estejam configuradas corretamente
  • Verifique os logs do servidor para mensagens de erro
  • Tente reiniciar tanto o servidor MCP quanto o aplicativo Claude

Variáveis de Ambiente

  • HASHNODE_PERSONAL_ACCESS_TOKEN: Seu token de acesso pessoal do Hashnode
  • HASHNODE_API_URL: URL da API GraphQL do Hashnode (padrão: https://gql.hashnode.com)

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

  1. Faça um fork do repositório
  2. Crie sua branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add some amazing feature')
  4. Envie para a branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Licença

Este projeto é licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

Repositório GitHub

O código-fonte deste projeto está disponível no GitHub: https://github.com/sbmagar13/hashnode-mcp-server

Arquitetura Técnica

O projeto é organizado com uma estrutura limpa e modular:

  • mcp_server.py: Implementação raiz do servidor que pode ser executada diretamente
  • hashnode_mcp/: Pacote principal contendo a funcionalidade modular
    • mcp_server.py: Versão do pacote da implementação do servidor
    • utils.py: Funções utilitárias para formatar respostas e consultas GraphQL
  • run_server.py: Ponto de entrada para executar o servidor usando a versão do pacote

O servidor usa programação assíncrona com as bibliotecas asyncio e httpx do Python para comunicação eficiente com a API. Consultas e mutações GraphQL são definidas como constantes, facilitando a manutenção e atualização.

Melhorias Futuras

Desenvolvimentos futuros planejados incluem:

  • Recursos adicionais do Hashnode (comentários, séries, newsletters)
  • Integração de análises
  • Otimização de conteúdo
  • Suporte a múltiplos usuários
  • Suporte a webhooks

Agradecimentos