Fider

Interaja com o Fider, uma ferramenta de feedback de clientes de código aberto, para gerenciar sugestões e feedback dos usuários.

Documentação

Servidor MCP para Fider

Um servidor Model Context Protocol (MCP) que fornece ferramentas para interagir com Fider - uma ferramenta de feedback de clientes de código aberto.

Recursos

Este servidor MCP fornece as seguintes ferramentas:

Posts:

  • list_posts - Lista posts com opções de filtragem (busca, visualização, limite, tags)
  • get_post - Recupera um post específico pelo número
  • create_post - Cria novos posts (requer autenticação)
  • edit_post - Edita posts existentes (requer função de colaborador/administrador)
  • delete_post - Exclui posts (requer função de administrador)
  • respond_to_post - Altera o status do post (aberto, planejado, iniciado, concluído, recusado, duplicado)

Comentários:

  • list_comments - Lista comentários de um post específico
  • add_comment - Adiciona um comentário a um post (requer autenticação)
  • update_comment - Atualiza um comentário (requer autenticação e propriedade)
  • delete_comment - Exclui um comentário (requer autenticação e propriedade/administrador)

Tags:

  • list_tags - Lista todas as tags disponíveis
  • create_tag - Cria uma nova tag (requer função de administrador)
  • update_tag - Atualiza uma tag existente (requer função de administrador)
  • delete_tag - Exclui uma tag (requer função de administrador)
  • assign_tag - Atribui uma tag a um post (requer função de colaborador/administrador)
  • unassign_tag - Remove uma tag de um post (requer função de colaborador/administrador)

Instalação

Usando uvx (recomendado - sem necessidade de instalação!)

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Run directly from PyPI (once published)
uvx --from mcp-fider==2025.06.27.170000 --refresh-package mcp-fider mcp-fider

# Or run from GitHub directly
uvx --from git+https://github.com/ringostat/fider-mcp.git mcp-fider

Usando pip (se preferir o método tradicional)

# Clone the repository
git clone https://github.com/ringostat/fider-mcp.git
cd fider-mcp

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install the package
pip install -e .

Configuração

O servidor requer as seguintes variáveis de ambiente:

  • FIDER_BASE_URL ou FIDER_URL - URL da sua instância Fider (ex.: https://feedback.example.com)
  • FIDER_API_KEY - Chave de API opcional para autenticação (necessária para criar, editar e excluir posts)

Obtendo uma Chave de API do Fider

  1. Faça login na sua instância Fider como administrador
  2. Vá para Configurações → API
  3. Gere uma nova chave de API
  4. Copie a chave e defina-a como a variável de ambiente FIDER_API_KEY

Uso

Com Claude Desktop

  1. Adicione o servidor ao seu arquivo de configuração do Claude Desktop:

    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    Windows: %APPDATA%\Claude\claude_desktop_config.json

  2. Adicione a seguinte configuração:

{
  "mcpServers": {
    "fider": {
      "command": "uvx",
      "args": ["--from", "mcp-fider==2025.06.27.170000", 
               "--refresh-package", "mcp-fider", "mcp-fider"],
      "env": {
        "FIDER_BASE_URL": "https://your-fider-instance.com",
        "FIDER_API_KEY": "your-api-key-here"
      }
    }
  }
}
  1. Reinicie o Claude Desktop

Executando Diretamente

Você também pode executar o servidor diretamente para testes:

# Set environment variables
export FIDER_BASE_URL="https://your-fider-instance.com"
export FIDER_API_KEY="your-api-key-here"

# Run from PyPI (once published)
uvx --from mcp-fider==2025.06.27.170000 --refresh-package mcp-fider mcp-fider

# Or run from GitHub directly
uvx --from git+https://github.com/ringostat/fider-mcp.git mcp-fider

Desenvolvimento

Executando Testes

uv run pytest

Formatação de Código

uv run black .
uv run ruff check .

Publicação no PyPI

# Build the package
uv build

# Publish to PyPI
uv publish

Descrições das Ferramentas

list_posts

Lista posts do Fider com filtragem opcional.

Parâmetros:

  • query (string) - Palavras-chave de busca
  • view (string) - Opções de filtro e ordenação: all, recent, my-votes, most-wanted, most-discussed, planned, started, completed, declined, trending
  • limit (inteiro) - Número de entradas a retornar (1-100, padrão: 30)
  • tags (string) - Lista de tags separadas por vírgula para filtrar

get_post

Obtém um post específico pelo seu número.

Parâmetros:

  • number (inteiro, obrigatório) - O número do post a recuperar

create_post

Cria um novo post (requer autenticação).

Parâmetros:

  • title (string, obrigatório) - O título do post
  • description (string) - A descrição do post

edit_post

Edita um post existente (requer função de colaborador/administrador).

Parâmetros:

  • number (inteiro, obrigatório) - O número do post a editar
  • title (string, obrigatório) - O novo título do post
  • description (string) - A nova descrição do post

delete_post

Exclui um post (requer função de administrador).

Parâmetros:

  • number (inteiro, obrigatório) - O número do post a excluir
  • reason (string) - Motivo da exclusão

respond_to_post

Responde a um post alterando seu status (requer função de colaborador/administrador).

Parâmetros:

  • number (inteiro, obrigatório) - O número do post a responder
  • status (string, obrigatório) - O novo status: open, planned, started, completed, declined, duplicate
  • text (string) - Descrição opcional da mudança de status
  • originalNumber (inteiro) - Obrigatório quando o status é 'duplicate' - o número do post para mesclar

Ferramentas de Comentários

list_comments

Lista comentários de um post específico.

Parâmetros:

  • number (inteiro, obrigatório) - O número do post para obter comentários

add_comment

Adiciona um comentário a um post (requer autenticação).

Parâmetros:

  • number (inteiro, obrigatório) - O número do post para comentar
  • content (string, obrigatório) - O conteúdo do comentário

update_comment

Atualiza um comentário (requer autenticação e propriedade).

Parâmetros:

  • post_number (inteiro, obrigatório) - O número do post
  • comment_id (inteiro, obrigatório) - O ID do comentário a atualizar
  • content (string, obrigatório) - O novo conteúdo do comentário

delete_comment

Exclui um comentário (requer autenticação e propriedade/administrador).

Parâmetros:

  • post_number (inteiro, obrigatório) - O número do post
  • comment_id (inteiro, obrigatório) - O ID do comentário a excluir

Ferramentas de Tags

list_tags

Lista todas as tags disponíveis.

Parâmetros: Nenhum

create_tag

Cria uma nova tag (requer função de administrador).

Parâmetros:

  • name (string, obrigatório) - O nome da tag
  • color (string, obrigatório) - A cor da tag (formato hexadecimal, ex.: #FF0000)
  • isPublic (booleano) - Se a tag é pública (padrão: true)

update_tag

Atualiza uma tag existente (requer função de administrador).

Parâmetros:

  • slug (string, obrigatório) - O slug da tag a atualizar
  • name (string, obrigatório) - O novo nome da tag
  • color (string, obrigatório) - A nova cor da tag (formato hexadecimal, ex.: #FF0000)
  • isPublic (booleano) - Se a tag é pública

delete_tag

Exclui uma tag (requer função de administrador).

Parâmetros:

  • slug (string, obrigatório) - O slug da tag a excluir

assign_tag

Atribui uma tag a um post (requer função de colaborador/administrador).

Parâmetros:

  • post_number (inteiro, obrigatório) - O número do post
  • slug (string, obrigatório) - O slug da tag a atribuir

unassign_tag

Remove uma tag de um post (requer função de colaborador/administrador).

Parâmetros:

  • post_number (inteiro, obrigatório) - O número do post
  • slug (string, obrigatório) - O slug da tag a remover

Solução de Problemas

Problemas de Conexão

  • Certifique-se de que sua instância Fider esteja acessível a partir da sua rede
  • Verifique se o FIDER_BASE_URL está correto e não possui barra final
  • Verifique se sua chave de API é válida se estiver recebendo erros de autenticação

Erros de Permissão

  • Criar, editar e excluir posts requer autenticação adequada
  • Certifique-se de que sua chave de API tenha as permissões necessárias para as operações que você está tentando realizar

Licença

Licença MIT - consulte o arquivo LICENSE para detalhes

Contribuições

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