Skip to main content

ask-james

Get a second opinion from another LLM — without leaving your assistant.

ask-james is an MCP server that lets any AI assistant (Claude, Kiro, Cursor, etc.) call out to a different LLM for a critical review. Say "ask James what he thinks" and get structured feedback on your plan before you commit.

Example

Here's James in action during a Kiro CLI session:

> I need a list of POI in Paris using OpenStreetMap

Kiro: I'll create a Python script using the Overpass API...

    def get_paris_poi():
        query = """
        [out:json][timeout:25];
        (
          node["tourism"~"attraction|museum|monument|viewpoint"]["name"](area:3600071525);
          way["tourism"~"attraction|museum|monument|viewpoint"]["name"](area:3600071525);
        );
        out center meta;
        """
        # ... fetch and parse response

> Ask James for a second opinion

James:

  Your approach has solid foundations but several issues:

  Key concerns:
  - Filtering is too narrow — only tourism tags will miss landmarks
    tagged as historic, amenity, or leisure
  - Ways/relations don't have direct coordinates — you need out center;
  - "Top 50" is meaningless without defining how to rank POIs

  What looks solid:
  - Using Overpass API is the right approach
  - Querying nodes/ways/relations is correct

  Questions:
  - What exactly counts as a POI for your use case?
  - How should results be sorted — by name, importance, distance?
  - Paris city proper or greater metro area?

The assistant proposed code. James caught the gaps. Now you can decide with full context.

Think about your last implementation — would a second opinion have saved you time?

Quick start

Add this to your MCP host config:

{
  "command": "uvx",
  "args": ["ask-james"],
  "env": {
    "ASK_JAMES_API_KEY": "your-api-key",
    "ASK_JAMES_MODEL": "gpt-4o"
  }
}

That's it. uvx downloads and runs the package automatically.

How it works

┌─────────────┐     "ask James"     ┌─────────────┐
│   Claude    │ ──────────────────► │  ask-james  │
│   / Kiro    │                     │ (MCP server)│
│   / Cursor  │ ◄────────────────── │             │
└─────────────┘    critique back    └──────┬──────┘
                                           │
                                           ▼
                                    ┌─────────────┐
                                    │  Any LLM    │
                                    │ (via LiteLLM)│
                                    └─────────────┘
  • Your assistant sends the proposal to James via MCP
  • James (powered by any LLM you choose) reviews it critically
  • You get structured feedback: concerns, positives, questions, next steps
  • James never rewrites — he only critiques

Pro tip: Use two different frontier models for best results. For example, Claude Opus 4.5 as your primary assistant with GPT-5.2 as James — or vice versa. Different models catch different blind spots.

Configuration

Variable Description
ASK_JAMES_MODEL Model to use (e.g., gpt-4o, claude-3-5-sonnet-20241022)
ASK_JAMES_API_KEY Your API key (works with any provider)

Ask James supports any model supported by LiteLLM — OpenAI, Anthropic, Google, Azure, Ollama, and 100+ others.

Or omit ASK_JAMES_API_KEY and set the provider's native variable (OPENAI_API_KEY, ANTHROPIC_API_KEY, etc.) — LiteLLM picks it up automatically.

When to use James

  • Implementation plans — Before blindly following an assistant's architecture
  • High-stakes changes — Deploys, refunds, irreversible operations
  • Decisions under uncertainty — When you want a dissenting view
  • Code review — Quick sanity check on proposed changes

Host configurations

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "ask-james": {
      "command": "uvx",
      "args": ["ask-james"],
      "env": {
        "ASK_JAMES_API_KEY": "your-api-key",
        "ASK_JAMES_MODEL": "gpt-4o"
      }
    }
  }
}

Kiro

Settings → MCP Tools:

{
  "id": "ask-james",
  "name": "Ask James",
  "command": "uvx",
  "args": ["ask-james"],
  "env": {
    "ASK_JAMES_API_KEY": "your-api-key",
    "ASK_JAMES_MODEL": "gpt-4o"
  }
}

Cursor / Windsurf

mcp-tools.json:

{
  "tools": [
    {
      "name": "Ask James",
      "command": "uvx",
      "args": ["ask-james"],
      "env": {
        "ASK_JAMES_API_KEY": "your-api-key",
        "ASK_JAMES_MODEL": "gpt-4o"
      }
    }
  ]
}

Prompting tips

Just tell your assistant to ask James:

  • "Ask James to critique this plan"
  • "Get a second opinion from James before we proceed"
  • "Have James review this code"

Development

pip install -e .
python -m ask_james  # manual stdio testing

License

MIT

Metadata

Release files for ask-james 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ask-james 0.1.1
File Size Uploaded
ask_james-0.1.1.tar.gz 6.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ask-james 0.1.1
File Interpreter ABI Platform
ask_james-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 12.7 kB

Release files / ask_james-0.1.1.tar.gz

Download URL ask_james-0.1.1.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e1f98cbdd404e3051521dcd3ac1c66377fff15a744b39d82d68e29ff22c006fd
BLAKE2b-256 checksum
How to use checksums
27aac523aef30d518a31f8e85c70ad427e71f5475496d9c355e632d786618a77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / ask_james-0.1.1-py3-none-any.whl

Download URL ask_james-0.1.1-py3-none-any.whl
Size 6.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
668b2ff5874c971a67572e82942893eb4c9c80d87f0e86893f3a0913891c13ab
BLAKE2b-256 checksum
How to use checksums
aeb6050643c0cd815369ede5e06a44c04ab80fc04a473525ec89de48de3a90c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page