Just Prompt-面向LLM提供商的轻量级MCP服务器
just-prompt 是一个模型控制协议(MCP)服务器,为各种大型语言模型(LLM)提供商提供统一的接口,包括OpenAI、Anthropic、Google Gemini、Groq、DeepSeek和Ollama。查看我们如何使用 ceo_and_board 制作工具 有了o3,艰难的决定变得容易.
工具
服务器中提供以下MCP工具:
prompt:向多个LLM模型发送提示
- 参数: - text:提示文本 - models_prefixed_by_provider (可选):带有提供者前缀的模型列表。如果未提供,则使用默认型号。
prompt_from_file:从文件向多个LLM模型发送提示
- 参数: - abs_file_path:包含提示的文件的绝对路径(必须是绝对路径,而不是相对路径) - models_prefixed_by_provider (可选):带有提供者前缀的模型列表。如果未提供,则使用默认型号。
prompt_from_file_to_file:从文件向多个LLM模型发送提示,并将响应保存为markdown文件
- 参数: - abs_file_path:包含提示的文件的绝对路径(必须是绝对路径,而不是相对路径) - models_prefixed_by_provider (可选):带有提供者前缀的模型列表。如果未提供,则使用默认型号。 - abs_output_dir (默认值:“.”):用于保存响应markdown文件的绝对目录路径(必须是绝对路径,而不是相对路径)
ceo_and_board:向多个“董事会成员”模型发送提示,并让一个“首席执行官”模型根据他们的反应做出决定
- 参数: - abs_file_path:包含提示的文件的绝对路径(必须是绝对路径,而不是相对路径) - models_prefixed_by_provider (可选):具有作为董事会成员的提供者前缀的模型列表。如果未提供,则使用默认型号。 - abs_output_dir (默认:“.”):保存响应文件和CEO决策的绝对目录路径(必须是绝对路径,而不是相对路径) - ceo_model (默认:“openai:o3”):用于CEO决策的模型,格式为“提供者:模型”
list_providers:列出所有可用的LLM提供商
- 参数:无
list_models:列出特定LLM提供商的所有可用型号
- 参数: - provider:提供商列出模型(例如“openai”或“o”)
提供者前缀
每个模型都必须以提供者名称作为前缀 使用短名称以加快引用速度
o或openai:OpenAI
- o:gpt-4o-mini - openai:gpt-4o-mini
a或anthropic:人类学
- a:claude-3-5-haiku - anthropic:claude-3-5-haiku
g或gemini:谷歌双子座
- g:gemini-2.5-pro-exp-03-25 - gemini:gemini-2.5-pro-exp-03-25
q或groq:Groq
- q:llama-3.1-70b-versatile - groq:llama-3.1-70b-versatile
d或deepseek:DeepSeek
- d:deepseek-coder - deepseek:deepseek-coder
l或ollama:奥拉马
- l:llama3.1 - ollama:llama3.1
特性
- 适用于多个LLM提供程序的统一API
- 支持来自字符串或文件的文本提示
- 并行运行多个模型
- 使用中的第一个模型自动更正模型名称
--default-models列表 - 能够保存对文件的响应
- 轻松列出可用的提供商和型号
安装
# Clone the repository
git clone https://github.com/yourusername/just-prompt.git
cd just-prompt
# Install with pip
uv sync环境变量
创建一个 .env 使用API密钥的文件(您可以复制 .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:11434Claude代码安装
在所有这些示例中,将目录替换为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代码中,但在复制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
克劳德mcp删除只是提示
运行测试
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文件和'eza-git ignore-tree'以了解项目的上下文。
OpenAI o系列的推理工作
对于OpenAI o系列推理模型(o4-mini, o3-mini, o3)你可以 控制多少 *内部的* 在生成模型之前对模型进行推理 可见的答案。
在模型名称后附加以下后缀之一(在 *提供者* 前缀):
:low-最少的内部推理(更快、更便宜):medium–平衡(如果省略,则默认):high–彻底推理(速度较慢,令牌较多)
示例:
openai:o4-mini:lowo:o4-mini:high
当存在推理后缀时, just-提示 自动切换到 OpenAI *响应* API(如果可用)并设置相应的 reasoning.effort 参数。如果安装的OpenAI SDK较旧 优雅地回退到聊天完成端点,并嵌入一个内部 系统指令,以近似所请求的努力水平。
与克劳德一起思考代币
人类克劳德模型 claude-opus-4-20250514 和 claude-sonnet-4-20250514 使用思维令牌支持扩展思维能力。这使得克劳德在回答之前能够进行更深入的思考。
您可以通过以下格式在模型名称后添加后缀来启用思维标记:
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-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+模型
- 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编码技巧和窍门。
