{"name":"dev.usetrail/trail","slug":"usetrail-trail","title":"Trail","description":"Issue tracker and durable project memory for your coding agent, scoped to the folder you open.","url":"https://mcp.market/server/usetrail-trail","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":29,"stars":0,"forks":0,"downloads_week":191,"last_push_at":"2026-09-17T22:00:26.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/arsprengel/trail-mcp","website":"https://usetrail.dev","version":"1.29.1","remotes":[],"packages":[{"registryType":"npm","identifier":"usetrail","version":"1.29.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Only for a self-hosted Trail. Left unset, the connector points at the hosted service.","name":"TRAIL_API_URL"},{"description":"Overrides the project name, which otherwise comes from the folder you have open.","name":"TRAIL_PROJECT"}]}],"tools":[{"name":"add_attachment","description":"Anexa um arquivo (base64) a um card do tracker. Use pra guardar spec, doc ou planilha relevante ao card. Nasce INTERNO (so o time ve); passe shared_with_client=true pra o cliente do portal poder baixar.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_item","description":"Cria um item (ponta solta). Chame ao descobrir trabalho novo a fazer.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_memory","description":"Registra conhecimento duravel de REFERENCIA na MRP do projeto (comando, deploy, gotcha, decisao, contexto) - o que um agente precisa LER pra nao redescobrir.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_reminder","description":"Registra um lembrete/agendamento no Trail. Chame SEMPRE que prometer avisar algo no futuro","write_action":false,"price_micros":0,"input_schema":null},{"name":"delete_item","description":"Apaga um item de vez (item + historico). Use quando um item foi criado por engano ou nao serve mais. Irreversivel.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_reminder","description":"Apaga um lembrete de vez. Use so quando ele foi criado por engano ou com o","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_attachment","description":"Le o CONTEUDO de um anexo sob demanda. IMAGEM VOLTA COMO IMAGEM DE VERDADE: se o card tem foto/print, CHAME AQUI e OLHE antes de perguntar ao usuario a que ele se refere. Texto extraido pra txt/csv. Nao chame a toa - a ficha dos anexos (nome, tipo, tamanho) ja vem no get_item.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_item","description":"Detalhe completo de um item por id. Chame antes de agir sobre um item para ver o estado atual. Traz junto a ficha dos ANEXOS do card (nome/tipo/tamanho): se houver imagem, abra com get_attachment(id) e OLHE - o print costuma ser o pedido inteiro.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_memory","description":"Le o CONTEUDO completo de UMA entrada da MRP por id (o body inteiro). Use pra abrir so a entrada relevante, a partir do indice do list_memory (ou dos titulos do inicio da sessao). Barato por design - nao puxe a MRP toda pra ler uma nota.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_next","description":"Retorna o proximo item aberto de maior prioridade, com a ficha dos anexos dele. Chame quando precisar decidir o que atacar a seguir.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_items","description":"Lista itens do tracker. Use no inicio para ver pontas abertas antes de agir. Filtre (status/type/tag) sempre que souber o que procura - e mais barato e mais preciso. Projeto grande: se a lista nao couber com os corpos, ela vem como INDICE de TODOS os itens (id/numero/titulo/tipo/status/prioridade), abertos primeiro, com aviso - nenhum item fica de fora, e o corpo de um item sai por get_item(id). S","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_memory","description":"Le a MRP (Memoria Referencial de Projeto): comandos, deploy, gotchas, decisoes e contexto duraveis do projeto. Os TITULOS de todas as entradas ja vem no inicio da sessao. Por padrao devolve so o INDICE (id, categoria, titulo) - barato; use pra pegar os ids das entradas que interessam. Para o CONTEUDO: get_memory(id) le UMA entrada; list_memory({category, detail:\"full\"}) le os bodies de UMA categor","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_reminders","description":"Lista os lembretes/agendamentos do projeto, ordenados por data. Sem status vem TUDO (inclusive os ja fechados); passe status=\"pending\" pra ver so o que ainda esta de pe. Chame pra conferir o que ja foi agendado.","write_action":false,"price_micros":0,"input_schema":null},{"name":"move_item","description":"Reordena um item na lista do seu projeto (index 0-based; 0 = topo, um numero grande = fim). Use para controlar a ordem/cronologia dos itens.","write_action":false,"price_micros":0,"input_schema":null},{"name":"review_memory","description":"FAXINA da MRP. Chame sem argumentos quando o inicio da sessao avisar que a faxina esta pendente (ou quando o usuario pedir limpeza): devolve um LOTE de entradas pra julgar, a regua e o que fazer. Depois chame de novo com keep/archive pra fechar a rodada. Existe porque a MRP so crescia: entrada boa e entrada morta ficavam lado a lado ate o indice virar parede de texto. O alvo e … entradas ativas po","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_item","description":"Atualiza um item (status, notas, links). Chame ao concluir ou avancar trabalho.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_memory","description":"Corrige uma entrada da MRP ou aposenta com patch {archived: true}. Prefira aposentar a apagar.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_reminder","description":"Muda um lembrete existente: FECHA ele (status done quando o assunto ja foi resolvido,","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":91,"grade":"A","scanned_at":"2026-09-19T19:22:50.305Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:22:50.286Z","components":{"code":{"score":25,"max":25,"notes":["16 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"usetrail","version":"1.29.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-17T21:59:15.948Z","repositoryUrl":"git+https://github.com/arsprengel/trail-mcp.git","weeklyDownloads":191}],"repo":{"found":true,"owner":"arsprengel","repo":"trail-mcp","archived":false,"pushedAt":"2026-09-17T22:00:26Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/169157870?v=4","ownerCreatedAt":"2024-05-07T12:03:53Z","license":"MIT"},"icon":{"url":"https://usetrail.dev/favicon.svg","source":"registry"},"presence":{"stars":0,"forks":0,"downloadsWeek":191,"license":"MIT","lastPushAt":"2026-09-17T22:00:26.000Z","score":29}}}},"grade_history":[],"reviews":[]}