FeatQ

Quadro de votação de funcionalidades hospedado, cuja solicitação mais votada seu agente de codificação (Claude Code, Cursor, Codex) puxa como uma especificação pronta para build via MCP.

Documentação

MCP para quadros FeatQ

O servidor MCP do FeatQ é um endpoint HTTP streamable padrão em /api/mcp. Ele fornece a um cliente compatível com MCP uma conexão com escopo de quadro para ler solicitações, verificar votos e comentários, gerar especificações de implementação e atualizar o status das solicitações.

Cada solicitação é autenticada com Authorization: Bearer fq_.... A chave do quadro determina qual quadro o cliente pode acessar. O FeatQ não usa o transporte SSE mais antigo, portanto o cliente deve falar HTTP streamable. Claude Code, Cursor, Codex CLI e qualquer outro cliente que implemente esse transporte podem se conectar diretamente.

Obtenha sua chave de quadro

Abra a página de administração do seu quadro e encontre o painel Conecte seu agente de codificação. Copie a chave bearer ou copie uma configuração de cliente pronta. Mantenha a chave privada; qualquer pessoa com ela pode ler e atualizar esse quadro por meio do MCP.

As chaves de quadro começam com fq_. Use a chave do quadro que você deseja que o agente gerencie, pois as ferramentas não podem cruzar desse quadro para outro. Se você mantiver quadros separados de produto ou staging, configure cada um como um servidor MCP separado com sua própria chave.

Claude Code

Execute o comando no projeto onde você usa o Claude Code. O transporte HTTP e o cabeçalho de autorização são armazenados com a definição do servidor, então as ferramentas ficam disponíveis para esse projeto do Claude Code após uma reinicialização.

claude mcp add --transport http featq https://featq.com/api/mcp --header "Authorization: Bearer fq_YOUR_KEY"
  1. Abra um terminal no projeto onde você usa o Claude Code e execute o comando acima.
  2. A conexão padrão de escopo local é armazenada nesse projeto em ~/.claude.json. Mantenha a chave bearer privada.
  3. Saia e reinicie o Claude Code nesse projeto para que ele recarregue a conexão.
  4. Verifique perguntando: Use FeatQ list_requests para listar minhas solicitações do quadro.

Cursor

O Cursor lê servidores MCP de um arquivo de configuração JSON. O arquivo do projeto mantém a conexão local a um repositório, enquanto o arquivo no diretório inicial a disponibiliza entre projetos abertos pela sua conta de usuário.

{
  "mcpServers": {
    "featq": {
      "url": "https://featq.com/api/mcp",
      "headers": {
        "Authorization": "Bearer fq_YOUR_KEY"
      }
    }
  }
}
  1. Salve o JSON como .cursor/mcp.json em um projeto, ou como ~/.cursor/mcp.json para usá-lo globalmente. Não faça commit de um arquivo contendo sua chave bearer.
  2. Reinicie completamente o Cursor após salvar o arquivo.
  3. Verifique no chat do Agent perguntando: Use FeatQ list_requests para listar minhas solicitações do quadro.

Codex CLI

O Codex CLI pode se conectar ao FeatQ diretamente via HTTP streamable. Defina FEATQ_BOARD_KEY para sua chave de quadro fq_... no ambiente que inicia o Codex. Um arquivo de inicialização do shell ou seu gerenciador de segredos habitual pode fornecer a variável, mas ela não deve ser commitada no repositório.

Adicione o servidor com o comando CLI abaixo. A flag de token bearer informa ao Codex para ler o token da variável de ambiente nomeada em vez de armazenar a chave em seu arquivo de configuração.

codex mcp add featq --url https://featq.com/api/mcp --bearer-token-env-var FEATQ_BOARD_KEY

O comando cria esta entrada em ~/.codex/config.toml. Você também pode adicionar a mesma entrada manualmente. Reinicie o Codex após alterar sua configuração ou ambiente e peça para chamar list_requests para verificar o acesso.

[mcp_servers.featq]
url = "https://featq.com/api/mcp"
bearer_token_env_var = "FEATQ_BOARD_KEY"

Qualquer outro cliente MCP

O FeatQ funciona com qualquer cliente que implemente MCP sobre HTTP streamable e possa enviar um cabeçalho de autorização bearer. Crie uma entrada de servidor HTTP remoto usando estes valores; não há marketplace de clientes nem etapa de aprovação específica do cliente.

URL do endpoint

https://featq.com/api/mcp

Transporte

HTTP streamable, não SSE

Cabeçalho de autenticação

Authorization: Bearer fq_your_key

Os rótulos dos clientes variam, mas o tipo de conexão pode ser chamado de MCP remoto, MCP HTTP ou HTTP streamable. Não selecione um tipo de conexão somente SSE. Após conectar, o cliente deve descobrir as sete ferramentas listadas abaixo durante a inicialização do MCP.

Referência de ferramentas

Todas as ferramentas operam no quadro identificado pela chave bearer. IDs de solicitação de um quadro diferente são retornados como não encontrados. Os resultados das ferramentas são serializados em JSON no conteúdo de texto do MCP, o que permite que um agente inspecione os campos antes de decidir a próxima chamada.

list_requests

Lista solicitações do quadro autenticado. Use para encontrar o trabalho mais solicitado, revisar submissões recentes ou focar em uma etapa do roadmap.

Argumentos

status (string, opcional)

Filtra por new, considering, planned, in_progress ou done.

sort ("votes" | "newest", opcional)

Controla a ordem das solicitações. O padrão é votes.

limit (inteiro, opcional)

Limita o resultado a 1 a 50 solicitações. O padrão é 20.

Retornos

Retorna o slug e o nome do quadro, além de um array de solicitações. Cada solicitação contém id, title, description, status, votes, comments e created_at.

Exemplo

list_requests({ status: "planned", sort: "votes", limit: 10 })

get_ranked_requests

Classifica as solicitações abertas no quadro autenticado por demanda. A pontuação conta votos mais meio ponto por comentário e diminui conforme a solicitação envelhece em cerca de 90 dias, com empates indo para a solicitação mais recente. Solicitações já marcadas como done são excluídas.

Argumentos

limit (inteiro, opcional)

Limita o resultado a 1 a 20 solicitações. O padrão é 5.

Retornos

Retorna o quadro, generated_at, uma descrição da classificação e um array de solicitações. Cada solicitação contém id, title, status, votes, comments, created_at e score.

Exemplo

get_ranked_requests({ limit: 5 })

get_request

Lê o contexto completo de uma solicitação no quadro autenticado antes de planejar ou alterá-la.

Argumentos

id (string, obrigatório)

O ID de solicitação de recurso não vazio retornado por list_requests.

Retornos

Retorna o quadro, o resumo da solicitação com submitter_email e seus comentários. Cada comentário inclui id, author_email, author_name, content, is_admin e created_at.

Exemplo

get_request({ id: "REQUEST_ID" })

generate_spec

Cria um rascunho de especificação de implementação em markdown pronto para agente a partir de uma solicitação e seu contexto de quadro.

Argumentos

id (string, obrigatório)

O ID de solicitação de recurso não vazio para transformar em um rascunho de especificação.

Retornos

Retorna o quadro, um objeto de solicitação compacto com id, title e status, e o markdown gerado. O markdown é um rascunho que o agente deve verificar contra o código.

Exemplo

generate_spec({ id: "REQUEST_ID" })

update_request_status

Move uma solicitação para um status de fluxo de trabalho válido. Marcá-la como done também a faz aparecer no changelog público do quadro.

Argumentos

id (string, obrigatório)

O ID não vazio de uma solicitação no quadro autenticado.

status (string, obrigatório)

Um de new, considering, planned, in_progress ou done.

Retornos

Retorna success, o resumo atualizado da solicitação, notifications_queued e changelog_url. A URL do changelog está presente quando o status é done e é null para outros status.

Exemplo

update_request_status({ id: "REQUEST_ID", status: "done" })

get_board_stats

Obtém uma visão compacta da demanda e da distribuição do fluxo de trabalho no quadro autenticado.

Argumentos

Sem argumentos.

Retornos

Retorna o quadro, total_requests, total_votes, contagens by_status para todos os cinco status e top_requests. O array top_requests contém os cinco resumos de solicitações com mais votos.

Exemplo

get_board_stats({})

list_competitor_claims

Lista as alegações que o FeatQ extraiu das páginas de comparação de concorrentes que este quadro monitora. Somente leitura. Use para ver o que essas páginas dizem que o produto está perdendo antes de planejar o trabalho.

Argumentos

state (string, opcional)

Filtra por new, added ou dismissed. O padrão é new.

limit (inteiro, opcional)

Limita o resultado a 1 a 100 alegações. O padrão é 25.

Retornos

Retorna um array de alegações. Cada alegação contém id, feature, summary, quote, claim_type, competitor, source_url, first_seen_at, state e request_id.

Exemplo

list_competitor_claims({ state: "new", limit: 25 })

Um fluxo de trabalho de agente que entrega

Comece pedindo ao agente para chamar list_requests com sort: "votes". A resposta classifica as solicitações por demanda demonstrada e dá ao agente os IDs de solicitação necessários para chamadas mais profundas. O agente pode escolher o item principal, ou você pode dizer qual status filtrar e quantos candidatos comparar. Chamar get_request em seguida adiciona a descrição completa, o e-mail do remetente e o contexto da discussão antes das decisões de implementação.

Com uma solicitação selecionada, generate_spec produz um rascunho de implementação em markdown. O agente de codificação deve reconciliar esse rascunho com o repositório real, identificar arquivos afetados, implementar a mudança e executar as verificações do projeto. O FeatQ fornece o contexto de feedback e o escopo proposto; o agente ainda verifica suposições técnicas contra o código que está alterando.

Após a conclusão do trabalho, o agente chama update_request_status com status: "done". O FeatQ enfileira as notificações aplicáveis aos votantes e publica a solicitação concluída no changelog público do quadro. A resposta inclui o caminho do changelog, para que o agente possa informar onde os usuários podem ver a atualização entregue.

Notas de segurança

  • Uma chave tem escopo para um quadro. Ela permite que as ferramentas MCP leiam esse quadro e atualizem seus status de solicitação, mas não concede acesso a outros quadros do FeatQ.
  • Trate a chave como um segredo. Mantenha-a em variáveis de ambiente, gerenciadores de segredos ou configuração privada do cliente. Nunca a coloque em código de navegador, logs públicos ou um arquivo commitado no controle de versão.
  • Limites de taxa por quadro se aplicam. Quando um quadro excede seu limite MCP, o FeatQ responde com HTTP 429 e um cabeçalho Retry-After. Aguarde o número de segundos nesse cabeçalho antes de tentar novamente, em vez de repetir imediatamente a chamada.

Curioso sobre como outras ferramentas de feedback se comparam? Veja quais ferramentas de feedback têm servidores MCP.