
Por que eu dei ao meu painel de renda um servidor MCP em vez de um aplicativo móvel
Eu ganho dinheiro de 23 lugares diferentes.
Não é muito dinheiro. Alguns produtos do Stripe, um link de afiliado da Amazon, alguns scrapers em um marketplace, um aplicativo iOS que gera $6,99 por mês, a venda ocasional de PDFs. O menor deles ganhou $0,01 no mês passado. O maior ganhou $224.
Somados, isso representa a maior parte da minha renda. E até recentemente eu não tinha ideia de qual era o número em um dia qualquer.
O problema não é a falta de um painel
Painéis de receita existem. Baremetrics, ChartMogul, ProfitWell — são bons produtos. Eles também são feitos para um formato de negócio completamente diferente: uma conta do Stripe, analisada profundamente, com preços a partir de cerca de $129/mês para empresas com um único produto e uma equipe de crescimento.
Meu formato é o oposto. Muitos pequenos fluxos, e — essa é a parte que importa — aproximadamente metade deles não publica nenhuma API de ganhos.
Eu verifiquei, cuidadosamente, porque queria automatizar isso:
- Amazon Associates: sem OAuth, sem API pública de ganhos. A PA-API retorna dados do produto, não o que você ganhou. Há um feed de dados S3, concedido a critério da Amazon, e pequenos editores não se qualificam.
- A maioria das redes de anúncios: a mesma história.
- Apify (onde vendo scrapers): os ganhos estão disponíveis apenas no console. Sem API.
Portanto, qualquer ferramenta construída puramente com base em integrações é estruturalmente cega para esse dinheiro. Não é que "não tenha chegado a isso" — é cega por arquitetura. Você não pode integrar com uma API que não existe.
Esse é o espaço que eu construí: automatizar o que tem uma API e fazer a entrada manual levar dez segundos para o resto. Um total mensal, digitado uma vez, unindo os mesmos gráficos, médias e metas das fontes automáticas. Sem glamour. É o produto inteiro.
Por que eu construí um servidor MCP em vez de um aplicativo móvel
Essa é a decisão da qual estou realmente feliz.
O próximo passo óbvio para um painel é um aplicativo móvel. Eu não construí um, porque percebi algo sobre como eu uso a coisa: eu nunca quis olhar para um gráfico. Eu queria fazer uma pergunta.
"Quanto eu ganhei este mês em tudo?"
Isso não é uma consulta visual. É conversacional. Então, em vez de um aplicativo, eu lancei um servidor MCP. Agora eu pergunto ao Claude e recebo uma resposta baseada nos meus números reais:
você ▸ quanto eu ganhei este mês em tudo?
ai ▸ $412.30 este mês (média $14.22/dia). Top: Amazon $109.18,
Rotate First Officer $98.14, Checkride PDF $47.28.
Você está 94% da sua meta mensal.
Quatro ferramentas: get_income_summary, get_sources, get_month, log_monthly_income. Essa última significa que eu posso registrar a renda falando, o que transforma a parte mais tediosa de todo o produto em uma frase.
O problema de autenticação que ninguém avisa
É aqui que as coisas ficaram interessantes tecnicamente.
O aplicativo hospedado autentica com links mágicos do Supabase, que produzem um JWT que expira em uma hora. Isso é correto para um navegador. É inútil para um CLI: um servidor MCP rodando sob o Claude Desktop não pode atualizar uma sessão de navegador.
Então, por um tempo, meu MCP só funcionou contra instâncias auto-hospedadas, o que significava que qualquer um que o descobrisse tinha que implantar seu próprio Postgres para usá-lo. Não exatamente um funil.
A solução são tokens de API pessoais, e os detalhes são o ponto principal:
Armazene um hash, nunca o token. O texto em claro é mostrado uma vez, na criação. O banco de dados mantém um hash SHA-256. Um vazamento de banco de dados não gera nada utilizável.
export function generateToken() const token = 'iok_' + randomBytes(24).toString('hex');
return tokenhashhashToken(token), prefixtokenslice(012) }
Mostre um prefixo e um timestamp de último uso. Uma credencial que você não pode ver é uma credencial que você não pode auditar. Se um token diz "nunca usado" seis meses depois, você sabe que deve matá-lo.
Um token não pode criar outro token. Isso eu acho subestimado:
function isBrowserSession(reqNextRequestbooleanreturn (reqheadersget('authorization') ''includes('iok_');
O produto estava ao vivo e cobrando há 26 dias. Meu próprio site estava dizendo a cada visitante que ele ainda não existia, e oferecendo a eles uma lista de espera. Essa lista de espera teve zero inscrições, que em retrospectiva foi a única métrica honesta na página.
Não era um problema de conversão. Ninguém nunca tinha visto o produto.
Eu tenho uma regra agora, e eu a ofereceria a qualquer um que esteja lançando
O artigo explora a implementação de um servidor MCP para gerenciar múltiplas fontes de renda, o que pode inspirar empresas brasileiras a adotar soluções mais flexíveis e automatizadas. A abordagem conversacional pode melhorar a experiência do usuário e a eficiência na gestão financeira.
Noticias relacionadas
Servidor MCP 1.1.0 da endoflife.ai: Exposição KEV, verificações SBOM e dispositivos de borda para agentes de IA
O servidor MCP da endoflife.ai agora possui dez ferramentas de leitura. Novas funcionalidades incluem exposição a vulnerabilidades conhecidas e status de dispositivos de borda, essenciais para a segurança de versões de software.

O que os agentes de IA realmente veem ao buscar seu Ator Apify
O artigo explora como os agentes de IA interagem com o servidor MCP da Apify, destacando a importância da descrição e otimização dos Ators para serem encontrados. Inclui uma análise de como os resultados de busca diferem entre humanos e agentes.
Como o Protocolo de Contexto do Modelo (MCP) muda para sempre o lançamento de recursos em SaaS
O Protocolo de Contexto do Modelo (MCP) é mais do que leitura de dados; sua aplicação mais poderosa é a orquestração de aplicativos em tempo de execução, permitindo que agentes de IA gerenciem anúncios e guias de onboarding sem código efêmero.
Gostou do conteudo?
Receba toda semana as principais novidades sobre WebMCP.