{"name":"io.github.mcp-dir/jusbrasil-mcp","slug":"mcp-dir-jusbrasil-mcp","title":"Legal MCP (alternativa ao Jusbrasil)","description":"Open-source alternative to Jusbrasil for AI: find lawsuits by name, CPF, CNPJ or case number and bui","url":"https://mcp.market/server/mcp-dir-jusbrasil-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":27,"stars":5,"forks":3,"downloads_week":null,"last_push_at":"2026-08-30T19:39:44.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T07:55:37.382Z","last_ok_at":"2026-11-04T07:55:37.382Z","latency_ms":181},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/mcp-dir/jusbrasil-mcp","website":null,"version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://api.mcp.ai/legal"}],"packages":[],"tools":[{"name":"authenticate","description":"MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: \"<jwt>\" } after the user pastes, or with no args to get the link.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"token":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"cnpj_consultar","description":"Consulta cadastral de um CNPJ (grátis): razão social, nome fantasia, situação cadastral, CNAE principal, porte, município/UF e SÓCIOS (QSA). Útil pra identificar a empresa e seus sócios antes de buscar processos.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cnpj":{"type":"string"}},"required":["cnpj"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"cnpj_processos","description":"DESCOBERTA por CNPJ: resolve o CNPJ em razão social (e sócios) e busca os processos por NOME no Diário (DJEN) — grátis, com número de processo completo. Opcionalmente inclui os processos dos sócios. Com os números, enriqueça com as tools datajud.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cnpj":{"type":"string"},"incluir_socios":{"type":"boolean"}},"required":["cnpj"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"connect","description":"Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"cpf_processos","description":"DESCOBERTA por CPF: busca os processos da pessoa por NOME no Diário (DJEN), grátis. IMPORTANTE: CPF→nome não é dado público — informe o parâmetro `nome` (recomendado). Sem nome, só resolve se houver um broker pago configurado na plataforma; caso contrário retorna instrução pedindo o nome.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpf":{"type":"string"},"nome":{"type":"string"}},"required":["cpf"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"cpf_validar","description":"Valida os dígitos verificadores de um CPF (mod 11) e informa se há broker de identidade disponível. Não revela a identidade do titular.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpf":{"type":"string"}},"required":["cpf"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"djen_get_certidao","description":"Retorna a URL da certidão (PDF) de uma comunicação do DJEN pelo seu hash (campo `hash` retornado na busca).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"hash":{"type":"string"}},"required":["hash"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"djen_processos_por_parte","description":"DESCOBERTA por NOME de parte (grátis, sem captcha): busca o DJEN por quem figura no processo e agrupa por número — devolve a lista de processos da pessoa/empresa, com partes e tribunal. Cobre processos COM publicação no Diário a partir de 2020 (não o acervo histórico completo), então `count_processos: 0` NÃO significa que a pessoa não tem processo — nesse caso vem um bloco `ausencia` explicando. Para entrada por CPF/CNPJ ou processos dormentes, use as tools processos_* (engine). Com os numero_processo, enriqueça com datajud.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"nome_parte":{"type":"string"},"sigla_tribunal":{"type":"string"},"data_inicio":{"type":"string"},"data_fim":{"type":"string"},"itens_por_pagina":{"type":"number"},"pagina":{"type":"number"}},"required":["nome_parte"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"djen_search_comunicacoes","description":"Busca publicações/intimações no Diário de Justiça Eletrônico Nacional (DJEN) por OAB, nome de advogado, número de processo, tribunal e data. Cada item traz o texto completo da comunicação. (É o Diário de Justiça — não é base de jurisprudência/ementas, nem cadastro de processos: só tem o que foi PUBLICADO, a partir de 2020 e com cada tribunal entrando numa data própria.) Resultado vazio NÃO devolve só `count: 0`: vem um bloco `ausencia` com o motivo provável (numero_invalido | fora_da_cobertura | sem_publicacao) — leia antes de concluir que o processo não existe, e confirme no `datajud_get_processo`, que é o índice histórico.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"numero_oab":{"type":"string"},"uf_oab":{"type":"string"},"nome_advogado":{"type":"string"},"nome_parte":{"type":"string"},"numero_processo":{"type":"string"},"sigla_tribunal":{"type":"string"},"data_inicio":{"type":"string"},"data_fim":{"type":"string"},"meio":{"type":"string"},"texto":{"type":"string"},"pagina":{"type":"number"},"itens_por_pagina":{"type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"jurisprudencia_buscar","description":"Busca jurisprudência (acórdãos, súmulas, orientações jurisprudenciais, temas) por termo ou tese. Devolve, por registro: identificação da decisão, órgão julgador, relator, data, o trecho que casou a busca e o link para o documento no site oficial. Quando o registro traz `texto_integral_disponivel: true`, o inteiro teor pode ser lido com jurisprudencia_documento usando o `id`. Alguns registros vêm sem relator/órgão/número quando a publicação não permite afirmar esses campos — campo nulo é ausência de informação na fonte, não defeito. Informe `tribunais` para restringir a busca; sem isso a pesquisa é ampla. Zero resultado não significa que a decisão não exista: costuma ser vocabulário (o termo do tribunal difere do coloquial) ou filtro estreito demais. No termo funcionam os operadores: espaço = E, \"entre aspas\" = frase exata, OR = ou, -palavra = exclui.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"termo":{"type":"string"},"tipo":{"type":"string"},"tribunais":{"type":"array","items":{"type":"string"}},"data_de":{"type":"string"},"data_ate":{"type":"string"},"ordenar":{"type":"string","enum":["relevancia","recencia"]},"max":{"type":"number"}},"required":["termo"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"jurisprudencia_documento","description":"Lê o INTEIRO TEOR de uma decisão (texto completo do acórdão, não o resumo). Use o campo `id` de um resultado de jurisprudencia_buscar que traga `texto_integral_disponivel: true`, ou o número CNJ do processo. Resultado sem `id` não é legível por aqui, abra a `url`. Quando o processo tem mais de uma decisão, as outras vêm listadas em `outras_decisoes_do_processo`.\n\nBulk support: accepts ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"numeracao":{"type":"string"},"tribunal":{"type":"string"},"ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"jurisprudencia_sumulas","description":"Busca SÚMULAS (incluindo vinculantes) por termo. Atalho do jurisprudencia_buscar com tipo=Súmula. Quando o texto completo do enunciado está disponível ele vem na ementa, e enunciado cancelado/revogado é marcado no próprio texto.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"termo":{"type":"string"},"max":{"type":"number"}},"required":["termo"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"legal_checar_novidades","description":"Checa AGORA se há novidade nos monitoramentos (sem esperar o ciclo automático). Passe `watch_id` para um específico, ou nada para checar todos. Atualiza o estado e retorna o que mudou.\n\nBulk support: accepts watch_ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"watch_id":{"type":"string"},"watch_ids":{"type":"array","items":{"type":"string"}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"legal_dossie","description":"Raio-X jurídico de uma pessoa ou empresa: descobre os processos e (opcional) o andamento, num relatório consolidado. Aceita `nome`, `cnpj`, `cpf` (com `nome_titular`) ou `numero_processo` — informe APENAS um. Retorna a lista de processos (número, partes, tribunal) + um aviso. IMPORTANTE: confirme sempre o número e o andamento no site oficial do tribunal — os dados podem estar incompletos/desatualizados.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"nome":{"type":"string"},"cnpj":{"type":"string"},"cpf":{"type":"string"},"nome_titular":{"type":"string"},"numero_processo":{"type":"string"},"incluir_andamento":{"type":"boolean"},"incluir_socios":{"type":"boolean"},"incluir_sancoes":{"type":"boolean"},"incluir_mencoes_municipais":{"type":"boolean"},"max_processos":{"type":"number"},"sigla_tribunal":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"legal_listar_monitoramentos","description":"Lista os monitoramentos ativos do workspace.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"legal_monitorar","description":"Cria um monitoramento: avisa quando houver NOVIDADE — nova movimentação (numero_processo), novo processo de uma pessoa/empresa (nome/cnpj), ou nova publicação/intimação de uma OAB (oab+uf). Os alertas chegam pelo webhook do install (evento legal.movimentacao_nova); use legal_checar_novidades para checar na hora.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"numero_processo":{"type":"string"},"nome":{"type":"string"},"cnpj":{"type":"string"},"oab":{"type":"string"},"uf":{"type":"string"},"sigla_tribunal":{"type":"string"},"intervalo_horas":{"type":"number"},"label":{"type":"string"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"legal_remover_monitoramento","description":"Remove (desativa) um monitoramento pelo seu id (`watch_id`).\n\nBulk support: accepts watch_ids for batched execution.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"watch_id":{"type":"string"},"watch_ids":{"type":"array","items":{"type":"string"}}},"required":["watch_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"marketplace","description":"The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like \"find an MCP that does X\", \"consulta um CPF\", \"is there a tool for Y\". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action":{"default":"search","type":"string","enum":["search","describe","install","uninstall","subscribe","cancel","resume","report_bug","request_mcp","list_tools","invoke","search_prompts","get_prompt","publish_prompt"]},"query":{"default":"","type":"string"},"mcp_id":{"default":"","type":"string"},"limit":{"default":10,"type":"number"},"tier_slug":{"default":"","type":"string"},"immediate":{"default":false,"type":"boolean"},"cancel_reason":{"type":"string","enum":["too_expensive","missing_features","switched_service","unused","customer_service","too_complex","low_quality","other"]},"cancel_comment":{"default":"","type":"string"},"message":{"default":"","type":"string"},"report_context":{"default":"","type":"string"},"conversation":{"default":"[]","type":"string"},"request_name":{"default":"","type":"string"},"request_details":{"default":"","type":"string"},"tool_id":{"default":"","type":"string"},"arguments":{"default":"{}","type":"string"},"prompt_slug":{"default":"","type":"string"},"prompt_vars":{"default":"{}","type":"string"},"prompt_category":{"default":"","type":"string"},"prompt_tool":{"default":"","type":"string"},"prompt_title":{"default":"","type":"string"},"prompt_description":{"default":"","type":"string"},"prompt_body":{"default":"","type":"string"},"prompt_targets":{"default":[],"type":"array","items":{"type":"string","enum":["claude","chatgpt","cursor","lovable"]}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"processos_buscar_por_documento","description":"DESCOBERTA por CPF ou CNPJ. CPF/CNPJ não são chave de busca pública nos tribunais, então o serviço resolve o documento em nome(s) e busca por NOME nos portais: CNPJ→razão social (automático) e CPF→`nome_titular`, que você PRECISA informar (CPF→nome não é dado público). ASSÍNCRONO: retorna { job_id }; faça o polling com processos_get_resultado(job_id). Sem o nome do titular do CPF, use processos_buscar_por_nome.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"documento":{"type":"string"},"nome_titular":{"type":"string"},"platforms":{"type":"array","items":{"type":"string","enum":["esaj","pje","eproc","projudi"]}},"tribunais":{"type":"array","items":{"type":"string"}},"max_results":{"type":"number"}},"required":["documento"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"processos_buscar_por_nome","description":"DESCOBERTA: busca processos pelo NOME de uma parte (pessoa ou empresa) raspando os portais públicos dos tribunais (ESAJ/PJe/eproc/Projudi) — o gap que datajud (só por número) e djen (OAB/advogado) não cobrem. É ASSÍNCRONO e lento: retorna { job_id }; chame processos_get_resultado(job_id) para obter a lista. Com os numero_cnj, use datajud_*/djen_* para enriquecer de graça.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"nome":{"type":"string"},"platforms":{"type":"array","items":{"type":"string","enum":["esaj","pje","eproc","projudi"]}},"tribunais":{"type":"array","items":{"type":"string"}},"max_results":{"type":"number"}},"required":["nome"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"processos_get_resultado","description":"Polling de um job de busca (de processos_buscar_por_nome/documento). Retorna { status, progress, items[], errors[] }. status: queued|running|done|error. Quando 'done', items[] traz os processos (numero_cnj, partes, advogados/OAB, classe/assunto) prontos para enriquecer com datajud_*/djen_*. Continue chamando até 'done' (a busca é lenta). IMPORTANTE: um 'done' pode vir DEGRADADO, e nesse caso vem um bloco `aviso` — leia antes de usar os dados. `vinculacao_nome: \"nao_confirmada\"` significa que o resultado NÃO foi validado contra o nome buscado (não apresente como processo da pessoa sem conferir), e `tribunais_inacessiveis` lista portais que não responderam: isso NÃO quer dizer que o tribunal não tenha o processo.\n\nBulk support: accepts job_ids for batched execution.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"string"},"job_ids":{"type":"array","items":{"type":"string"}}},"required":["job_id"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"processos_obter_pecas","description":"DOWNLOAD das DECISÕES PÚBLICAS de um processo (acórdãos/inteiro teor): busca as decisões públicas do processo, baixa o PDF e converte em Markdown (o teor da decisão), com link temporário. Escopo PÚBLICO (CNJ Res. 121/2010): retorna o inteiro teor das decisões/acórdãos, NÃO os autos completos (petições/documentos exigem credencial de advogado). É ASSÍNCRONO (captcha por busca): retorna { job_id }; faça o polling com processos_get_resultado(job_id). Quando 'done', cada item traz `markdown` (texto da decisão) + `pdf_url`/`expires_at` (link expira, nada fica arquivado). Use o numero_cnj de processos_get_resultado/datajud. Processo sem decisão pública (ex.: só 1º grau em andamento) volta lista vazia.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"numero_cnj":{"type":"string"},"tribunal":{"type":"string"},"peca_ids":{"type":"array","items":{"type":"string"}},"formato":{"type":"string","enum":["markdown","pdf"]}},"required":["numero_cnj"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"querido_diario_buscar","description":"Busca em diários oficiais MUNICIPAIS (milhares de prefeituras) por termo/nome — útil pra menções fora do Judiciário: licitações, nomeações, contratos, sanções municipais. Complementa o DJEN (que é judicial). Cada resultado traz trechos (excerpts) + URL do diário. Para nome exato, use aspas no termo.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"termo":{"type":"string"},"territory_ids":{"type":"array","items":{"type":"string"}},"data_inicio":{"type":"string"},"data_fim":{"type":"string"},"size":{"type":"number"}},"required":["termo"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"report_bug","description":"Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"message":{"type":"string"},"context":{"default":"","type":"string"},"conversation":{"default":"[]","type":"string"}},"required":["message"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"show_version","description":"Show the current MCP platform and adapter versions.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"toolkit_info","description":"Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"transparencia_despesas_documentos","description":"Documentos de despesa (Empenho, Liquidação ou Pagamento) emitidos pelo Governo Federal para um favorecido (CPF/CNPJ) num ano, item-a-item: data, documento, espécie, valor, órgão, elemento de despesa e nº do processo. `fase` default = 3 (Pagamento, o dinheiro efetivamente pago). Só Executivo FEDERAL. Para o total agregado use transparencia_despesas_favorecido.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpf_cnpj":{"type":"string"},"ano":{"type":"number"},"fase":{"type":"string","enum":["empenho","liquidacao","pagamento"]},"ordenacao":{"type":"number"},"pagina":{"type":"number"}},"required":["cpf_cnpj"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"transparencia_despesas_favorecido","description":"DESPESAS recebidas por uma empresa ou pessoa (CPF/CNPJ) do Governo Federal num período: 'quanto a empresa recebeu da União'. Soma os recursos recebidos e quebra por órgão pagador e por mês. IMPORTANTE: cobre só o Executivo FEDERAL, não inclui estados nem municípios (cada ente tem portal próprio). Sem datas, usa os últimos 12 meses.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpf_cnpj":{"type":"string"},"mes_ano_inicio":{"type":"string"},"mes_ano_fim":{"type":"string"}},"required":["cpf_cnpj"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"transparencia_pep","description":"Verifica se um CPF é de Pessoa Exposta Politicamente (PEP) e retorna função/órgão/período. Importante para compliance/KYC.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpf":{"type":"string"}},"required":["cpf"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"transparencia_sancoes","description":"Consulta sanções de uma pessoa ou empresa por CPF/CNPJ no Portal da Transparência (consolida CEIS — inidôneas/suspensas, CNEP — empresas punidas, e CEPIM — entidades impedidas). Retorna `tem_sancao` + lista com tipo, órgão, fundamentação e datas. Due diligence / compliance.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cpf_cnpj":{"type":"string"}},"required":["cpf_cnpj"],"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-27T05:29:29.519Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T05:29:29.507Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 163ms"]},"poisoning":{"score":15,"max":15,"notes":["30 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 27 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://api.mcp.ai/legal","reachable":true,"authRequired":false,"latencyMs":163,"serverInfo":{"name":"Legal MCP","version":"0.9.351"}}],"packages":[],"repo":{"found":true,"owner":"mcp-dir","repo":"jusbrasil-mcp","archived":false,"pushedAt":"2026-08-30T19:39:44Z","stars":5,"forks":3,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/207912538?v=4","ownerCreatedAt":"2025-04-16T18:01:51Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":5,"forks":3,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-08-30T19:39:44.000Z","score":27}}}},"grade_history":[],"reviews":[]}