关于 Just Prompt - A lightweight MCP server for LLM providers
just-prompt 是一个轻量级 MCP 服务,为 OpenAI、Anthropic、Google Gemini、Groq、DeepSeek 和 Ollama 提供统一接口。它可以将同一提示词并行发送给多个模型,并支持将结果保存为文件。
主要功能
- 01统一接口访问六个 LLM 提供方
- 02并行向多个模型发送提示词
- 03从字符串或文件读取提示词
- 04将响应保存为 Markdown 文件
- 05推理强度与思考 token 后缀设置
适用场景
- 01对比多个模型对同一问题的回答
- 02使用 CEO 模型汇总多个模型的意见并作出决定
- 03将文件中的提示词批量发送给多个模型
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 prompt、prompt_from_file、ceo_and_board、list_models 等工具。模型通过 provider 前缀指定。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Just Prompt - 面向大模型提供商的轻量级 MCP 服务
just-prompt 是一款模型控制协议(MCP)服务,为 OpenAI、Anthropic、Google Gemini、Groq、DeepSeek 和 Ollama 等多种大语言模型(LLM)提供统一接口。了解我们如何使用 ceo_and_board 工具,通过 o3 轻松做出艰难决策。
工具
此服务提供以下 MCP 工具:
-
prompt:向多个大模型发送提示词- 参数:
text:提示词文本models_prefixed_by_provider(可选):带提供商前缀的模型列表。若未提供,则使用默认模型。
- 参数:
-
prompt_from_file:从文件读取提示词并发送给多个大模型- 参数:
abs_file_path:包含提示词的文件的绝对路径(必须是绝对路径,不能是相对路径)models_prefixed_by_provider(可选):带提供商前缀的模型列表。若未提供,则使用默认模型。
- 参数:
-
prompt_from_file_to_file:从文件读取提示词并发送给多个大模型,然后将回复保存为 Markdown 文件- 参数:
abs_file_path:包含提示词的文件的绝对路径(必须是绝对路径,不能是相对路径)models_prefixed_by_provider(可选):带提供商前缀的模型列表。若未提供,则使用默认模型。abs_output_dir(默认值:"."):用于保存回复 Markdown 文件的绝对目录路径(必须是绝对路径,不能是相对路径)
- 参数:
-
ceo_and_board:向多个“董事会成员”模型发送提示词,并让“CEO”模型根据他们的回复做出决策- 参数:
abs_file_path:包含提示词的文件的绝对路径(必须是绝对路径,不能是相对路径)models_prefixed_by_provider(可选):用作董事会成员的带提供商前缀的模型列表。若未提供,则使用默认模型。abs_output_dir(默认值:"."):用于保存回复文件和 CEO 决策的绝对目录路径(必须是绝对路径,不能是相对路径)ceo_model(默认值:"openai:o3"):用于 CEO 决策的模型,格式为 "provider:model"
- 参数:
-
list_providers:列出所有可用的大模型提供商- 参数:无
-
list_models:列出指定大模型提供商的所有可用模型- 参数:
provider:要列出模型的提供商(例如,'openai' 或 'o')
- 参数:
提供商前缀
每个模型都必须带有提供商名称前缀
使用短名称可更快地引用
o或openai:OpenAIo:gpt-4o-miniopenai:gpt-4o-mini
a或anthropic:Anthropica:claude-3-5-haikuanthropic:claude-3-5-haiku
g或gemini:Google Geminig:gemini-2.5-pro-exp-03-25gemini:gemini-2.5-pro-exp-03-25
q或groq:Groqq:llama-3.1-70b-versatilegroq:llama-3.1-70b-versatile
d或deepseek:DeepSeekd:deepseek-coderdeepseek:deepseek-coder
l或ollama:Ollamal:llama3.1ollama:llama3.1
功能
- 为多个大模型提供商提供统一 API
- 支持通过字符串或文件提供文本提示词
- 并行运行多个模型
- 使用
--default-models列表中的第一个模型自动修正模型名称 - 可将回复保存到文件
- 轻松列出可用的提供商和模型
安装
# Clone the repository
git clone https://github.com/yourusername/just-prompt.git
cd just-prompt
# Install with pip
uv sync
环境变量
创建包含 API 密钥的 .env 文件(可复制 .env.sample 文件):
cp .env.sample .env
然后编辑 .env 文件以添加 API 密钥(或在 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
Claude Code 安装
在以下所有示例中,请将目录替换为 just-prompt 目录的路径。
默认模型设置为 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。
如果直接从代码仓库运行 Claude Code,可以在 .mcp.json 文件中看到我们将默认模型设置为……
{
"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": {}
}
}
}
--default-models 参数用于设置在未向 API 端点显式提供模型时要使用的模型。列表中的第一个模型也会在需要时用于修正模型名称。模型列表可以用逗号分隔。
启动服务时,它会自动检查你的环境中有哪些 API 密钥,并告知你可以使用哪些提供商。如果缺少某个密钥,该提供商会被列为不可用,但服务仍会启动,并可与可用的提供商配合使用。
使用 mcp add-json
复制以下内容并粘贴到 claude code 中,但先不要运行,直到你复制 JSON
claude mcp add just-prompt "$(pbpaste)"
要复制的 JSON
{
"command": "uv",
"args": ["--directory", ".", "run", "just-prompt"]
}
将默认模型自定义设置为 openai:gpt-4o。
{
"command": "uv",
"args": ["--directory", ".", "run", "just-prompt", "--default-models", "openai:gpt-4o"]
}
设置多个默认模型:
{
"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"]
}
使用带有项目范围的 mcp add
# 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
运行测试
uv run pytest
代码库结构
.
├── 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
上下文预热
阅读 README.md、pyproject.toml,然后运行 git ls-files 和 'eza --git-ignore --tree',以了解项目的上下文。
OpenAI o 系列的推理力度
对于 OpenAI o 系列推理模型(o4-mini、o3-mini、o3),你可以
控制模型在生成可见答案前进行多少内部推理。
在模型名称后(即提供商前缀之后)追加以下后缀之一:
:low– 最少的内部推理(更快、更便宜):medium– 均衡(省略时的默认值):high– 深入推理(更慢、消耗更多令牌)
示例:
openai:o4-mini:lowo:o4-mini:high
如果存在推理后缀,just‑prompt 会自动切换到 OpenAI Responses API(如果可用),并设置相应的
reasoning.effort 参数。如果安装的 OpenAI SDK 版本较旧,它会平稳回退到 Chat Completions 端点,并嵌入一条内部
系统指令,以近似达到所请求的推理力度。
Claude 的思考令牌
Anthropic Claude 模型 claude-opus-4-20250514 和 claude-sonnet-4-20250514 支持使用思考令牌进行扩展思考。这使 Claude 能够在回答前进行更深入的思考。
你可以通过按以下格式为模型名称添加后缀来启用思考令牌:
anthropic:claude-opus-4-20250514:1k- 为 Opus 4 使用 1024 个思考令牌anthropic:claude-sonnet-4-20250514:4k- 为 Sonnet 4 使用 4096 个思考令牌anthropic:claude-opus-4-20250514:8000- 为 Opus 4 使用 8000 个思考令牌
注意:
- 思考令牌适用于
claude-opus-4-20250514、claude-sonnet-4-20250514和claude-3-7-sonnet-20250219模型 - 有效的思考令牌预算范围为 1024 到 16000
- 超出此范围的值会自动调整至有效范围内
- 预算可以使用 k 表示法(1k、4k 等)或精确数字(1024、4096 等)指定
使用 Gemini 的思考预算
Google Gemini 模型 gemini-2.5-flash-preview-04-17 支持通过思考预算实现扩展思考能力。这样 Gemini 就能在给出回复前进行更全面的推理。
在模型名称后添加后缀即可启用思考预算,格式如下:
gemini:gemini-2.5-flash-preview-04-17:1k- 使用 1024 的思考预算gemini:gemini-2.5-flash-preview-04-17:4k- 使用 4096 的思考预算gemini:gemini-2.5-flash-preview-04-17:8000- 使用 8000 的思考预算
注意:
- 思考预算仅支持
gemini-2.5-flash-preview-04-17模型 - 思考预算的有效范围为 0 到 24576
- 超出此范围的值会自动调整到范围内
- 预算可以使用 k 表示法(1k、4k 等)或精确数字(1024、4096 等)
资源
- 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
掌握 AI 编码
通过 AI 编码基础原则学习编程。
关注 IndyDevDan 的 YouTube 频道,了解更多 AI 编码技巧和窍门。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。