Just Prompt

Uma interface unificada para vários provedores de Modelos de Linguagem de Grande Escala (LLM), incluindo OpenAI, Anthropic, Google Gemini, Groq, DeepSeek e Ollama.

Documentação

Just Prompt - Um servidor MCP leve para provedores de LLM

just-prompt é um servidor Model Control Protocol (MCP) que fornece uma interface unificada para vários provedores de Large Language Model (LLM), incluindo OpenAI, Anthropic, Google Gemini, Groq, DeepSeek e Ollama. Veja como usamos a ferramenta ceo_and_board para tornar decisões difíceis fáceis com o3 aqui.

Just Prompt Logo Just Prompt Logo

Ferramentas

As seguintes ferramentas MCP estão disponíveis no servidor:

  • prompt: Envia um prompt para vários modelos de LLM

    • Parâmetros:
      • text: O texto do prompt
      • models_prefixed_by_provider (opcional): Lista de modelos com prefixos de provedor. Se não for fornecida, usa os modelos padrão.
  • prompt_from_file: Envia um prompt de um arquivo para vários modelos de LLM

    • Parâmetros:
      • abs_file_path: Caminho absoluto para o arquivo contendo o prompt (deve ser um caminho absoluto, não relativo)
      • models_prefixed_by_provider (opcional): Lista de modelos com prefixos de provedor. Se não for fornecida, usa os modelos padrão.
  • prompt_from_file_to_file: Envia um prompt de um arquivo para vários modelos de LLM e salva as respostas como arquivos markdown

    • Parâmetros:
      • abs_file_path: Caminho absoluto para o arquivo contendo o prompt (deve ser um caminho absoluto, não relativo)
      • models_prefixed_by_provider (opcional): Lista de modelos com prefixos de provedor. Se não for fornecida, usa os modelos padrão.
      • abs_output_dir (padrão: "."): Caminho absoluto do diretório para salvar os arquivos markdown de resposta (deve ser um caminho absoluto, não relativo)
  • ceo_and_board: Envia um prompt para vários modelos 'membros do conselho' e faz um modelo 'CEO' tomar uma decisão com base nas respostas deles

    • Parâmetros:
      • abs_file_path: Caminho absoluto para o arquivo contendo o prompt (deve ser um caminho absoluto, não relativo)
      • models_prefixed_by_provider (opcional): Lista de modelos com prefixos de provedor para atuar como membros do conselho. Se não for fornecida, usa os modelos padrão.
      • abs_output_dir (padrão: "."): Caminho absoluto do diretório para salvar os arquivos de resposta e a decisão do CEO (deve ser um caminho absoluto, não relativo)
      • ceo_model (padrão: "openai:o3"): Modelo a ser usado para a decisão do CEO no formato "provedor:modelo"
  • list_providers: Lista todos os provedores de LLM disponíveis

    • Parâmetros: Nenhum
  • list_models: Lista todos os modelos disponíveis para um provedor de LLM específico

    • Parâmetros:
      • provider: Provedor para listar modelos (por exemplo, 'openai' ou 'o')

Prefixos de Provedor

todo modelo deve ser prefixado com o nome do provedor

use o nome curto para referência mais rápida

  • o ou openai: OpenAI
    • o:gpt-4o-mini
    • openai:gpt-4o-mini
  • a ou anthropic: Anthropic
    • a:claude-3-5-haiku
    • anthropic:claude-3-5-haiku
  • g ou gemini: Google Gemini
    • g:gemini-2.5-pro-exp-03-25
    • gemini:gemini-2.5-pro-exp-03-25
  • q ou groq: Groq
    • q:llama-3.1-70b-versatile
    • groq:llama-3.1-70b-versatile
  • d ou deepseek: DeepSeek
    • d:deepseek-coder
    • deepseek:deepseek-coder
  • l ou ollama: Ollama
    • l:llama3.1
    • ollama:llama3.1

Recursos

  • API unificada para múltiplos provedores de LLM
  • Suporte para prompts de texto a partir de strings ou arquivos
  • Executa vários modelos em paralelo
  • Correção automática de nomes de modelos usando o primeiro modelo da lista --default-models
  • Capacidade de salvar respostas em arquivos
  • Listagem fácil de provedores e modelos disponíveis

Instalação

# Clone the repository
git clone https://github.com/yourusername/just-prompt.git
cd just-prompt

# Install with pip
uv sync

Variáveis de Ambiente

Crie um arquivo .env com suas chaves de API (você pode copiar o arquivo .env.sample):

cp .env.sample .env

Em seguida, edite o arquivo .env para adicionar suas chaves de API (ou exporte-as no seu shell):

OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
GEMINI_API_KEY=your_gemini_api_key_here
GROQ_API_KEY=your_groq_api_key_here
DEEPSEEK_API_KEY=your_deepseek_api_key_here
OLLAMA_HOST=http://localhost:11434

Instalação no Claude Code

Em todos esses exemplos, substitua o diretório pelo caminho para o diretório just-prompt.

Modelos padrão definidos como openai:o3:high, openai:o4-mini:high, anthropic:claude-opus-4-20250514, anthropic:claude-sonnet-4-20250514, gemini:gemini-2.5-pro-preview-03-25 e gemini:gemini-2.5-flash-preview-04-17.

Se você usar o Claude Code diretamente do repositório, poderá ver no arquivo .mcp.json que definimos os modelos padrão como...

{
  "mcpServers": {
    "just-prompt": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        ".",
        "run",
        "just-prompt",
        "--default-models",
        "openai:o3:high,openai:o4-mini:high,anthropic:claude-opus-4-20250514,anthropic:claude-sonnet-4-20250514,gemini:gemini-2.5-pro-preview-03-25,gemini:gemini-2.5-flash-preview-04-17"
      ],
      "env": {}
    }
  }
}

O parâmetro --default-models define os modelos a serem usados quando nenhum é fornecido explicitamente aos endpoints da API. O primeiro modelo da lista também é usado para correção de nomes de modelos quando necessário. Esta pode ser uma lista de modelos separados por vírgulas.

Ao iniciar o servidor, ele verificará automaticamente quais chaves de API estão disponíveis no seu ambiente e informará quais provedores você pode usar. Se uma chave estiver ausente, o provedor será listado como indisponível, mas o servidor ainda será iniciado e poderá ser usado com os provedores disponíveis.

Usando mcp add-json

Copie isto e cole no claude code, mas NÃO execute até copiar o json

claude mcp add just-prompt "$(pbpaste)"

JSON para copiar

{
    "command": "uv",
    "args": ["--directory", ".", "run", "just-prompt"]
}

Com um modelo padrão personalizado definido como openai:gpt-4o.

{
    "command": "uv",
    "args": ["--directory", ".", "run", "just-prompt", "--default-models", "openai:gpt-4o"]
}

Com múltiplos modelos padrão:

{
    "command": "uv",
    "args": ["--directory", ".", "run", "just-prompt", "--default-models", "openai:o3:high,openai:o4-mini:high,anthropic:claude-opus-4-20250514,anthropic:claude-sonnet-4-20250514,gemini:gemini-2.5-pro-preview-03-25,gemini:gemini-2.5-flash-preview-04-17"]
}

Usando mcp add com escopo de projeto

# With default models
claude mcp add just-prompt -s project \
  -- \
    uv --directory . \
    run just-prompt

# With custom default model
claude mcp add just-prompt -s project \
  -- \
  uv --directory . \
  run just-prompt --default-models "openai:gpt-4o"

# With multiple default models
claude mcp add just-prompt -s user \
  -- \
  uv --directory . \
  run just-prompt --default-models "openai:o3:high,openai:o4-mini:high,anthropic:claude-opus-4-20250514,anthropic:claude-sonnet-4-20250514,gemini:gemini-2.5-pro-preview-03-25,gemini:gemini-2.5-flash-preview-04-17"

mcp remove

claude mcp remove just-prompt

Executando Testes

uv run pytest

Estrutura do Codebase

.
├── ai_docs/                   # Documentation for AI model details
│   ├── extending_thinking_sonny.md
│   ├── llm_providers_details.xml
│   ├── openai-reasoning-effort.md
│   └── pocket-pick-mcp-server-example.xml
├── example_outputs/           # Example outputs from different models
├── list_models.py             # Script to list available LLM models
├── prompts/                   # Example prompt files
├── pyproject.toml             # Python project configuration
├── specs/                     # Project specifications
│   ├── init-just-prompt.md
│   ├── new-tool-llm-as-a-ceo.md
│   └── oai-reasoning-levels.md
├── src/                       # Source code directory
│   └── just_prompt/
│       ├── __init__.py
│       ├── __main__.py
│       ├── atoms/             # Core components
│       │   ├── llm_providers/ # Individual provider implementations
│       │   │   ├── anthropic.py
│       │   │   ├── deepseek.py
│       │   │   ├── gemini.py
│       │   │   ├── groq.py
│       │   │   ├── ollama.py
│       │   │   └── openai.py
│       │   └── shared/        # Shared utilities and data types
│       │       ├── data_types.py
│       │       ├── model_router.py
│       │       ├── utils.py
│       │       └── validator.py
│       ├── molecules/         # Higher-level functionality
│       │   ├── ceo_and_board_prompt.py
│       │   ├── list_models.py
│       │   ├── list_providers.py
│       │   ├── prompt.py
│       │   ├── prompt_from_file.py
│       │   └── prompt_from_file_to_file.py
│       ├── server.py          # MCP server implementation
│       └── tests/             # Test directory
│           ├── atoms/         # Tests for atoms
│           │   ├── llm_providers/
│           │   └── shared/
│           └── molecules/     # Tests for molecules
│               ├── test_ceo_and_board_prompt.py
│               ├── test_list_models.py
│               ├── test_list_providers.py
│               ├── test_prompt.py
│               ├── test_prompt_from_file.py
│               └── test_prompt_from_file_to_file.py
└── ultra_diff_review/         # Diff review outputs

Preparação de Contexto

LEIA README.md, pyproject.toml, depois execute git ls-files e 'eza --git-ignore --tree' para entender o contexto do projeto.

Esforço de Raciocínio com OpenAI o‑Series

Para modelos de raciocínio da série o da OpenAI (o4-mini, o3-mini, o3), você pode controlar quanto raciocínio interno o modelo realiza antes de produzir uma resposta visível.

Anexe um dos seguintes sufixos ao nome do modelo (após o prefixo do provedor):

  • :low   – raciocínio interno mínimo (mais rápido, mais barato)
  • :medium – equilibrado (padrão se omitido)
  • :high  – raciocínio completo (mais lento, mais tokens)

Exemplos:

  • openai:o4-mini:low
  • o:o4-mini:high

Quando um sufixo de raciocínio está presente, o just‑prompt alterna automaticamente para a API Responses da OpenAI (quando disponível) e define o parâmetro reasoning.effort correspondente. Se o SDK da OpenAI instalado for mais antigo, ele recorre graciosamente ao endpoint Chat Completions e incorpora uma instrução interna de sistema para aproximar o nível de esforço solicitado.

Tokens de Pensamento com Claude

Os modelos Anthropic Claude claude-opus-4-20250514 e claude-sonnet-4-20250514 suportam capacidades de pensamento estendido usando tokens de pensamento. Isso permite que o Claude realize processos de pensamento mais completos antes de responder.

Você pode habilitar tokens de pensamento adicionando um sufixo ao nome do modelo neste formato:

  • anthropic:claude-opus-4-20250514:1k - Usa 1024 tokens de pensamento para Opus 4
  • anthropic:claude-sonnet-4-20250514:4k - Usa 4096 tokens de pensamento para Sonnet 4
  • anthropic:claude-opus-4-20250514:8000 - Usa 8000 tokens de pensamento para Opus 4

Notas:

  • Tokens de pensamento são suportados para os modelos claude-opus-4-20250514, claude-sonnet-4-20250514 e claude-3-7-sonnet-20250219
  • Orçamentos válidos de tokens de pensamento variam de 1024 a 16000
  • Valores fora deste intervalo serão ajustados automaticamente para ficarem dentro do intervalo
  • Você pode especificar o orçamento com notação k (1k, 4k, etc.) ou com números exatos (1024, 4096, etc.)

Orçamento de Pensamento com Gemini

O modelo Google Gemini gemini-2.5-flash-preview-04-17 suporta capacidades de pensamento estendido usando orçamento de pensamento. Isso permite que o Gemini realize raciocínio mais completo antes de fornecer uma resposta.

Você pode habilitar o orçamento de pensamento adicionando um sufixo ao nome do modelo neste formato:

  • gemini:gemini-2.5-flash-preview-04-17:1k - Usa orçamento de pensamento de 1024
  • gemini:gemini-2.5-flash-preview-04-17:4k - Usa orçamento de pensamento de 4096
  • gemini:gemini-2.5-flash-preview-04-17:8000 - Usa orçamento de pensamento de 8000

Notas:

  • O orçamento de pensamento é suportado apenas para o modelo gemini-2.5-flash-preview-04-17
  • O intervalo válido de orçamento de pensamento é de 0 a 24576
  • Valores fora deste intervalo serão ajustados automaticamente para ficarem dentro do intervalo
  • Você pode especificar o orçamento com notação k (1k, 4k, etc.) ou com números exatos (1024, 4096, etc.)

Recursos

Master AI Coding

Aprenda a codar com IA com os Princípios Fundamentais de Codificação com IA

Siga o canal IndyDevDan no youtube para mais dicas e truques de codificação com IA.