AI模型咨询服务器

Oracle MCP Server是一个提供统一接口通过CLI咨询AI模型(如Codex或Claude)的服务,适用于需要复杂问题分析和决策支持的场景。

  • by becksclair
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 becksclair/oracle-mcp

使用说明

Oracle MCP服务器

一种模型上下文协议(MCP)服务器,为通过CLI查询oracle AI模型(Codex或Claude)提供统一接口。

特性

  • 统一Oracle工具:单人 consult_oracle 适用于Codex或Claude Code的工具
  • 可配置模型:通过以下方式支持自定义oracle模型和推理级别 ~/.oracle-mcp.json
  • 可测试架构:用于参数构造和CLI调用的纯函数
  • 正确的错误处理:使用描述性消息进行全面的错误处理
  • 类型安全:具有显式类型和安全错误处理的完整TypeScript

设置

# Install dependencies
bun install

# Build TypeScript
bun run build

# Run the server
bun run start

发展

# Run directly with hot reload
bun run dev

# Run test suite
bun test

工具

consult_oracle

请咨询神谕,了解专家对复杂问题的推理和分析。

何时使用:

  • 规划具有多重权衡的复杂任务
  • 您对自己的方法有≤90%的信心
  • 您需要分析架构决策或设计模式

参数:

  • prompt (string,必填):向神谕咨询的问题或难题。具体说明背景、约束以及你需要什么样的决策或分析。

示例提示:

  • “构建用于工具集成的TypeScript MCP服务器的最佳方法是什么?”
  • “我们应该为这个新功能使用单片架构还是微服务架构?”
  • “不同错误处理模式之间的权衡是什么?”

配置

服务器读取 ~/.oracle-mcp.json 如果存在,则可以自定义行为。如果文件不存在,则使用默认值。

默认配置

{
  "model": "gpt-5.1-codex-mini",
  "reasoning": "medium",
  "command": "codex"
}

Codex示例

{
  "oracle": {
    "model": "gpt-5.1-codex-mini",
    "reasoning": "high",
    "command": "codex"
  }
}

克劳德代码示例

{
  "oracle": {
    "model": "opus",
    "command": "claude"
  }
}

实现细节

CLI调用格式

食品法典:

codex exec --model <model> [-c reasoning_level=<level>] "<prompt>"

克劳德:

claude -p --model <model> "<prompt>"

建筑

  • 单文件服务器 (src/index.ts)实施MCP协议
  • 纯函数 为了可测试性:
    • buildOracleArgs():将CLI参数构造为数组(避免shell转义问题)
    • invokeOracle():通过执行CLI spawnSync 并返回结构化结果
  • MCP 处理器:
    • ListToolsRequestSchema:描述 consult_oracle 基于配置的动态描述工具
    • CallToolRequestSchema:处理工具调用,捕获stdout,并返回格式正确的响应
  • 错误处理:尝试用回退来捕捉 String(error) 对于非Error对象
  • 响应格式:所有回复均包装为 { content: [{ type: "text", text: string }], isError?: boolean }

依赖项

  • @modelcontextprotocol/sdk:官方MCP协议实施和stdio传输

测试

全面的测试套件(42+测试)涵盖:

  • Codex与Claude的论证建构
  • 特殊字符处理(引号、倒签、美元符号、换行符)
  • 配置加载和默认值
  • 工具描述生成
  • 错误处理和响应格式
  • 类型安全和MCP协议合规性