DecisionNode is a decision engine: send it text, JSON or images with a question, and it answers with calibrated probabilities.
The official Agent Skill and Claude Code plugin for DecisionNode: fast, calibrated yes-or-no, choice, score, number, point and box decisions for applications and agents. It teaches a coding agent to integrate DecisionNode well, and connects the DecisionNode docs MCP server so the agent can look up the current documentation while it works.
Works with Claude Code, Cursor, Codex, Copilot, Gemini CLI, OpenCode, Windsurf, Zed,
and every other agent the skills CLI supports.
Point any coding agent at agent-setup.md and it installs the
skill and connects the docs MCP server itself:
Follow https://github.com/Bynn-Intelligence/decision-node-skills/blob/main/agent-setup.md
It covers Claude Code, Cursor, VS Code, Windsurf, Zed, Claude Desktop, and headless or CI setups, and tells the agent what to verify before it reports success.
Any agent:
npx skills add Bynn-Intelligence/decision-node-skillsClaude Code, with the bundled docs MCP server:
/plugin marketplace add Bynn-Intelligence/decision-node-skills
/plugin install decisionnode@decisionnode
The code the agent writes reads one environment variable:
export DECISIONNODE_API_KEY=...Nothing in this repository ships or stores a key, and the docs MCP server needs none.
| Skill | Covers |
|---|---|
decisionnode |
Choosing truth, choice, score, number, point or box; writing the state and the questions; reading probabilities and confidence; several questions in one decide; decide_many, batches and sessions; images and videos; boosters and their evidence; knowledge bases (documents, pinned rules, scope keys, search) and the passages a decision cites; fine-tuned model names; errors and retries; the SDKs and the dn CLI. |
A taste of what the agent learns to write:
from decisionnode import DecisionNode, truth, choice, score
dn = DecisionNode() # reads DECISIONNODE_API_KEY
d = dn.decide(
state={"ticket": "I was charged twice and nobody has replied for 3 days."},
questions={
"route": choice("Where should this go?", {"billing": "money", "bug": "broken", "account": "login"}),
"urgency": score("How urgent is this?", ["routine", "today", "urgent", "critical"]),
"escalate": truth("Escalate to a human now?"),
},
)
d["route"].choice # "billing"
d["escalate"].truth # 0.94npx skills add copies skill files only. The Claude Code plugin registers the docs
server for you. Elsewhere, connect it yourself:
claude mcp add --transport http decisionnode-docs https://decisionnode.com/mcpNo key and no sign-in. Other clients are in agent-setup.md.
The server reads the documentation; it does not make decisions, which your code
makes through the API, an SDK or the dn CLI.
| Tool | Does |
|---|---|
search_docs |
Searches every page and heading of the docs |
read_doc |
Returns one page as Markdown |
| Setting | Environment variable | Default |
|---|---|---|
| API key | DECISIONNODE_API_KEY |
none |
| Base URL | DECISIONNODE_BASE_URL |
https://api.decisionnode.com |
| Model | DECISIONNODE_MODEL |
decisionnode-moe |
python3 hooks/validate_manifests.py
python3 hooks/check_versions.py
python3 hooks/check_skills.pyThe version in .claude-plugin/marketplace.json, the plugin's plugin.json, the
skill's front matter and server.json must agree; bump them together.
https://decisionnode.com/docs
MIT. See LICENSE.