Decision Log

Append-only decisions with provenance, supersession, retrieval, and audited MCP actions.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
91%
Naming quality
69%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (18)

  • LOWTool 'decision_log_render_workspace_brief' description lacks action verbin decision_log_render_workspace_brief
  • LOWTool 'decision_log_supersede_decision' name length outside 3-30 rangein decision_log_supersede_decision
  • LOWTool 'decision_log_approve_decision_action' name length outside 3-30 rangein decision_log_approve_decision_action
  • LOWTool 'decision_log_get_decision_governance' name length outside 3-30 rangein decision_log_get_decision_governance
  • LOWTool 'decision_log_list_recent_decisions' name length outside 3-30 rangein decision_log_list_recent_decisions
  • LOWTool 'decision_log_get_source_decisions' name length outside 3-30 rangein decision_log_get_source_decisions
  • LOWTool 'decision_log_convert_candidate_to_supersession' name length outside 3-30 rangein decision_log_convert_candidate_to_supersession
  • LOWTool 'decision_log_get_current_decision' name length outside 3-30 rangein decision_log_get_current_decision
  • LOWTool 'decision_log_get_supersession_history' name length outside 3-30 rangein decision_log_get_supersession_history
  • LOWTool 'decision_log_get_decision_sources' name length outside 3-30 rangein decision_log_get_decision_sources

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~7,040Tokens (tool definitions)
~2.4 KBTypical response size
Significant attention impact (5.50% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "url": "https://www.decisionlog.ai/api/mcp"
    }
  }
}

Remote endpoints

https://www.decisionlog.ai/api/mcpstreamable-http

What it can do

Tool inventory

Tools (30)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡decision_log_create_decision(title, summary, decisionText, rationale, decisionType, ...)

Create an immutable Decision when permitted, otherwise create a reviewable DecisionCandidate.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Concise direct-action title without speaker wrappers or ellipses."
    },
    "summary": {
      "type": "string",
      "description": "Optional summary."
    },
    "decisionText": {
      "type": "string",
      "description": "The immutable meaning of the decision."
    },
    "rationale": {
      "type": "string",
      "description": "Why the decision was made."
    },
    "decisionType": {
      "type": "string",
      "enum": [
        "policy",
        "technical",
        "product",
        "vendor",
        "security",
        "financial",
        "legal",
        "operational",
        "architecture",
        "process",
        "personnel",
        "other"
      ]
    },
    "sourceIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "metadata": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "title",
    "decisionText",
    "rationale",
    "decisionType"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_search_decisions(query, status, decisionType, decisionKey, projectId, ...)

Search decisions in the authenticated workspace.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search text."
    },
    "status": {
      "type": "string",
      "description": "Optional Decision status filter."
    },
    "decisionType": {
      "type": "string",
      "description": "Optional Decision type filter."
    },
    "decisionKey": {
      "type": "string",
      "description": "Optional stable Decision key filter."
    },
    "projectId": {
      "description": "Optional Project identifier filter.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "tag": {
      "type": "string",
      "description": "Optional Tag slug filter."
    },
    "domain": {
      "type": "string",
      "description": "Optional Domain slug filter."
    },
    "includeSuperseded": {
      "type": "boolean",
      "default": false
    },
    "currentOnly": {
      "type": "boolean"
    },
    "sort": {
      "type": "string",
      "enum": [
        "newest",
        "oldest",
        "title"
      ],
      "default": "newest"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "description": "Decisions matched by the current page and filters.",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "totalCount": {
          "type": "integer",
          "minimum": 0,
          "description": "Exact number of matching Decisions across all pages."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "offset": {
          "type": "integer",
          "minimum": 0
        },
        "hasNext": {
          "type": "boolean",
          "description": "Whether another page exists after this page."
        }
      },
      "required": [
        "results",
        "totalCount",
        "limit",
        "offset",
        "hasNext"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_get_decision(decisionId)

Retrieve one decision by ID.

Input Schema

{
  "type": "object",
  "properties": {
    "decisionId": {
      "type": "string",
      "description": "Decision identifier.",
      "format": "uuid"
    }
  },
  "required": [
    "decisionId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🔴decision_log_supersede_decision(decisionId, title, summary, decisionText, rationale, ...)

Create a replacement Decision and supersession relationship for an existing Decision.

Input Schema

{
  "type": "object",
  "properties": {
    "decisionId": {
      "type": "string",
      "description": "Decision being superseded.",
      "format": "uuid"
    },
    "title": {
      "type": "string",
      "description": "Concise direct-action title without speaker wrappers or ellipses."
    },
    "summary": {
      "type": "string",
      "description": "Optional summary."
    },
    "decisionText": {
      "type": "string",
      "description": "The immutable meaning of the decision."
    },
    "rationale": {
      "type": "string",
      "description": "Why the decision was made."
    },
    "decisionType": {
      "type": "string",
      "enum": [
        "policy",
        "technical",
        "product",
        "vendor",
        "security",
        "financial",
        "legal",
        "operational",
        "architecture",
        "process",
        "personnel",
        "other"
      ]
    },
    "sourceIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "metadata": {
      "type": "object",
      "additionalProperties": true
    },
    "reason": {
      "type": "string",
      "description": "Reason for supersession."
    }
  },
  "required": [
    "decisionId",
    "title",
    "decisionText",
    "rationale",
    "decisionType",
    "reason"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🔴decision_log_lock_decision(decisionId, rationale, sourceIds)

Irreversibly prevent a current Decision from ever being superseded; may create an approval request.

Input Schema

{
  "type": "object",
  "properties": {
    "decisionId": {
      "type": "string",
      "description": "Decision to lock.",
      "format": "uuid"
    },
    "rationale": {
      "type": "string",
      "description": "Why permanent finality is required."
    },
    "sourceIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    }
  },
  "required": [
    "decisionId",
    "rationale"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
⚪decision_log_approve_decision_action(approvalRequestId, approvalGroupId, decision, comment)

Record one immutable approval or rejection attestation.

Input Schema

{
  "type": "object",
  "properties": {
    "approvalRequestId": {
      "type": "string",
      "description": "Approval request identifier.",
      "format": "uuid"
    },
    "approvalGroupId": {
      "type": "string",
      "description": "Approval group identifier."
    },
    "decision": {
      "type": "string",
      "enum": [
        "approve",
        "reject"
      ]
    },
    "comment": {
      "type": "string",
      "description": "Optional approval comment."
    }
  },
  "required": [
    "approvalRequestId",
    "approvalGroupId",
    "decision"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_get_decision_governance(decisionId)

Retrieve lock, authority snapshot, and approval state for a Decision.

Input Schema

{
  "type": "object",
  "properties": {
    "decisionId": {
      "type": "string",
      "description": "Decision identifier.",
      "format": "uuid"
    }
  },
  "required": [
    "decisionId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_list_recent_decisions(limit)

List the most recent decisions in the authenticated workspace.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 10
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟡decision_log_submit_source(title, contentText, contentBlobUrl, externalId, externalUrl, ...)

Submit source content for ingestion and later provenance links.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Optional source title."
    },
    "contentText": {
      "type": "string",
      "description": "Inline source text."
    },
    "contentBlobUrl": {
      "type": "string",
      "format": "uri"
    },
    "externalId": {
      "type": "string",
      "description": "External provider identifier."
    },
    "externalUrl": {
      "type": "string",
      "format": "uri"
    },
    "sourceType": {
      "type": "string",
      "description": "Source type; defaults to mcp."
    },
    "metadata": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_list_sources(query, sourceType, retentionState, sort, limit, ...)

List visible SourceContent using bounded excerpts and canonical retention redaction.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional title, content, or external identifier search."
    },
    "sourceType": {
      "type": "string",
      "description": "Optional exact source type."
    },
    "retentionState": {
      "type": "string",
      "description": "Optional exact retention lifecycle state."
    },
    "sort": {
      "type": "string",
      "enum": [
        "newest",
        "oldest",
        "title"
      ],
      "default": "newest"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "type": "array",
      "description": "Visible SourceContent summaries with bounded excerpts and retention redaction applied.",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "SourceContent identifier.",
            "format": "uuid"
          },
          "sourceType": {
            "type": "string",
            "description": "Source type."
          },
          "title": {
            "description": "Source title, or null when retention policy hides it.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "contentExcerpt": {
            "description": "Bounded source excerpt, or null when unavailable or hidden.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "retentionState": {
            "type": "string",
            "description": "Source retention lifecycle state."
          },
          "createdAt": {
            "type": "string",
            "description": "Source creation timestamp."
          },
          "submittedByActorId": {
            "type": "string",
            "description": "Submitting Actor identifier.",
            "format": "uuid"
          },
          "externalId": {
            "description": "Provider source identifier.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "externalUrl": {
            "description": "Provider source URL.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "integrationId": {
            "description": "Integration identifier.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "sourceType",
          "title",
          "contentExcerpt",
          "retentionState",
          "createdAt",
          "submittedByActorId",
          "externalId",
          "externalUrl",
          "integrationId"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_get_source(sourceId)

Retrieve one visible SourceContent detail projection. Redacted, purged, and unknown retention states never return stored title, content, blob URL, or metadata.

Input Schema

{
  "type": "object",
  "properties": {
    "sourceId": {
      "type": "string",
      "description": "SourceContent identifier.",
      "format": "uuid"
    }
  },
  "required": [
    "sourceId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "SourceContent identifier.",
          "format": "uuid"
        },
        "organizationId": {
          "type": "string",
          "description": "Owning Organization identifier.",
          "format": "uuid"
        },
        "workspaceId": {
          "description": "Owning Workspace identifier.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "sourceType": {
          "type": "string",
          "description": "Source type."
        },
        "title": {
          "description": "Source title, or null when retention policy hides it.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "contentText": {
          "description": "Retained source text, or null when absent or retention-hidden.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "contentBlobUrl": {
          "description": "Retained source blob URL, or null when absent or retention-hidden.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "externalId": {
          "description": "Provider source identifier.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "externalUrl": {
          "description": "Provider source URL.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "externalCreatedAt": {
          "description": "Provider creation timestamp.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "externalUpdatedAt": {
          "description": "Provider update timestamp.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "submittedByActorId": {
          "type": "string",
          "description": "Submitting Actor identifier.",
          "format": "uuid"
        },
        "integrationId": {
          "description": "Integration identifier.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "retentionState": {
          "type": "string",
          "description": "Source retention lifecycle state."
        },
        "metadata": {
          "description": "Retained source metadata, or null when absent or retention-hidden.",
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ]
        },
        "createdAt": {
          "type": "string",
          "description": "Source creation timestamp."
        },
        "updatedAt": {
          "type": "string",
          "description": "Source update timestamp."
        },
        "archivedAt": {
          "description": "Source archive timestamp.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "organizationId",
        "workspaceId",
        "sourceType",
        "title",
        "contentText",
        "contentBlobUrl",
        "externalId",
        "externalUrl",
        "externalCreatedAt",
        "externalUpdatedAt",
        "submittedByActorId",
        "integrationId",
        "retentionState",
        "metadata",
        "createdAt",
        "updatedAt",
        "archivedAt"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_get_source_decisions(sourceId)

Retrieve visible DecisionSource links for one SourceContent record with each linked Decision's lifecycle, authoritative current-state, and supersession identity.

Input Schema

{
  "type": "object",
  "properties": {
    "sourceId": {
      "type": "string",
      "description": "SourceContent identifier.",
      "format": "uuid"
    }
  },
  "required": [
    "sourceId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "type": "array",
      "description": "Visible DecisionSource links for one SourceContent record, paired with the minimal Decision lifecycle projection.",
      "items": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "DecisionSource identifier.",
                "format": "uuid"
              },
              "decisionId": {
                "type": "string",
                "description": "Linked Decision identifier.",
                "format": "uuid"
              },
              "sourceContentId": {
                "type": "string",
                "description": "Linked SourceContent identifier.",
                "format": "uuid"
              },
              "relationshipType": {
                "type": "string",
                "description": "Provenance relationship type."
              },
              "createdAt": {
                "type": "string",
                "description": "Timestamp when the source was linked."
              }
            },
            "required": [
              "id",
              "decisionId",
              "sourceContentId",
              "relationshipType",
              "createdAt"
            ],
            "additionalProperties": false
          },
          "decision": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Decision identifier.",
                "format": "uuid"
              },
              "decisionKey": {
                "description": "Stable Decision key, or null when no key was recorded.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "title": {
                "type": "string",
                "description": "Decision title."
              },
              "decisionType": {
                "type": "string",
                "description": "Decision type."
              },
              "status": {
                "type": "string",
                "description": "Decision lifecycle status. Use isCurrent for the authoritative current-state signal."
              },
              "isCurrent": {
                "type": "boolean",
                "description": "Whether this is the authoritative current Decision after lifecycle and supersession evaluation."
              },
              "effectiveAt": {
                "description": "Decision effective timestamp, or null when unspecified.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "decidedAt": {
                "type": "string",
                "description": "Timestamp when the Decision was decided."
              },
              "recordedAt": {
                "type": "string",
                "description": "Timestamp when the Decision was recorded."
              },
              "supersededByDecisionId": {
                "description": "Replacement Decision identifier, or null when this Decision has no recorded replacement.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "archivedAt": {
                "description": "Decision archive timestamp, or null when not archived.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "retractedAt": {
                "description": "Decision retraction timestamp, or null when not retracted.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "decisionKey",
              "title",
              "decisionType",
              "status",
              "isCurrent",
              "effectiveAt",
              "decidedAt",
              "recordedAt",
              "supersededByDecisionId",
              "archivedAt",
              "retractedAt"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "link",
          "decision"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_list_candidates(query, status, decisionType, sort, limit, ...)

List reviewable DecisionCandidates visible in the current Organization and Workspace before taking a resolution action.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional title, summary, decision text, or rationale search."
    },
    "status": {
      "type": "string",
      "description": "Optional exact candidate review status."
    },
    "decisionType": {
      "type": "string",
      "description": "Optional exact decision type."
    },
    "sort": {
      "type": "string",
      "enum": [
        "newest",
        "oldest",
        "confidence"
      ],
      "default": "newest"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "type": "array",
      "description": "Visible DecisionCandidates in the current Organization and Workspace.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_get_candidate(candidateId)

Get the complete visible review context for one DecisionCandidate before approving, rejecting, or converting it.

Input Schema

{
  "type": "object",
  "properties": {
    "candidateId": {
      "type": "string",
      "description": "DecisionCandidate identifier.",
      "format": "uuid"
    }
  },
  "required": [
    "candidateId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "description": "The complete visible DecisionCandidate review model, including classification, alternatives, criteria, and source identifiers.",
      "additionalProperties": true
    }
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟡decision_log_create_candidate(title, summary, decisionText, rationale, decisionType, ...)

Create a reviewable DecisionCandidate.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Concise direct-action title without speaker wrappers or ellipses."
    },
    "summary": {
      "type": "string",
      "description": "Optional summary."
    },
    "decisionText": {
      "type": "string",
      "description": "The immutable meaning of the decision."
    },
    "rationale": {
      "type": "string",
      "description": "Why the decision was made."
    },
    "decisionType": {
      "type": "string",
      "enum": [
        "policy",
        "technical",
        "product",
        "vendor",
        "security",
        "financial",
        "legal",
        "operational",
        "architecture",
        "process",
        "personnel",
        "other"
      ]
    },
    "sourceIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "metadata": {
      "type": "object",
      "additionalProperties": true
    },
    "confidence": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    }
  },
  "required": [
    "title",
    "decisionText",
    "rationale",
    "decisionType"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🔴decision_log_resolve_candidate(candidateId, resolution, reason, title, summary, ...)

Approve or reject a pending DecisionCandidate.

Input Schema

{
  "type": "object",
  "properties": {
    "candidateId": {
      "type": "string",
      "description": "Candidate identifier.",
      "format": "uuid"
    },
    "resolution": {
      "type": "string",
      "enum": [
        "approve",
        "reject"
      ]
    },
    "reason": {
      "type": "string",
      "description": "Optional rejection reason."
    },
    "title": {
      "type": "string",
      "description": "Concise direct-action title without speaker wrappers or ellipses."
    },
    "summary": {
      "type": "string",
      "description": "Optional summary."
    },
    "decisionText": {
      "type": "string",
      "description": "The immutable meaning of the decision."
    },
    "rationale": {
      "type": "string",
      "description": "Why the decision was made."
    },
    "decisionType": {
      "type": "string",
      "enum": [
        "policy",
        "technical",
        "product",
        "vendor",
        "security",
        "financial",
        "legal",
        "operational",
        "architecture",
        "process",
        "personnel",
        "other"
      ]
    },
    "sourceIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "metadata": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "required": [
    "candidateId",
    "resolution"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🔴decision_log_convert_candidate_to_supersession(candidateId, replacesDecisionId, reason)

Approve a pending DecisionCandidate as the immutable replacement for one current Decision, preserving provenance and supersession history.

Input Schema

{
  "type": "object",
  "properties": {
    "candidateId": {
      "type": "string",
      "description": "Pending DecisionCandidate identifier.",
      "format": "uuid"
    },
    "replacesDecisionId": {
      "type": "string",
      "description": "Current Decision identifier that the candidate replaces.",
      "format": "uuid"
    },
    "reason": {
      "type": "string",
      "description": "Optional reason for the supersession."
    }
  },
  "required": [
    "candidateId",
    "replacesDecisionId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_get_current_decision(domain)

Get the newest active decision in a domain.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain slug."
    }
  },
  "required": [
    "domain"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_get_supersession_history(decisionId)

Retrieve the complete visible Decision supersession chain in oldest-to-newest order. Malformed chains fail closed and never claim a current Decision.

Input Schema

{
  "type": "object",
  "properties": {
    "decisionId": {
      "type": "string",
      "description": "Decision identifier from any point in the chain.",
      "format": "uuid"
    }
  },
  "required": [
    "decisionId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "type": "object",
      "properties": {
        "requestedDecisionId": {
          "type": "string",
          "description": "Decision identifier used to start traversal.",
          "format": "uuid"
        },
        "status": {
          "type": "string",
          "enum": [
            "resolved",
            "not_found",
            "cycle_detected",
            "depth_exceeded",
            "ambiguous",
            "broken_chain"
          ]
        },
        "chain": {
          "type": "array",
          "description": "Visible Decisions ordered oldest to newest.",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "relationships": {
          "type": "array",
          "description": "Visible DecisionSupersession relationships in chain order.",
          "items": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "currentDecision": {
          "description": "Canonical current Decision when status is resolved; otherwise null.",
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ]
        },
        "cycleDetected": {
          "type": "boolean"
        },
        "depthExceeded": {
          "type": "boolean"
        },
        "ambiguous": {
          "type": "boolean"
        },
        "maxDepth": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "requestedDecisionId",
        "status",
        "chain",
        "relationships",
        "currentDecision",
        "cycleDetected",
        "depthExceeded",
        "ambiguous",
        "maxDepth"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_get_decision_sources(decisionId)

Retrieve retention-safe provenance links for one visible Decision, including relationship, source lifecycle, and submitter metadata.

Input Schema

{
  "type": "object",
  "properties": {
    "decisionId": {
      "type": "string",
      "description": "Decision identifier.",
      "format": "uuid"
    }
  },
  "required": [
    "decisionId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "DecisionSource identifier.",
                "format": "uuid"
              },
              "decisionId": {
                "type": "string",
                "description": "Linked Decision identifier.",
                "format": "uuid"
              },
              "sourceContentId": {
                "type": "string",
                "description": "Linked SourceContent identifier.",
                "format": "uuid"
              },
              "relationshipType": {
                "type": "string",
                "description": "Provenance relationship type."
              },
              "createdAt": {
                "type": "string",
                "description": "Timestamp when the source was linked."
              }
            },
            "required": [
              "id",
              "decisionId",
              "sourceContentId",
              "relationshipType",
              "createdAt"
            ],
            "additionalProperties": false
          },
          "source": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "SourceContent identifier.",
                "format": "uuid"
              },
              "sourceType": {
                "type": "string",
                "description": "Source type."
              },
              "title": {
                "description": "Source title, or null when retention policy hides it.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "contentExcerpt": {
                "description": "Bounded source excerpt, or null when unavailable or hidden.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "retentionState": {
                "type": "string",
                "description": "Source retention lifecycle state."
              },
              "createdAt": {
                "type": "string",
                "description": "Source creation timestamp."
              },
              "submittedByActorId": {
                "type": "string",
                "description": "Submitting Actor identifier.",
                "format": "uuid"
              },
              "externalId": {
                "description": "Provider source identifier.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "externalUrl": {
                "description": "Provider source URL.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "integrationId": {
                "description": "Integration identifier.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "sourceType",
              "title",
              "contentExcerpt",
              "retentionState",
              "createdAt",
              "submittedByActorId",
              "externalId",
              "externalUrl",
              "integrationId"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "link",
          "source"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_list_audit_events(query, action, resourceType, actorType, sort, ...)

List the visible append-only audit events for the current Organization using the canonical permission-aware, attribution-safe projection.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional actor, action, resource, or identifier search."
    },
    "action": {
      "type": "string",
      "description": "Optional exact AuditEvent action."
    },
    "resourceType": {
      "type": "string",
      "description": "Optional exact resource type."
    },
    "actorType": {
      "type": "string",
      "description": "Optional exact actor type."
    },
    "sort": {
      "type": "string",
      "enum": [
        "newest",
        "oldest"
      ],
      "default": "newest"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_list_decisions_by_tag(tag)

List decisions related to an exact tag slug.

Input Schema

{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string",
      "description": "Tag slug."
    }
  },
  "required": [
    "tag"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_list_decisions_by_domain(domain)

List decisions related to an exact domain slug.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain slug."
    }
  },
  "required": [
    "domain"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {}
  },
  "required": [
    "result"
  ],
  "additionalProperties": false
}
🟢decision_log_render_decision(decisionId)

Use this when the user wants to inspect one known Decision in a visual card. Call a data retrieval tool first when the Decision ID is unknown.

Input Schema

{
  "type": "object",
  "properties": {
    "decisionId": {
      "type": "string",
      "description": "Decision identifier returned by a retrieval tool.",
      "format": "uuid"
    }
  },
  "required": [
    "decisionId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "decision": {}
  },
  "required": [
    "decision"
  ],
  "additionalProperties": false
}
🟢decision_log_render_workspace_brief

Use this when the user wants a visual briefing of recent decisions, pending candidates, and source activity.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "surface": {
      "type": "string",
      "description": "Workflow surface."
    },
    "decisions": {},
    "candidates": {},
    "sources": {},
    "actors": {}
  },
  "required": [
    "surface",
    "decisions",
    "candidates",
    "sources"
  ],
  "additionalProperties": false
}
🟢decision_log_render_decision_explorer(decisionId)

Use this when the user wants to browse the five most recent Decisions and optionally inspect one in detail.

Input Schema

{
  "type": "object",
  "properties": {
    "decisionId": {
      "type": "string",
      "description": "Optional Decision identifier to open immediately.",
      "format": "uuid"
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "surface": {
      "type": "string",
      "description": "Workflow surface."
    },
    "decisions": {},
    "selected": {},
    "actors": {}
  },
  "required": [
    "surface",
    "decisions"
  ],
  "additionalProperties": false
}
🟢decision_log_render_candidate_review(candidateId)

Use this when the user wants to inspect and disposition one known DecisionCandidate in a visual review workbench.

Input Schema

{
  "type": "object",
  "properties": {
    "candidateId": {
      "type": "string",
      "description": "DecisionCandidate identifier.",
      "format": "uuid"
    }
  },
  "required": [
    "candidateId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "surface": {
      "type": "string",
      "description": "Workflow surface."
    },
    "candidate": {},
    "actors": {}
  },
  "required": [
    "surface",
    "candidate"
  ],
  "additionalProperties": false
}
🟢decision_log_render_supersession_composer(decisionId, title, summary, decisionText, rationale, ...)

Use this when the user has a known active Decision and complete replacement meaning to review before supersession.

Input Schema

{
  "type": "object",
  "properties": {
    "decisionId": {
      "type": "string",
      "description": "Decision being superseded.",
      "format": "uuid"
    },
    "title": {
      "type": "string",
      "description": "Concise direct-action title without speaker wrappers or ellipses."
    },
    "summary": {
      "type": "string",
      "description": "Optional summary."
    },
    "decisionText": {
      "type": "string",
      "description": "The immutable meaning of the decision."
    },
    "rationale": {
      "type": "string",
      "description": "Why the decision was made."
    },
    "decisionType": {
      "type": "string",
      "enum": [
        "policy",
        "technical",
        "product",
        "vendor",
        "security",
        "financial",
        "legal",
        "operational",
        "architecture",
        "process",
        "personnel",
        "other"
      ]
    },
    "sourceIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "metadata": {
      "type": "object",
      "additionalProperties": true
    },
    "reason": {
      "type": "string",
      "description": "Reason for supersession."
    }
  },
  "required": [
    "decisionId",
    "title",
    "decisionText",
    "rationale",
    "decisionType",
    "reason"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "surface": {
      "type": "string",
      "description": "Workflow surface."
    },
    "current": {},
    "replacement": {},
    "reason": {
      "type": "string",
      "description": "Reason for supersession."
    },
    "actors": {}
  },
  "required": [
    "surface",
    "current",
    "replacement",
    "reason"
  ],
  "additionalProperties": false
}
🟢decision_log_render_source_pipeline(sourceId)

Use this when the user wants to inspect one known source, its provenance lifecycle, and extracted candidates.

Input Schema

{
  "type": "object",
  "properties": {
    "sourceId": {
      "type": "string",
      "description": "DecisionSource identifier.",
      "format": "uuid"
    }
  },
  "required": [
    "sourceId"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "surface": {
      "type": "string",
      "description": "Workflow surface."
    },
    "source": {},
    "candidates": {},
    "actors": {}
  },
  "required": [
    "surface",
    "source",
    "candidates"
  ],
  "additionalProperties": false
}
🟢decision_log_render_audit_explorer(query, limit)

Use this when the user wants to visually inspect attributable, append-only audit events with filtering and pagination.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional audit event filter."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 25
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "surface": {
      "type": "string",
      "description": "Workflow surface."
    },
    "events": {},
    "actors": {}
  },
  "required": [
    "surface",
    "events"
  ],
  "additionalProperties": false
}

Recommended Prompts

search_research
Search for information about [topic] using Decision Log
Expected tools: decision_log_search_decisions
find_specific
Find [specific item] using Decision Log
Expected tools: decision_log_search_decisions
retrieve_data
Get details about [item] from Decision Log
Expected tools: decision_log_get_decision
fetch_info
Fetch [information type] using Decision Log
Expected tools: decision_log_get_decision
list_items
List all [items] available in Decision Log
Expected tools: decision_log_list_recent_decisions

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded30 tools
verifiedversion not recorded30 tools