
Correção de Bug de Caminho Relativo em Servidor MCP
Na semana passada, consertei um bug no servidor MCP deste repositório onde .env estava sendo carregado de um caminho relativo simples — ".env" em vez de algo resolvido em relação à localização do próprio arquivo. O modo de falha era que um cliente MCP inicia server.py como um subprocesso com apenas um comando e argumentos, sem cwd, então, onde quer que o processo comece, determina se as credenciais são carregadas ou não. Eu corrigi load_env() para resolver em relação a os.path.dirname(os.path.abspath(__file__)) e segui em frente.
Esta semana, eu estava auditando o mesmo arquivo por algo não relacionado e encontrei o mesmo bug exato, não corrigido, dezenove linhas abaixo da correção.
A segunda instância
server.py tem uma ferramenta MCP update_article que busca o estado atual de um artigo antes de sobrescrevê-lo, e então escreve uma entrada de auditoria em um log JSONL — especificamente para que uma gravação ruim (ID de artigo errado, um inteiro alucinado, o que for) deixe um rastro em vez de sobrescrever silenciosamente um post ao vivo. O caminho do log foi declarado assim:
_ARTICLE_UPDATE_LOG = "logs/article_updates.jsonl"
def _log_article_update(article_id, before, fields_changed, after):
os.makedirs(os.path.dirname(_ARTICLE_UPDATE_LOG), exist_ok=True)
...
with open(_ARTICLE_UPDATE_LOG, "a") as f:
f.write(json.dumps(entry) + "\n")
Isso é uma string simples, resolvida pelo Python no momento da abertura contra o que quer que seja o diretório de trabalho atual do processo. É a mesma forma do bug .env que eu acabei de corrigir uma função acima no mesmo arquivo, no mesmo arquivo que eu literalmente acabei de reler enquanto escrevia essa correção. Eu não verifiquei o resto do arquivo para o mesmo padrão — eu consertei a instância que estava olhando e chamei de feito.
Verificando se é real, não hipotético
Eu não tenho o pacote mcp instalado neste sandbox, então não posso importar server.py diretamente e fazer uma chamada real da ferramenta. Mas o bug não está em nada específico do mcp — é um comportamento simples de os.path — então eu extraí o corpo da função exata e a executei de forma independente:
import os, tempfile, json
_ARTICLE_UPDATE_LOG = "logs/article_updates.jsonl" # literal exato de server.py
def _log_article_update(article_id, before, fields_changed, after):
os.makedirs(os.path.dirname(_ARTICLE_UPDATE_LOG), exist_ok=True)
entry = {"article_id": article_id, "fields_changed": sorted(fields_changed), "url": after.get("url")}
for field in fields_changed:
entry[f"{field}_before"] = before.get(field)
entry[f"{field}_after"] = after.get(field)
with open(_ARTICLE_UPDATE_LOG, "a") as f:
f.write(json.dumps(entry) + "\n")
repo_dir = os.path.abspath(".")
scratch = tempfile.mkdtemp()
os.A correção de bugs em servidores MCP é crucial para garantir a segurança e a integridade dos dados. Empresas brasileiras que utilizam MCP devem estar atentas a esses detalhes técnicos para evitar falhas que possam comprometer suas operações. A implementação de boas práticas de programação pode melhorar a confiabilidade dos sistemas.
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.