latam-market
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@latam-marketQuanto custa um Elixir Dourado?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
latam-market
API e servidor MCP para o mercado de jogadores do Ragnarok Online LATAM (servidor FREYA). Os mesmos dados por dois canais: HTTP para aplicações, MCP para agentes de IA.
🔗 https://mercado.latam-tools.com.br
API REST → https://mercado.latam-tools.com.br/api/v1
MCP → https://mercado.latam-tools.com.br/mcpSem cadastro, sem chave de API, sem login. Licença MIT.
O que dá para perguntar
Conectado a um agente (Claude, por exemplo), o MCP responde coisas assim:
"Quanto custa um Elixir Dourado?" "Quero comprar uma Boina — me lista quem está vendendo e por quanto." "Vender minha Escama Invertida por 500 mil é bom negócio?" "O preço da Ração Luxuosa subiu esse mês?" "Tem alguma pechincha no mercado agora?" "Toma meu replay: quanto vale tudo que eu tenho? O que dá para vender com lucro?"
Related MCP server: EVE Tycoon MCP Server
Recursos
Preço de qualquer item — a faixa histórica publicada pelo site e o resumo das lojas abertas na última coleta, que são coisas diferentes e vêm separadas.
Ofertas ativas — quem está vendendo, por quanto, em que loja e em que mapa.
Histórico próprio — construído acumulando nossas coletas, com retenção em camadas (anúncio cru por um dia, resumo por 30 dias, resumo diário para sempre).
Avaliação de preço — quantas lojas estão mais baratas, quanto pedir para ser o mais barato, e como o preço se compara à média dos últimos dias.
Pechinchas e maiores variações — varreduras sobre o mercado inteiro.
Leitura de replay
.rrf— inventário, carrinho de mercador e equipamento, com preço de mercado em cada item.Consulta ao vivo — quando o dado coletado não basta, consulta o site na hora. É o caminho caro, e está marcado como tal.
Links prontos — todo item vem com a página no Divine Pride e a busca ao vivo no site oficial.
Usando a API
# buscar um item
curl 'https://mercado.latam-tools.com.br/api/v1/items?q=elixir'
# preço (aceita id ou nome)
curl 'https://mercado.latam-tools.com.br/api/v1/items/Elixir%20Dourado'
# quem está vendendo
curl 'https://mercado.latam-tools.com.br/api/v1/items/1100005/offers?limit=10'
# vale a pena vender a 2600?
curl 'https://mercado.latam-tools.com.br/api/v1/items/1100005/appraise?price=2600'
# avaliar um replay
curl -X POST --data-binary @replay.rrf \
-H 'content-type: application/octet-stream' \
https://mercado.latam-tools.com.br/api/v1/replayRota | O que faz |
| Busca por nome (sem acento, sem caixa) |
| Preço, ofertas e resumo. |
| Lojas vendendo agora, da mais barata para a mais cara |
| Série histórica |
| Avaliação de um preço |
| Maiores variações |
| Itens bem abaixo do usual |
| Coletas recentes |
| Idade dos dados |
| Envie o |
| Consulta ao vivo (5/min por IP) |
| Saúde do serviço |
Quando um nome casa com vários itens, a resposta é 300 com a lista de candidatos — o serviço não escolhe por você.
Conectando o MCP
Em clientes com suporte a MCP remoto (Claude Desktop, Claude Code):
{
"mcpServers": {
"mercado-ro": {
"type": "http",
"url": "https://mercado.latam-tools.com.br/mcp"
}
}
}Ferramenta | Para quê |
| Achar o id de um item pelo nome |
| Quanto custa |
| Quem está vendendo |
| Como o preço se comportou |
| Se um preço é bom |
| O que subiu ou caiu |
| Pechinchas |
| Precificar um replay |
| De quando são os dados |
| Consultar o site ao vivo — caro, só sob pedido explícito |
⚠️
refresh_livegasta uma requisição ao site e pode ser bloqueada por limite de taxa. As descrições das ferramentas dizem isso ao agente, para ele preferir os dados já coletados — que costumam ter menos de uma hora.
Como funciona
┌──────────────────────────────────┐
Caddy ──── :8788 ──│ API REST ─┐ │
│ ├─→ core/ ─→ cache │
│ MCP ─┘ ↑ │
└───────────────────────│──────────┘
│
SQLite ←──── worker do crawl
│
EgressPool (lanes)
│
ro.gnjoylatam.comUm processo só. api/ e mcp/ são casca fina sobre core/ e não podem ler o
banco direto — é isso que garante que os dois canais respondam a mesma coisa, e há um
teste de paridade que quebra se alguém contornar.
O mercado inteiro cabe na memória (~5 mil itens com preço, ~20 mil anúncios), então nenhuma leitura toca o disco. O SQLite existe para o histórico e para sobreviver a reinício.
Coleta e rotação de IP
O site limita a ~50 requisições por minuto por IP e por endpoint, e o bloqueio dura mais de cinco minutos. A saída é ter várias identidades de rede.
Cada "lane" é uma conta Cloudflare WARP anônima dentro da sua própria network
namespace do Linux. Isso importa porque o servidor é compartilhado: um
warp-cli connect trocaria a rota da máquina inteira e derrubaria as conexões dos
outros serviços a cada rotação. Dentro da namespace, a rota do host nunca é tocada.
Duas outras decisões que caem daí:
A rotação é fora-de-lugar. A saída nova é criada e publicada antes de a antiga ser encerrada, e o encerramento espera as requisições em andamento terminarem. Trocar no lugar mataria justamente as requisições que provocaram o bloqueio.
A saída direta é reservada para consultas ao vivo. O crawl roda só nas lanes de túnel, então um bloqueio na coleta nunca deixa um usuário esperando — e vice-versa.
Detalhes de medição e de operação do coletor estão em docs/scraper.md.
Rodando localmente
Precisa de Node 22.5+ (por causa do node:sqlite) e pnpm.
pnpm install
pnpm import --run-id full # carrega os NDJSON já coletados no SQLite
pnpm dev # sobe em http://127.0.0.1:8788Sem dados em data/raw/, o serviço sobe com o mercado vazio — colete primeiro com
pnpm crawl (veja docs/scraper.md).
Comando | O que faz |
| Servidor com recarga automática |
| Coleta manual do mercado |
| Importa NDJSON para o SQLite |
| Relatório de cobertura do coletor |
| Testes |
| Tipos |
| Bundle de produção em |
| Atualiza o catálogo a partir do latam-ro-calc |
Variáveis úteis: PORT, DB_PATH, DATA_DIR, EGRESS_LANES, CRAWL_ENABLED,
ALLOWED_HOSTS, ALLOWED_ORIGINS (veja src/server/config.ts).
Estrutura
src/
scraper/ coletor: cobertura de termos, cliente HTTP, extração do payload RSC
egress/ pool de saídas de rede, lanes e rotação de IP
store/ SQLite, cache quente e retenção
replay/ leitura de arquivos .rrf (inventário, carrinho, equipamento)
core/ a lógica de mercado — a única camada que API e MCP enxergam
api/ rotas REST
mcp/ ferramentas MCP
server/ processo HTTP
worker/ coleta periódica em worker thread
cli/ comandos de linha
infra/ systemd, Caddy e provisionamento das lanes
docs/ documentação do coletorDeploy
Push na main dispara o GitHub Actions: typecheck, testes, bundle com esbuild, envio
por scp para o EC2, rsync em /opt/latam-market e reinício do systemd. A
verificação bate no /healthz, faz uma chamada MCP real e uma consulta REST — se
qualquer uma falhar, o deploy falha.
O banco fica em /var/lib/latam-market/market.db, fora de /opt, porque o deploy
usa rsync --delete e levaria o histórico junto.
Arquivos de infraestrutura em infra/, com o provisionamento manual
necessário documentado no topo de cada um.
Limites conhecidos
Só FREYA, e só o lado de quem está vendendo (
storeType=BUY;SELLnão retorna nada nesse site).Refino, cartas e bônus aleatórios não são precificados. O mercado agrega por id de item, então uma arma +9 encantada aparece com o preço da arma base — as respostas avisam quando é o caso, em vez de fingir precisão.
O histórico começa quando começamos a coletar. O site não publica série temporal; o que ele dá é um agregado acumulado, e o resto é medição nossa.
O retrato de um replay é do início da gravação. Itens pegos ou gastos durante a gravação não aparecem.
Alguns containers de item do
.rrfainda não foram identificados (provavelmente armazém da Kafra). Eles vêm à parte, emunidentified, e não entram no total.
Créditos
Catálogo de itens em pt-BR do projeto irmão
latam-ro-calc (simulador de dano). A leitura de .rrf
é portada de lá, que por sua vez segue o
Rrf-Parser do Tokeiburu.
Projeto não-oficial, feito para a comunidade. Sem vínculo com a Gravity ou a Gnjoy.
Licença
MIT.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceこのMCPサーバーは、EVE Onlineのマーケットデータにアクセスするためのインターフェースを提供します。ESI(EVE Swagger Interface)APIを使用して、リアルタイムの市場データを取得できます。Last updated108MIT
- AlicenseAqualityDmaintenanceThis MCP server allows you to interact with the EVE Tycoon API to retrieve market data, price statistics, order books, and historical pricing information for EVE Online items across different regions.Last updated64MIT
- Alicense-qualityDmaintenanceMCP server for interacting with RuneScape and Old School RuneScape data, including item prices, player hiscores, and more.Last updated1313Apache 2.0
- FlicenseAqualityCmaintenanceCross-game market intelligence and currency conversion across six MMOs, enabling unified searches, portfolio tracking, and farming optimization via MCP.Last updated6
Related MCP Connectors
Agent-native marketplace. Bootstrap, list inventory, search, negotiate, and trade via MCP.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/adsonpleal/latam-market'
If you have feedback or need assistance with the MCP directory API, please join our Discord server