0.6.0npm · decisionnode · latest release
Observed 2026-08-15T19:20:40.238Z using mcpSecurity-inventory. Protocol 2025-06-18.
| Tool | Category | Risk |
|---|---|---|
add_decision**Call this IMMEDIATELY** when user says phrases like: "Let's use...", "From now on...", "Always do...", "Never do...", "I prefer...", "The standard is...", "We should always...", or confirms ANY technical approach. Also call when: (1) A design pattern is established, (2) An architectural choice is made, (3) Coding standards are discussed, (4) UI/UX conventions are agreed, (5) Technology stack decisions happen. Capture decisions DURING the conversation, not after. Focus on WHY, not just WHAT.Input schema{
"type": "object",
"properties": {
"scope": {
"type": "string",
"description": "Category: UI, Backend, API, Architecture, Database, Security, Testing, DevOps, Styling, Performance"
},
"decision": {
"type": "string",
"description": "Clear statement of what was decided (be specific and actionable)"
},
"rationale": {
"type": "string",
"description": "Why this decision was made - this is crucial for future context"
},
"constraints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specific rules or requirements to follow"
},
"global": {
"type": "boolean",
"description": "Set to true to create a global decision that applies across ALL projects (e.g., \"always use TypeScript strict mode\", \"never commit .env files\")"
},
"force": {
"type": "boolean",
"description": "Set to true to skip conflict detection and add the decision even if similar ones exist. Use after reviewing the conflicts returned by a previous add_decision call."
},
"project": {
"type": "string",
"description": "The workspace folder name"
}
},
"required": [
"scope",
"decision",
"rationale",
"constraints",
"project"
]
} | — | — |
delete_decisionPermanently delete a decision. Only use when a decision was created in error. For outdated decisions, prefer update_decision with status=deprecated to preserve history.Input schema{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Decision ID to delete"
},
"project": {
"type": "string",
"description": "The workspace folder name"
}
},
"required": [
"id",
"project"
]
} | — | — |
get_decisionGet full details of a specific decision by ID. Use this after search_decisions returns relevant results to get complete context including rationale and constraints.Input schema{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Decision ID (e.g., ui-001)"
},
"project": {
"type": "string",
"description": "The workspace folder name"
}
},
"required": [
"id",
"project"
]
} | — | — |
get_historyView the activity log of recent decision changes. Use this to understand what decisions were recently added or modified.Input schema{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Number of entries (default: 10)"
},
"project": {
"type": "string",
"description": "The workspace folder name"
}
},
"required": [
"limit",
"project"
]
} | — | — |
get_statusGet project decision status overview including total count and last activity. Use this for a quick health check of the decision store.Input schema{
"type": "object",
"properties": {
"project": {
"type": "string",
"description": "The workspace folder name"
}
},
"required": [
"project"
]
} | — | — |
list_decisionsList all recorded decisions for the project. Use this when you need a complete overview of project conventions, or when starting work on a new feature area to understand existing patterns.Input schema{
"type": "object",
"properties": {
"scope": {
"type": "string",
"description": "Filter by scope (e.g., UI, Backend, API, Architecture)"
},
"project": {
"type": "string",
"description": "The workspace folder name"
}
},
"required": [
"project"
]
} | — | — |
list_projects**Call this FIRST if unsure which project to use.** In monorepos or multi-project workspaces, this lists all projects with decisions. Match the returned project name to the subfolder in the user's active file path. Example: if user is editing ".../my-app/src/component.tsx", look for project "my-app" in the results.Input schema{
"type": "object",
"properties": {
"verbose": {
"type": "boolean",
"description": "Include detailed statistics (default: false)"
}
}
} | — | — |
search_decisions**MANDATORY: Call this FIRST before ANY code changes.** When user asks you to: add a feature, modify code, fix a bug, implement something, refactor, style UI, or make ANY technical choice — you MUST call this tool FIRST to check for existing conventions. Skipping this causes inconsistency and wasted rework. Query with what you're about to work on: "button styling", "error handling", "API design", "authentication", "database schema", "component structure". If no decisions exist, proceed freely; if decisions exist, FOLLOW them.Input schema{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Natural language query describing what you are about to work on (e.g., \"button styling\", \"API error handling\", \"database connection\")"
},
"limit": {
"type": "number",
"description": "Maximum number of results (default: 3)"
},
"project": {
"type": "string",
"description": "REQUIRED: The project folder name. Extract this from the user's active file path (e.g., if path is \".../decisionnode-marketplace/src/...\", use \"decisionnode-marketplace\"). Call list_projects first if unsure."
}
},
"required": [
"query",
"project"
]
} | — | — |
update_decisionUpdate an existing decision when requirements change or the approach evolves. Use this instead of creating duplicate decisions.Input schema{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Decision ID to update"
},
"decision": {
"type": "string",
"description": "Updated decision text"
},
"rationale": {
"type": "string",
"description": "Updated rationale"
},
"status": {
"type": "string",
"enum": [
"active",
"deprecated"
],
"description": "Set to \"deprecated\" to hide from search (keeps for history), or \"active\" to re-enable. Only change when the user explicitly asks."
},
"constraints": {
"type": "array",
"items": {
"type": "string"
},
"description": "Updated list of constraints"
},
"project": {
"type": "string",
"description": "The workspace folder name"
}
},
"required": [
"id",
"decision",
"rationale",
"constraints",
"project"
]
} | — | — |
Compared with initial baseline using full_baseline.
| Risk | Change | Subject |
|---|---|---|
| No material changes recorded. | ||
| Severity | Finding | Advisory |
|---|---|---|
| No confirmed vulnerability is published for this version. | ||
Artifact SHA-256: 867a31e5d6d95340bd6527bdcefc71fefac6764d7e04744aff50d2bbec4a1aad
Scanner: mcp-proof-engine 0.1.0.