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.
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 promptmodels_prefixed_by_provider(opcional): Lista de modelos com prefixos de provedor. Se não for fornecida, usa os modelos padrão.
- Parâmetros:
-
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.
- Parâmetros:
-
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)
- Parâmetros:
-
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"
- Parâmetros:
-
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')
- Parâmetros:
Prefixos de Provedor
todo modelo deve ser prefixado com o nome do provedor
use o nome curto para referência mais rápida
oouopenai: OpenAIo:gpt-4o-miniopenai:gpt-4o-mini
aouanthropic: Anthropica:claude-3-5-haikuanthropic:claude-3-5-haiku
gougemini: Google Geminig:gemini-2.5-pro-exp-03-25gemini:gemini-2.5-pro-exp-03-25
qougroq: Groqq:llama-3.1-70b-versatilegroq:llama-3.1-70b-versatile
doudeepseek: DeepSeekd:deepseek-coderdeepseek:deepseek-coder
louollama: Ollamal:llama3.1ollama: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:lowo: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 4anthropic:claude-sonnet-4-20250514:4k- Usa 4096 tokens de pensamento para Sonnet 4anthropic: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-20250514eclaude-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 1024gemini:gemini-2.5-flash-preview-04-17:4k- Usa orçamento de pensamento de 4096gemini: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
- https://docs.anthropic.com/en/api/models-list?q=list+models
- https://github.com/googleapis/python-genai
- https://platform.openai.com/docs/api-reference/models/list
- https://api-docs.deepseek.com/api/list-models
- https://github.com/ollama/ollama-python
- https://github.com/openai/openai-python
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.