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_URLouFIDER_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
- Faça login na sua instância Fider como administrador
- Vá para Configurações → API
- Gere uma nova chave de API
- Copie a chave e defina-a como a variável de ambiente
FIDER_API_KEY
Uso
Com Claude Desktop
-
Adicione o servidor ao seu arquivo de configuração do Claude Desktop:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json -
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"
}
}
}
}
- 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 buscaview(string) - Opções de filtro e ordenação: all, recent, my-votes, most-wanted, most-discussed, planned, started, completed, declined, trendinglimit(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 postdescription(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 editartitle(string, obrigatório) - O novo título do postdescription(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 excluirreason(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 responderstatus(string, obrigatório) - O novo status: open, planned, started, completed, declined, duplicatetext(string) - Descrição opcional da mudança de statusoriginalNumber(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 comentarcontent(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 postcomment_id(inteiro, obrigatório) - O ID do comentário a atualizarcontent(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 postcomment_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 tagcolor(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 atualizarname(string, obrigatório) - O novo nome da tagcolor(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 postslug(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 postslug(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_URLestá 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.