Decision Engine Logo

Decision Engine — MCP Server

Use the Decision Engine inside any Model Context Protocol client — claude.ai, Claude Desktop, Cursor, or your own LLM app.

What you get: a single tool, decide, that takes a problem plus 2+ candidate options and returns a recommendation grounded in mental models from a curated library (Thinking Fast and Slow, Decisive, Algorithms to Live By, Nudge, Principles, and more). Same pipeline that powers this site's web UI.

Quick start

Server URL
https://decisiontaker.vercel.app/api/mcp/mcp
Bearer token
de67c41b12039f05b60d998584493757ab836c50e44e94b56870887a3f2814e7
Single URL with the key embedded (for clients that don't expose a header field, like claude.ai)
https://decisiontaker.vercel.app/api/mcp/mcp?key=de67c41b12039f05b60d998584493757ab836c50e44e94b56870887a3f2814e7

This is a shared, free demo deployment — please use it responsibly. For unconstrained use, see self-hosting.

Endpoint & auth

The remote server speaks Streamable HTTP (current MCP spec):

POST https://decisiontaker.vercel.app/api/mcp/mcp

Pass the bearer token either as an HTTP header (preferred) or as a query parameter (used by clients like claude.ai whose UI doesn't expose a header field):

# Header (curl, mcp-remote, programmatic clients)
Authorization: Bearer de67c41b12039f05b60d998584493757ab836c50e44e94b56870887a3f2814e7

# OR — query param (claude.ai custom connectors)
https://decisiontaker.vercel.app/api/mcp/mcp?key=de67c41b12039f05b60d998584493757ab836c50e44e94b56870887a3f2814e7

Tool: decide

Input schema:

{
  "problem":  string,         // the decision in plain English
  "options":  string[],       // 2 or more candidate options
  "context":  string?         // optional extra context
}

Output (markdown text + structuredContent):

{
  "recommendation":      string,  // the picked option
  "short_reason":        string,  // ≤2 sentences
  "detailed_reasoning":  string   // ≥150 words, cites mental models from the library
}

Use it from claude.ai

On a Pro / Max / Team / Enterprise plan, go to Settings → Connectors → Add custom connector and paste:

  • Name: Decision Engine
  • Remote MCP server URL:
    https://decisiontaker.vercel.app/api/mcp/mcp?key=de67c41b12039f05b60d998584493757ab836c50e44e94b56870887a3f2814e7
  • Leave the OAuth advanced fields blank.

Then enable the Decision Engine toggle in any chat's tool/connector panel and ask Claude a decision question — e.g. "Use the decide tool: should I take the Seattle job or stay in Boston?"

Use it from Claude Desktop

Claude Desktop only speaks stdio. Bridge it to the remote endpoint with mcp-remote. Open ~/Library/Application Support/Claude/claude_desktop_config.json and add:

{
  "mcpServers": {
    "decision-engine": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://decisiontaker.vercel.app/api/mcp/mcp",
        "--header",
        "Authorization: Bearer de67c41b12039f05b60d998584493757ab836c50e44e94b56870887a3f2814e7"
      ]
    }
  }
}

Restart Claude Desktop. The decide tool becomes available in every chat.

Use it from Cursor / other MCP-aware editors

Cursor accepts the same JSON shape as Claude Desktop. In Cursor settings, find the MCP servers config and add the same entry as above. Other editors (Cline, Continue, Zed's MCP support, etc.) follow the same pattern: stdio command + args + header for auth.

Use it programmatically

Any code that speaks MCP can call the server directly. With the official TypeScript SDK:

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from
  "@modelcontextprotocol/sdk/client/streamableHttp.js";

const transport = new StreamableHTTPClientTransport(
  new URL("https://decisiontaker.vercel.app/api/mcp/mcp"),
  {
    requestInit: {
      headers: { Authorization: "Bearer de67c41b12039f05b60d998584493757ab836c50e44e94b56870887a3f2814e7" },
    },
  }
);

const client = new Client({ name: "my-app", version: "0.0.1" });
await client.connect(transport);

const result = await client.callTool({
  name: "decide",
  arguments: {
    problem: "Pick a database for a 50K-user SaaS",
    options: ["Postgres", "DynamoDB", "MongoDB"],
  },
});
console.log(result.structuredContent);

If you'd rather skip the MCP layer entirely, the underlying REST endpoint is still public:

POST https://decisiontaker.vercel.app/api/decide
Content-Type: application/json

{
  "problem": "...",
  "options": ["Option A", "Option B"]
}

Returns the same three fields directly as JSON, no auth required (rate limiting is on the roadmap).

Self-hosting (for unconstrained use)

The whole stack — Next.js app, MCP server (stdio + HTTP), pgvector schema, ingestion script — is open source. To run your own with your own quotas:

  1. Fork github.com/avishekbasumallick/decisiontaker
  2. Provision Supabase + grab a Voyage AI key + a Groq key (all have free tiers).
  3. Drop your own books into books/ and run pnpm ingest.
  4. Deploy to Vercel; set MCP_API_KEY in env vars.

See mcp-server/README.md for the detailed setup.