返回市场
仅提示

仅提示

作者:disler683 星标更新:2025-08-11

项目介绍

Just Prompt - 一个轻量级的MCP服务器,适用于各种大型语言模型提供商

just-prompt 是一个模型控制协议(MCP)服务器,提供了一个统一的接口,用于访问包括OpenAI、Anthropic、Google Gemini、Groq、DeepSeek和Ollama在内的多种大型语言模型(LLM)提供商。了解我们如何使用ceo_and_board工具来使困难决策变得简单

<img src="images/just-prompt-logo.png" alt="Just Prompt Logo" width="700" height="auto"> <img src="images/o3-as-a-ceo.png" alt="Just Prompt Logo" width="700" height="auto">

工具

以下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: 向多个“董事会成员”模型发送提示,并让“CEO”模型基于它们的响应做出决定

    • 参数:
      • abs_file_path: 包含提示的文件的绝对路径(必须是绝对路径,而不是相对路径)
      • models_prefixed_by_provider(可选):作为董事会成员的带有提供商前缀的模型列表。如果没有提供,则使用默认模型。
      • abs_output_dir(默认值:"."): 保存响应文件和CEO决策的绝对目录路径(必须是绝对路径,而不是相对路径)
      • ceo_model(默认值:"openai:o3"): 用于CEO决策的模型,格式为"provider:model"
  • list_providers: 列出所有可用的LLM提供商

    • 参数:无
  • list_models: 列出特定LLM提供商的所有可用模型

    • 参数:
      • provider: 要列出模型的提供商(例如,'openai'或'o')

提供商前缀

每个模型都必须以前缀的形式加上提供商名称

使用短名称以加快引用速度

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

特性

  • 多种LLM提供商的统一API
  • 支持从字符串或文件发送文本提示
  • 并行运行多个模型
  • 自动使用--default-models列表中的第一个模型进行模型名称纠正
  • 将响应保存到文件的能力
  • 易于列出可用的提供商和模型

安装

# 克隆仓库
git clone https://github.com/yourusername/just-prompt.git
cd just-prompt

# 使用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:11434

Claude Code安装

在这些示例中,请将目录替换为您实际的just-prompt目录路径。

默认模型设置为openai:o3:highopenai:o4-mini:highanthropic:claude-opus-4-20250514anthropic:claude-sonnet-4-20250514gemini:gemini-2.5-pro-preview-03-25gemini: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-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与项目范围

# 使用默认模型
claude mcp add just-prompt -s project \
  -- \
    uv --directory . \
    run just-prompt

# 使用自定义默认模型
claude mcp add just-prompt -s project \
  -- \
  uv --directory . \
  run just-prompt --default-models "openai:gpt-4o"

# 使用多个默认模型
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/                   # 文档目录,包含AI模型细节
│   ├── extending_thinking_sonny.md
│   ├── llm_providers_details.xml
│   ├── openai-reasoning-effort.md
│   └── pocket-pick-mcp-server-example.xml
├── example_outputs/           # 不同模型的示例输出
├── list_models.py             # 列出可用LLM模型的脚本
├── prompts/                   # 示例提示文件
├── pyproject.toml             # Python项目配置
├── specs/                     # 项目规范
│   ├── init-just-prompt.md
│   ├── new-tool-llm-as-a-ceo.md
│   └── oai-reasoning-levels.md
├── src/                       # 源代码目录
│   └── just_prompt/
│       ├── __init__.py
│       ├── __main__.py
│       ├── atoms/             # 核心组件
│       │   ├── llm_providers/ # 单个提供商实现
│       │   │   ├── anthropic.py
│       │   │   ├── deepseek.py
│       │   │   ├── gemini.py
│       │   │   ├── groq.py
│       │   │   ├── ollama.py
│       │   │   └── openai.py
│       │   └── shared/        # 共享实用程序和数据类型
│       │       ├── data_types.py
│       │       ├── model_router.py
│       │       ├── utils.py
│       │       └── validator.py
│       ├── molecules/         # 高级功能
│       │   ├── 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服务器实现
│       └── tests/             # 测试目录
│           ├── atoms/         # 原子测试
│           │   ├── llm_providers/
│           │   └── shared/
│           └── 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/         # 差异审查输出

上下文预热

阅读README.md,pyproject.toml,然后运行git ls-files,以及'eza --git-ignore --tree'以理解项目的上下文。

OpenAI o系列推理努力

对于OpenAI o系列推理模型(o4-minio3-minio3),您可以控制模型在生成可见答案之前执行多少内部推理。

在模型名称后(在提供商前缀之后)追加以下后缀之一:

  • :low   – 最小内部推理(更快,更便宜)
  • :medium – 平衡(如果省略则默认)
  • :high  – 彻底推理(更慢,更多令牌)

示例:

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

当存在推理后缀时,just-prompt会自动切换到OpenAI Responses API(如果可用),并设置相应的reasoning.effort参数。如果安装的OpenAI SDK较旧,它会优雅地回退到Chat Completions端点,并嵌入内部系统指令以近似请求的努力水平。

Claude的思考令牌

Anthropic Claude模型claude-opus-4-20250514claude-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-20250514claude-sonnet-4-20250514claude-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等)指定预算

资源

掌握AI编码

通过基础的AI编码原则学习使用AI进行编码。

关注IndyDevDan YouTube频道获取更多AI编码技巧和窍门。