Yargı MCP

Acesse bases de dados jurídicas turcas e fontes de decisões por meio de um servidor MCP padronizado.

Documentação

Yargı MCP: Servidor MCP para Fontes de Direito Turco

MCP Toplist

✨ Versão Profissional Pronta: Yargı MCP Pro

A versão profissional que combina legislação e jurisprudência em um único servidor MCP está no ar:

👉 https://yargi.betaspacestudio.com

🚨 SERVIDOR MOVIDO PARA NOVO ENDEREÇO

Novo endereço Remote MCP: https://yargimcp.surucu.dev/mcp

O endereço antigo (https://yargimcp.fastmcp.app/mcp) está descontinuado — agora retorna apenas uma ferramenta de aviso informando sobre a mudança.

O que você precisa fazer: Atualize a URL do servidor no seu cliente MCP (Claude Desktop, 5ire, Google Antigravity, ChatGPT etc.) para o novo endereço acima.

Nosso novo aplicativo para conversão profissional de Word para UDF está em udfcevir.com!

Star History Chart

Este projeto cria um servidor FastMCP que facilita o acesso a diversas fontes de direito turco (Yargıtay, Danıştay, Decisões de Precedentes, Tribunal de Conflitos, Tribunal Constitucional — Controle Normativo e Decisões de Recurso Individual, Decisões da Comissão de Licitações Públicas, Decisões da Autoridade de Concorrência, Decisões do Tribunal de Contas, Decisões do KVKK, Decisões do BDDK, Decisões do BTK, Pareceres do GİB e Decisões da Comissão de Arbitragem de Seguros). Dessa forma, a busca de dados e a recuperação de documentos dessas fontes podem ser usadas como ferramentas por aplicativos LLM (Modelos de Linguagem de Grande Porte) que suportam o Protocolo de Contexto de Modelo (MCP) (por exemplo, Claude Desktop ou 5ire) e outros clientes.


🚀 Comece em 5 Minutos (Remote MCP)

✅ Sem Instalação Necessária! Use Imediatamente!

🔗 Endereço Remote MCP: https://yargimcp.surucu.dev/mcp

⚠️ O endereço antigo https://yargimcp.fastmcp.app/mcp está descontinuado — agora retorna apenas uma ferramenta de aviso sobre a mudança. Use o novo endereço acima.

Uso com Claude Desktop (Requer assinatura paga)

  1. Abra o Claude Desktop
  2. Settings → Connectors → Add Custom Connector
  3. Insira as informações:
    • Name: Yargı MCP
    • URL: https://yargimcp.surucu.dev/mcp
  4. Clique no botão Add
  5. Comece a usar imediatamente! 🎉

Uso com Google Antigravity (Instalação Local uv — Copiar e Colar)

Pré-requisitos: Seu computador deve ter Python, uv (instalação) e Node.js (download) instalados. (Node.js é necessário apenas para executar o comando de instalação abaixo; o MCP é executado com uvx.)

Cole o bloco inteiro abaixo no terminal. O comando cria/atualiza o arquivo ~/.gemini/config/mcp_config.json que o Antigravity lê (seus outros servidores, se houver, são preservados):

macOS / Linux (Terminal):

node - <<'YARGI'
const fs=require("fs"),os=require("os"),path=require("path");
const dir=path.join(os.homedir(),".gemini","config"),file=path.join(dir,"mcp_config.json");
fs.mkdirSync(dir,{recursive:true});
let cfg={};try{cfg=JSON.parse(fs.readFileSync(file,"utf8"))}catch{}
if(typeof cfg!=="object"||cfg===null||Array.isArray(cfg))cfg={};
if(typeof cfg.mcpServers!=="object"||cfg.mcpServers===null)cfg.mcpServers={};
cfg.mcpServers["yargi-mcp"]={command:"uvx",args:["yargi-mcp"]};
fs.writeFileSync(file,JSON.stringify(cfg,null,2)+"\n");
console.log("yargi-mcp eklendi -> "+file);
YARGI

Windows (PowerShell):

@'
const fs=require("fs"),os=require("os"),path=require("path");
const dir=path.join(os.homedir(),".gemini","config"),file=path.join(dir,"mcp_config.json");
fs.mkdirSync(dir,{recursive:true});
let cfg={};try{cfg=JSON.parse(fs.readFileSync(file,"utf8"))}catch{}
if(typeof cfg!=="object"||cfg===null||Array.isArray(cfg))cfg={};
if(typeof cfg.mcpServers!=="object"||cfg.mcpServers===null)cfg.mcpServers={};
cfg.mcpServers["yargi-mcp"]={command:"uvx",args:["yargi-mcp"]};
fs.writeFileSync(file,JSON.stringify(cfg,null,2)+"\n");
console.log("yargi-mcp eklendi -> "+file);
'@ | node -

Quando o comando exibir a saída yargi-mcp eklendi -> ..., a instalação estará concluída. Reinicie o Antigravity (feche e abra novamente, se estiver aberto); as ferramentas yargi-mcp serão carregadas automaticamente.

💡 Dica: Na instalação local, o acesso às fontes de direito funciona diretamente no seu computador com uvx yargi-mcp; não é necessário um servidor remoto.

Solução de Problemas do Remote MCP

https://yargimcp.surucu.dev/mcp não é uma página web, mas um endpoint MCP Streamable HTTP. É normal ver uma resposta semelhante a 406 Not Acceptable e Client must accept text/event-stream ao abri-lo no navegador ou ao enviar uma solicitação GET com curl simples; isso não significa que o servidor esteja fora do ar. O cliente MCP deve enviar uma solicitação JSON-RPC com o cabeçalho Accept: application/json, text/event-stream.

Para uma verificação rápida de integridade, você pode abrir os seguintes endereços no navegador:

  • https://yargimcp.surucu.dev/health — status de integridade do serviço

Se o Claude.ai ou outro cliente se comportar como "sem ferramentas":

  1. Remova e adicione novamente o conector.
  2. Tente primeiro https://yargimcp.surucu.dev/mcp como URL; se o seu cliente não seguir redirecionamentos, tente https://yargimcp.surucu.dev/mcp/.
  3. Certifique-se de que o endereço antigo https://yargimcp.fastmcp.app/mcp não permaneça nas configurações do cliente ou no cache.
  4. Verifique se o cliente suporta remote/Streamable HTTP MCP e aceita text/event-stream.

örnek

🎯 Recursos Principais

🚀 OTIMIZAÇÃO DE ALTO DESEMPENHO: Este servidor MCP foi otimizado com redução de token de 61,8% (economia de 8.692 tokens). Proporciona tempos de resposta mais rápidos e interação mais eficiente com Claude AI.

  • Interface MCP padrão para acesso programático a vários bancos de dados de direito turco.

  • Filtragem Abrangente por Seção/Comissão do Tribunal: 79 opções diferentes de filtro por seção/comissão

  • Suporte a API Dupla/Tripla: Múltiplas fontes de API para cada tribunal para máxima cobertura

  • Filtragem Abrangente por Data: Filtragem por intervalo de datas no formato ISO 8601 em todas as ferramentas da API Bedesten

  • Busca por Frase Exata: Suporte a busca por frase exata com aspas duplas em todas as ferramentas da API Bedesten

  • Capacidade de buscar e recuperar decisões das seguintes instituições:

    • Yargıtay: Busca de decisões com critérios detalhados e recuperação de textos de decisões em formato Markdown. API Dupla (Principal + Bedesten) + Filtragem por 52 Seções/Comissões + Busca por Data e Frase Exata (Seções Cíveis/Penais, Assembleias Gerais)
    • Danıştay: Busca de decisões por palavra-chave e critérios detalhados; recuperação de textos de decisões em formato Markdown. API Tripla (Palavra-chave + Detalhada + Bedesten) + Filtragem por 27 Seções/Comissões + Busca por Data e Frase Exata (Seções Administrativas, Comissões de Tributos/Administração, Tribunal Militar Superior Administrativo)
    • Tribunais Locais Cíveis: Acesso a decisões de tribunais locais cíveis via API Bedesten + Busca por Data e Frase Exata
    • Tribunais Cíveis de Apelação: Acesso a decisões de tribunais de apelação via API Bedesten + Busca por Data e Frase Exata
    • Anulação em Benefício da Lei (KYB): Acesso ao recurso extraordinário via API Bedesten + Busca por Data e Frase Exata
    • Precedentes (UYAP): Busca de decisões de precedentes com critérios detalhados e recuperação de textos de decisões em formato Markdown.
    • Tribunal de Conflitos: Busca de decisões com critérios baseados em formulário e recuperação de textos de decisões (acessados por URL) em formato Markdown.
    • Tribunal Constitucional (Controle Normativo): Busca de decisões de controle normativo com critérios abrangentes; recuperação de textos longos de decisões (em blocos de 5.000 caracteres) em formato Markdown paginado.
    • Tribunal Constitucional (Recurso Individual): Criação de "Relatório de Busca de Decisões" de recurso individual com critérios abrangentes e recuperação de textos das decisões listadas (em blocos de 5.000 caracteres) em formato Markdown paginado.
    • KİK (Comissão de Licitações Públicas): Busca de decisões da Comissão com vários critérios; recuperação de textos longos de decisões (padrão de 5.000 caracteres) em formato Markdown paginado.
    • Autoridade de Concorrência: Busca de decisões da Comissão com vários critérios; recuperação de textos de decisões em formato Markdown.
    • Sayıştay: Acesso abrangente a decisões de auditoria com 3 tipos de decisão + Filtragem por 8 Seções + Busca por Intervalo de Datas e Conteúdo (decisões interpretativas da Assembleia Geral, decisões de recurso do Conselho de Apelação, decisões de auditoria de primeira instância das Seções)
    • KVKK (Comissão de Proteção de Dados Pessoais): Busca de decisões de proteção de dados via Brave Search API; recuperação de textos longos de decisões (em blocos de 5.000 caracteres) em formato Markdown paginado + Busca em Turco + Busca Direcionada por Site (decisões kvkk.gov.tr)
    • BDDK (Agência de Regulação e Supervisão Bancária): Busca de decisões de regulação bancária; recuperação de textos de decisões em formato Markdown + Busca Otimizada + Direcionamento por "Número da Decisão" + Filtragem por URL Específica (bddk.org.tr/Mevzuat/DokumanGetir)
    • BTK (Autoridade de Tecnologias da Informação e Comunicação): Busca de Decisões da Comissão (filtros por palavra-chave + número da decisão + data da decisão + data de publicação + unidade relevante); recuperação de PDFs de decisões (em blocos de 5.000 caracteres) em formato Markdown paginado (btk.gov.tr)
    • Pareceres do GİB (Presidência de Administração de Receita): Busca de pareceres fiscais oficiais (mais de 18.000 pareceres: KDV, Corporativo, Renda, ÖTV, Selo etc.); recuperação de texto completo em formato Markdown paginado + Palavra-chave + Número do Parecer + Número da Lei + Intervalo de Datas + Conversão Automática ISO 8601 + Bloco de Título de Metadados
    • Comissão de Arbitragem de Seguros: Busca de decisões de arbitragem de seguros no Diário de Decisões de Arbitragem (64 edições, 2010-2025); recuperação de PDFs do diário em formato Markdown + Busca de Decisões Dentro da Edição + Suporte a Maiúsculas/Minúsculas em Turco + Pontuação de Relevância
  • Conversão de textos de decisões para formato Markdown para processamento mais fácil.

  • Integração fácil com o aplicativo Claude Desktop usando o comando fastmcp install.

  • Yargı MCP agora também suporta clientes MCP além do Claude Desktop, como 5ire!


🚀 Instalação Muito Fácil para Uso com Modelos Diferentes do Claude (Exemplo: para 5ire)

Esta seção é para quem deseja usar a ferramenta Yargı MCP com clientes MCP diferentes do Claude Desktop, como o 5ire.

  • Instalação do Python: Seu sistema deve ter Python 3.11 ou superior instalado. Durante a instalação, não se esqueça de marcar a opção "Add Python to PATH". Você pode baixá-lo aqui.
  • Instalação do Git (Windows): Baixe e instale o software git no seu computador. Você deve baixar a opção "Git for Windows/x64 Setup".
  • Instalação do uv:
    • Usuários Windows (PowerShell): Abra uma tela CMD e execute este código: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    • Usuários Mac/Linux (Terminal): Abra uma tela de Terminal e execute este código: curl -LsSf https://astral.sh/uv/install.sh | sh
  • Microsoft Visual C++ Redistributable (Windows): Necessário para o funcionamento correto de alguns pacotes Python. Baixe e instale aqui.
  • Baixe e instale o cliente MCP 5ire apropriado para o seu sistema operacional.
  • Abra o 5ire. No menu Workspace -> Providers, insira a chave de API do serviço LLM que deseja usar.
  • Entre no menu Tools. Pressione o botão +Local ou New.
    • Tool Key: yargimcp
    • Name: Yargı MCP
    • Command:
      uvx yargi-mcp
      
    • Pressione o botão Save para salvar. 5ire ayarları
  • Agora você deve ver Yargı MCP em Tools. Passe o mouse sobre ele e clique no botão que aparece à direita para ativá-lo (a luz verde deve acender).
  • Agora você pode conversar com o Yargı MCP.

⚙️ Instalação Local do Claude Desktop (Copiar e Colar)

Pré-requisitos: Seu computador deve ter Python, uv (instalação), Node.js (download) e (para Windows) Microsoft Visual C++ Redistributable instalados. (Node.js é necessário apenas para executar o comando de instalação abaixo; o MCP é executado com uvx.)

Cole o bloco inteiro abaixo no terminal. O comando cria/atualiza o arquivo claude_desktop_config.json do Claude Desktop (seus outros servidores, se houver, são preservados):

macOS / Linux (Terminal):

node - <<'YARGI'
const fs=require("fs"),os=require("os"),path=require("path");
const dir=process.platform==="darwin"
  ? path.join(os.homedir(),"Library","Application Support","Claude")
  : path.join(os.homedir(),".config","Claude");
const file=path.join(dir,"claude_desktop_config.json");
fs.mkdirSync(dir,{recursive:true});
let cfg={};try{cfg=JSON.parse(fs.readFileSync(file,"utf8"))}catch{}
if(typeof cfg!=="object"||cfg===null||Array.isArray(cfg))cfg={};
if(typeof cfg.mcpServers!=="object"||cfg.mcpServers===null)cfg.mcpServers={};
cfg.mcpServers["yargi-mcp"]={command:"uvx",args:["yargi-mcp"]};
fs.writeFileSync(file,JSON.stringify(cfg,null,2)+"\n");
console.log("yargi-mcp eklendi -> "+file);
YARGI

Windows (PowerShell):

@'
const fs=require("fs"),os=require("os"),path=require("path");
const dir=path.join(process.env.APPDATA||path.join(os.homedir(),"AppData","Roaming"),"Claude");
const file=path.join(dir,"claude_desktop_config.json");
fs.mkdirSync(dir,{recursive:true});
let cfg={};try{cfg=JSON.parse(fs.readFileSync(file,"utf8"))}catch{}
if(typeof cfg!=="object"||cfg===null||Array.isArray(cfg))cfg={};
if(typeof cfg.mcpServers!=="object"||cfg.mcpServers===null)cfg.mcpServers={};
cfg.mcpServers["yargi-mcp"]={command:"uvx",args:["yargi-mcp"]};
fs.writeFileSync(file,JSON.stringify(cfg,null,2)+"\n");
console.log("yargi-mcp eklendi -> "+file);
'@ | node -

Quando o comando exibir a saída yargi-mcp eklendi -> ..., a instalação estará concluída. Feche completamente o Claude Desktop e reinicie-o; as ferramentas yargi-mcp serão carregadas automaticamente.


Alternativa manual: Você pode abrir o arquivo claude_desktop_config.json pelo menu Settings → Developer → Edit Config do Claude Desktop e adicioná-lo em mcpServers:

{
  "mcpServers": {
    "yargi-mcp": {
      "command": "uvx",
      "args": ["yargi-mcp"]
    }
  }
}

🌟 Uso com Gemini CLI

Para usar o Yargı MCP com o Gemini CLI:

  1. Pré-requisitos: Certifique-se de que Python, uv e (para Windows) Microsoft Visual C++ Redistributable estejam instalados no seu sistema. Para informações detalhadas, consulte as etapas relevantes na seção "Instalação para 5ire" acima.

  2. Configure as configurações do Gemini CLI:

    Edite o arquivo de configuração do Gemini CLI:

    • macOS/Linux: ~/.gemini/settings.json
    • Windows: %USERPROFILE%\.gemini\settings.json

    Adicione o seguinte bloco mcpServers:

    {
      "theme": "Default",
      "selectedAuthType": "###",
      "mcpServers": {
        "yargi_mcp": {
          "command": "uvx",
          "args": [
            "yargi-mcp"
          ]
        }
      }
    }
    

    Explicações da configuração:

    • "yargi_mcp": Um nome local para o seu servidor
    • "command": O comando uvx (ferramenta de execução de pacotes do uv)
    • "args": Argumentos necessários para executar o Yargı MCP diretamente do GitHub
  3. Uso:

    • Inicie o Gemini CLI
    • As ferramentas do Yargı MCP estarão automaticamente disponíveis
    • Exemplos de comandos:
      • "Pesquise as decisões recentes do Tribunal de Cassação sobre direito de propriedade"
      • "Encontre decisões do Conselho de Estado sobre anulação de planos de zoneamento"
      • "Traga as decisões do Tribunal Constitucional sobre liberdade de expressão"

🧠 Pesquisa Semântica (Opcional)

O Yargı MCP pode classificar decisões semanticamente com o recurso de pesquisa semântica. É opcional; é ativado automaticamente quando uma das duas formas é configurada:

  • Local (recomendado, gratuito): um servidor de embeddings compatível com OpenAI na sua própria máquina (HuggingFace TEI, llama.cpp, Ollama, vLLM, LM Studio…)
  • Hospedado: chave de API do OpenRouter ou OrcaRouter

Como Funciona a Pesquisa Semântica?

  1. initial_keyword busca 100 decisões da API Bedesten
  2. query classifica essas decisões semanticamente usando um modelo de embeddings
  3. As decisões mais relevantes são retornadas

Configuração Recomendada para Turco (Local — multilingual-e5-large)

intfloat/multilingual-e5-large é um dos melhores modelos de código aberto que comparamos para o turco. Ele sobe com um único comando usando o servidor Text Embeddings Inference (TEI) do HuggingFace e oferece uma API compatível com OpenAI:

docker run -p 8080:80 ghcr.io/huggingface/text-embeddings-inference:latest \
    --model-id intfloat/multilingual-e5-large

Em seguida, passe as seguintes variáveis de ambiente para o Yargı MCP:

EMBEDDING_PROVIDER=local
LOCAL_EMBEDDING_BASE_URL=http://localhost:8080/v1
LOCAL_EMBEDDING_MODEL=intfloat/multilingual-e5-large
LOCAL_EMBEDDING_DIMENSION=1024
EMBEDDING_PROMPT_STYLE=e5

⚠️ Importante: EMBEDDING_PROMPT_STYLE=e5 é obrigatório — os modelos e5 foram treinados para esperar o prefixo query: / passage:; um prefixo incorreto reduz silenciosamente a qualidade.

Exemplo do Claude Desktop (TEI local)

{
  "mcpServers": {
    "Yargı MCP": {
      "command": "uvx",
      "args": ["yargi-mcp"],
      "env": {
        "EMBEDDING_PROVIDER": "local",
        "LOCAL_EMBEDDING_BASE_URL": "http://localhost:8080/v1",
        "LOCAL_EMBEDDING_MODEL": "intfloat/multilingual-e5-large",
        "LOCAL_EMBEDDING_DIMENSION": "1024",
        "EMBEDDING_PROMPT_STYLE": "e5"
      }
    }
  }
}

Alternativa 1: Ollama (local, instalação mais leve)

ollama serve
ollama pull nomic-embed-text   # 768 dim, İngilizce ağırlıklı
EMBEDDING_PROVIDER=local
LOCAL_EMBEDDING_BASE_URL=http://localhost:11434/v1
LOCAL_EMBEDDING_MODEL=nomic-embed-text
LOCAL_EMBEDDING_DIMENSION=768
EMBEDDING_PROMPT_STYLE=raw

O multilingual-e5-large não está diretamente na biblioteca do Ollama; para o turco, o caminho via TEI dá resultados mais precisos.

Alternativa 2: OpenRouter (hospedado)

OPENROUTER_API_KEY=sk-or-v1-xxx...
# İsteğe bağlı — varsayılan google/gemini-embedding-001 (3072 dim, ÜCRETLİ)
# OPENROUTER_EMBEDDING_MODEL=...
# OPENROUTER_EMBEDDING_DIMENSION=...
# EMBEDDING_PROMPT_STYLE=gemini   # varsayılan

Obtenha sua chave de API em openrouter.ai/keys. O modelo padrão google/gemini-embedding-001 agora é pago — se você escolher um modelo gratuito, configure OPENROUTER_EMBEDDING_MODEL, OPENROUTER_EMBEDDING_DIMENSION e os valores adequados de EMBEDDING_PROMPT_STYLE juntos.

Alternativa 3: OrcaRouter (hospedado)

OrcaRouter é um gateway de IA de produção que agrega mais de 200 modelos em um único endpoint compatível com OpenAI (inclui segurança de agente de IA zero-trust no nível do gateway). O código SDK existente funciona igualmente com base_url alterado.

ORCAROUTER_API_KEY=sk-orca-xxx...
# İsteğe bağlı — varsayılan google/gemini-embedding-001 (3072 dim, çok dilli)
# ORCAROUTER_EMBEDDING_MODEL=...
# ORCAROUTER_EMBEDDING_DIMENSION=...
# EMBEDDING_PROMPT_STYLE=gemini   # varsayılan

Obtenha sua chave de API em www.orcarouter.ai. Basta configurar ORCAROUTER_API_KEY em vez de OPENROUTER_API_KEY — a pesquisa semântica usa o mesmo fluxo compatível com OpenAI através do endpoint do OrcaRouter.

Referência de Configuração

Env VarDescriçãoExemplo
EMBEDDING_PROVIDERSe local for servidor local, se vazio, hospedado (OpenRouter/OrcaRouter)local
EMBEDDING_PROMPT_STYLEgemini / e5 / raw — prefixo esperado pelo modeloe5
LOCAL_EMBEDDING_BASE_URLURL compatível com OpenAI do servidor localhttp://localhost:8080/v1
LOCAL_EMBEDDING_MODELNome do modelointfloat/multilingual-e5-large
LOCAL_EMBEDDING_DIMENSIONTamanho da saída do modelo (deve corresponder exatamente)1024
OPENROUTER_API_KEYChave do OpenRouter (somente para hospedado)sk-or-v1-…
OPENROUTER_EMBEDDING_MODELID do modelo do OpenRoutergoogle/gemini-embedding-001
OPENROUTER_EMBEDDING_DIMENSIONTamanho da saída do modelo do OpenRouter3072
ORCAROUTER_API_KEYChave do OrcaRouter (somente para hospedado)sk-orca-…
ORCAROUTER_EMBEDDING_MODELID do modelo do OrcaRoutergoogle/gemini-embedding-001
ORCAROUTER_EMBEDDING_DIMENSIONTamanho da saída do modelo do OrcaRouter3072

💡 Nota: Se nenhum provedor de embeddings for configurado, a ferramenta de pesquisa semântica não aparecerá; as outras 28 ferramentas funcionam normalmente.

🛠️ Ferramentas Disponíveis (MCP Tools)

Este servidor FastMCP oferece 26 ferramentas MCP ativas + 1 ferramenta opcional de pesquisa semântica (otimizado para eficiência de tokens):

Ferramentas do Tribunal de Cassação (API Bedesten Unificada - Otimizado para Tokens)

Nota: As ferramentas do Tribunal de Cassação foram integradas à API Bedesten unificada para eficiência de tokens

Ferramentas do Conselho de Estado (API Bedesten Unificada - Otimizado para Tokens)

Nota: As ferramentas do Conselho de Estado foram integradas à API Bedesten unificada para eficiência de tokens

Ferramentas da API Bedesten Unificada (5 Tribunais) - 🚀 OTIMIZADO PARA TOKENS

  1. search_bedesten_unified(phrase, court_types, birimAdi, kararTarihiStart, kararTarihiEnd, ...): Pesquisa unificada em 5 tipos de tribunais (Tribunal de Cassação, Conselho de Estado, Direito Local, Direito de Apelação, KYB) + filtro de 79 câmaras + Pesquisa por Data e Sentença Definitiva
  2. get_bedesten_document_markdown(documentId: str): Busca qualquer documento da API Bedesten em formato Markdown (HTML/PDF → Markdown)

Ferramentas de Decisões Precedentes (UYAP)

  1. search_emsal_detailed_decisions(keyword, ...): Pesquisa decisões precedentes (UYAP) com critérios detalhados.
  2. get_emsal_document_markdown(id: str): Busca o texto de uma decisão precedente específica em formato Markdown.

Ferramentas do Tribunal de Conflitos

  1. search_uyusmazlik_decisions(icerik, ...): Pesquisa decisões do Tribunal de Conflitos com vários critérios de formulário.
  2. get_uyusmazlik_document_markdown_from_url(document_url): Obtém uma decisão de Conflito a partir de sua URL completa e a retorna em formato Markdown.

Ferramentas do Tribunal Constitucional (API Unificada) - 🚀 OTIMIZADO PARA TOKENS

  1. search_anayasa_unified(decision_type, keywords_all, ...): Pesquisa unificada de decisões do AYM (Controle Normativo + Recurso Individual) - otimização de 4 ferramentas → 2 ferramentas
  2. get_anayasa_document_unified(document_url, page_number): Busca unificada de documentos do AYM - conteúdo Markdown paginado

Ferramentas do KİK (Conselho de Contratação Pública)

  1. search_kik_v2_decisions(decision_type, karar_metni, karar_no, basvuran, idare_adi, baslangic_tarihi, bitis_tarihi): Pesquisa decisões de disputas, regulatórias e judiciais com a API KİK v2.
  2. get_kik_v2_document_markdown(gundemMaddesiId): Busca o texto da decisão do KİK em formato Markdown usando o gundemMaddesiId do resultado da pesquisa.

Ferramentas da Autoridade de Concorrência

* `search_rekabet_kurumu_decisions(KararTuru: Literal[...], ...) -> RekabetSearchResult`: Pesquisa decisões da Autoridade de Concorrência. Nomes amigáveis são usados para `KararTuru` (ex: "Fusão e Aquisição").
* `get_rekabet_kurumu_document(karar_id: str, page_number: Optional[int] = 1) -> RekabetDocument`: Obtém uma decisão específica da Autoridade de Concorrência usando `karar_id`. Extrai a página solicitada do original em PDF da decisão e a retorna em formato Markdown.

  • Ferramentas do Tribunal de Contas (API Unificada, 3 Tipos de Decisão + Filtro de 8 Câmaras):

    • search_sayistay_unified(decision_type, start, length, ...): Pesquisa decisões de genel_kurul, temyiz_kurulu ou daire com uma única ferramenta. length está no intervalo de 1 a 100.
    • get_sayistay_document_unified(decision_id, decision_type): Busca o texto completo em formato Markdown com o ID da decisão e o tipo de decisão do resultado da pesquisa unificada.
  • Ferramentas KVKK (Brave Search API + Pesquisa em Turco):

    • search_kvkk_decisions(keywords, page): Pesquisa decisões do KVKK (Conselho de Proteção de Dados Pessoais) com a Brave Search API. Pesquisa em turco + Segmentação por site (site:kvkk.gov.tr "karar özeti") + Suporte a paginação. O número de resultados é fixado em 10 no servidor.
    • get_kvkk_document_markdown(decision_url: str, page_number: Optional[int] = 1): Busca o texto completo da decisão do KVKK em formato Markdown paginado (páginas de 5.000 caracteres)

Ferramentas do BDDK

* `search_bddk_decisions(keywords, page)`: Pesquisa decisões do BDDK (Agência de Regulação e Supervisão Bancária). **Segmentação por "Número da Decisão"** + **Filtro de URL específico** (`bddk.org.tr/Mevzuat/DokumanGetir`) + **Pesquisa otimizada**
* `get_bddk_document_markdown(document_id: str, page_number: Optional[int] = 1)`: Busca o texto completo da decisão do BDDK em formato **Markdown paginado** (páginas de 5.000 caracteres)

Ferramentas do BTK (Autoridade de Tecnologias de Informação e Comunicação) (API JSON oficial do BTK)

* `search_btk_decisions(keywords, decision_no, decision_date, publication_date, relevant_unit, page, pageSize)`: Pesquisa decisões do Conselho do BTK. **Palavra-chave + Número da Decisão** (ex: `2026/DK-THD/91`) **+ Data da Decisão + Data de Publicação + Unidade Relacionada** filtros + **Paginação** (`pageSize` 1-50)
* `get_btk_document_markdown(pdf_url: str, page_number: int = 1)`: Baixa o PDF da decisão do BTK e o retorna em formato **Markdown paginado** (páginas de 5.000 caracteres). O `pdf_url` é obtido do campo `pdf_url` do resultado de `search_btk_decisions` (`btk.gov.tr`)

Ferramentas de Pareceres do GİB (Presidência da Administração de Receita) (API JSON oficial do GİB)

* `search_gib_ozelge(keywords, ozelgeNo, kanunNo, ozelgeStartDate, ozelgeEndDate, page, pageSize)`: Pesquisa pareceres do GİB (pareceres fiscais da Presidência da Administração de Receita da Turquia) — **mais de 18.000 pareceres** (IVA, Corporativo, Renda, Imposto Especial de Consumo, Selo, VUK, etc.). **Palavra-chave + Número do Parecer + Número da Lei + Intervalo de Datas** + **Conversão automática ISO 8601** (entradas `YYYY-MM-DD` são automaticamente convertidas para ISO 8601 completo)
* `get_gib_ozelge_document_markdown(ozelge_id: int, page_number: int = 1)`: Busca o texto completo de um parecer específico em formato **Markdown paginado** (páginas de 5.000 caracteres) + **bloco de cabeçalho de metadados** (Título, Número, Data, Lei, URL de origem)

Ferramentas da Comissão de Arbitragem de Seguros (Tavily Search API + PDF)

* `search_sigorta_tahkim_decisions(keywords, page)`: Pesquisa decisões da Comissão de Arbitragem de Seguros com a Tavily Search API. **Segmentação por site** (`sigortatahkim.org`) + **Suporte a paginação**. O número de resultados é fixado em 10 no servidor.
* `get_sigorta_tahkim_document_markdown(issue_number: str, page_number: int)`: Baixa o PDF da edição do Jornal de Decisões de Arbitragem e o retorna em formato **Markdown paginado** (páginas de 5.000 caracteres). 64 edições (2010-2025)
* `search_within_sigorta_tahkim_issue(issue_number: str, keyword: str, max_results: int)`: Pesquisa decisões dentro de uma edição específica do jornal por palavra-chave. **Suporte a I/İ em turco** + **Pontuação de relevância** + **Excerpt** no resultado

Ferramentas Auxiliares e de Compatibilidade

* `check_government_servers_health()`: Verifica a acessibilidade dos recursos judiciais.
* `search(query)`: Pesquisa em recursos suportados pelo Bedesten para compatibilidade com ChatGPT Deep Research.
* `fetch(id)`: Busca o texto completo de um único ID de documento do Bedesten para compatibilidade com ChatGPT Deep Research.

📊 Estatísticas Abrangentes e Conquistas de Otimização

🚀 SUCESSO DE OTIMIZAÇÃO DE TOKENS:

  • Redução de %61,8 em Tokens: 14.061 → 5.369 tokens (economia de 8.692 tokens)
  • Meta Excedida: Superamos a meta de 10.000 tokens em 4.631 tokens
  • Resposta Mais Rápida: Interação otimizada com Claude AI
  • Funcionalidade Preservada: Suporte a 100% dos recursos continua

ESTATÍSTICAS GERAIS:

  • Total de Tribunais/Instituições: 16 instituições jurídicas diferentes (incluindo BTK, Pareceres do GİB e Comissão de Arbitragem de Seguros)
  • Total de Ferramentas MCP: 28 ferramentas ativas + 1 ferramenta opcional de pesquisa semântica
  • Filtro de Câmara/Conselho: 87 opções diferentes (52 do Tribunal de Cassação + 27 do Conselho de Estado + 8 do Tribunal de Contas)
  • Filtro de Data: Suporte a intervalo de datas completo no formato ISO 8601 na ferramenta da API Bedesten unificada
  • Pesquisa de Sentença Exata: Pesquisa de sentença exata com aspas duplas na ferramenta da API Bedesten unificada (formato "\"mülkiyet kararı\"")
  • API Unificada: 10 ferramentas Bedesten separadas → 2 ferramentas unificadas (search_bedesten_unified + get_bedesten_document_markdown)
  • Fonte de API: Cobertura máxima com suporte a API dupla/tripla
  • Sistema Judiciário Turco Completo: Dos tribunais locais aos tribunais mais altos

🏛️ Hierarquia de Tribunais Suportada:

Yerel Mahkemeler → İstinaf → Yargıtay/Danıştay → Anayasa Mahkemesi
     ↓              ↓            ↓                    ↓
Bedesten API   Bedesten API   Dual/Triple API   Norm+Bireysel API
+ Tarih + Kesin + Tarih + Kesin + Daire + Tarih   + Gelişmiş
  Cümle Arama    Cümle Arama   + Kesin Cümle     Arama

⚖️ Recursos Abrangentes de Filtragem:

  • Filtro de Câmara: 79 opções (52 do Tribunal de Cassação + 27 do Conselho de Estado)
    • Tribunal de Cassação: 52 opções (1-23 Direito, 1-23 Penal, Assembleias Gerais, Conselho de Presidentes)
    • Conselho de Estado: 27 opções (1-17 Câmaras, Conselhos Administrativos/Fiscais, Tribunais Militares)
  • Filtro de Data: Formato ISO 8601 em 5 ferramentas da API Bedesten (YYYY-MM-DDTHH:MM:SS.000Z)
    • Suporte a data única, intervalo de datas, filtragem unilateral
    • Decisões do Tribunal de Cassação, Conselho de Estado, Direito Local, Direito de Apelação, KYB
  • Pesquisa de Sentença Exata: Formato de aspas duplas em 5 ferramentas da API Bedesten
    • Pesquisa normal: "mülkiyet kararı" (palavras separadas)
    • Pesquisa exata: "\"mülkiyet kararı\"" (como sentença completa)
    • Termos e conceitos jurídicos para resultados mais precisos 🔧 DETALHES DE OTIMIZAÇÃO:
  • Anayasa Mahkemesi: 4 ferramentas → 2 ferramentas unificadas (search_anayasa_unified + get_anayasa_document_unified)
  • Yargıtay & Danıştay: As ferramentas da API principal foram integradas à API unificada Bedesten
  • Sayıştay: 6 ferramentas → 2 ferramentas unificadas (search_sayistay_unified + get_sayistay_document_unified)
  • Otimização de parâmetros: Parâmetros pageSize otimizados
  • Otimização de descrições: Descrições longas foram encurtadas (ex: KIK karar_metni)

🌐 Web Service / Implantação ASGI

Yargı MCP agora também pode ser executado como serviço web! Graças ao suporte ASGI:

  • Acesso como API web: Acesso às ferramentas MCP por meio de endpoints HTTP
  • Implantação em nuvem: Suporte a Heroku, Railway, Google Cloud Run, AWS Lambda
  • Suporte a Docker: Container Docker pronto para produção
  • Integração FastAPI: API REST e documentação interativa

Início rápido:

# ASGI dependencies yükle
pip install yargi-mcp[asgi]

# Web servisi olarak başlat
python run_asgi.py
# veya
uvicorn asgi_app:app --host 0.0.0.0 --port 8000

Para um guia detalhado de implantação: docs/DEPLOYMENT.md


📜 Licença

Este projeto está licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.