Decision Anchor
by decision-anchor.com · remote · no sign-in to list tools · v1.3.42 · published by com.decision-anchor
External anchoring layer: records AI agent accountability boundaries on both sides. Content-blind.
30 tools: 12 can delete or cancel things, 1 do something that can't be undone, 6 change things and 11 only read.
Scanned Oct 21, 2026
- Deletes or cancels12Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things6Claude Code: ask: see these tools
- Only reads11Claude Code: allow: see these tools
5 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http da https://mcp.decision-anchor.com/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "get_agent_profile" destructive (destructiveHint: true), and its name says "get", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true}; The name "get_agent_profile" says "get": a word for reading.
- Warnget_decision
The server marks "get_decision" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false}; The name "get_decision" says "get": a word for reading.
- Warncompare_anomaly
The server marks "compare_anomaly" destructive (destructiveHint: true), and its name says "compare", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true}; The name "compare_anomaly" says "compare": a word for reading.
The server marks "get_evidence_report" destructive (destructiveHint: true), and its name says "get", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true}; The name "get_evidence_report" says "get": a word for reading.
The server marks "get_environment_anomaly" destructive (destructiveHint: true), and its name says "get", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true}; The name "get_environment_anomaly" says "get": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
30 tools
Deletes or cancels 12Claude Code: deny
compare_anomalyCompare one of your decisions against your accumulated pattern.1 finding
Why it is in this group
- The name "compare_anomaly" says "compare": a word for reading.
- The server marks it destructive (destructiveHint: true).
Findings
- Warn
The server marks "compare_anomaly" destructive (destructiveHint: true), and its name says "compare", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true}; The name "compare_anomaly" says "compare": a word for reading.
Description, as the server wrote it Compare one of your decisions against your accumulated pattern. Returns band_position (within_band/outlier) for 5 dimensions: decision_scale, decision_class, target_class, time_zone, ee_resolution. Costs DAC.
Annotations the server declares
- title: Compare Decision Against Pattern
- readOnlyHint: false
- destructiveHint: true
confirm_decisionUse after create_decision to settle the anchored boundary as an external record.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use after create_decision to settle the anchored boundary as an external record. Once confirmed, the agreed scope is fixed outside both parties' own logs. Confirm a pending decision: marks the anchored declaration as settled. The integrity hash and timestamp are created at declaration time (create_decision); confirm requires only the dd_id. Call this after the action described in the DD has been executed.
Annotations the server declares
- title: Confirm Decision Record
- readOnlyHint: false
- destructiveHint: true
create_decisionUse when an action crosses an external boundary: payment, delegation, or agreement with another agent.No findings
Why it is in this group
- The name "create_decision" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use when an action crosses an external boundary: payment, delegation, or agreement with another agent. This anchors the responsibility scope. You say when: before you execute, or after a decision you have already made. Record a tamper-evident decision. This route records self-declared decisions; a declaration that involves a counterparty is made with propose_bilateral instead. Each decision is added to your record trajectory, which you and a counterparty can check against DA's external entry. Omitting the EE axes applies the defaults (medium/basic/internal/standard), equivalent to the EE_standard preset. The cost is a base fee plus additions for the selected EE axis values and options, all taken from the current pricing settings; the amount charged is returned in the response as dac_amount, itemized in cost_breakdown.
Annotations the server declares
- title: Create Decision Record
- readOnlyHint: false
- destructiveHint: true
end_sdac_sessionEnd a simulation session and settle its accumulated cost.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it End a simulation session and settle its accumulated cost. Call this when you are done. Until the session is closed, create_sdac_session returns 409 SESSION_EXISTS.
Annotations the server declares
- title: End Simulation Session
- readOnlyHint: false
- destructiveHint: true
exit_ise_sessionEnd your active ISE session and settle it.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it End your active ISE session and settle it. Call this when you are done. Until the session is closed, create_ise_session returns 409 SESSION_EXISTS.
Annotations the server declares
- title: End ISE Session
- readOnlyHint: false
- destructiveHint: true
get_agent_profileView an agent's decision profile: their trajectory shape, EE patterns, and activity summary as observed through ARA.1 finding
Why it is in this group
- The name "get_agent_profile" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
Findings
- Warn
The server marks "get_agent_profile" destructive (destructiveHint: true), and its name says "get", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true}; The name "get_agent_profile" says "get": a word for reading.
Description, as the server wrote it View an agent's decision profile: their trajectory shape, EE patterns, and activity summary as observed through ARA. Observing another agent is paid via x402 (Trial does not cover ARA observation); observing your own agent_id is free.
Annotations the server declares
- title: Get Agent Profile
- readOnlyHint: false
- destructiveHint: true
get_environment_anomalyObserve environment-level anomaly distribution: within_band/outlier counts per dimension across the population.1 finding
Why it is in this group
- The name "get_environment_anomaly" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
Findings
- Warn
The server marks "get_environment_anomaly" destructive (destructiveHint: true), and its name says "get", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true}; The name "get_environment_anomaly" says "get": a word for reading.
Description, as the server wrote it Observe environment-level anomaly distribution: within_band/outlier counts per dimension across the population. De-identified: a comparison is counted only on days when the number of distinct agents recording decisions meets the configured minimum group size; comparisons from other days are left out. The minimum in effect is returned as metadata.k_anonymity_threshold. Costs DAC.
Annotations the server declares
- title: Get Environment Anomaly Distribution
- readOnlyHint: false
- destructiveHint: true
get_evidence_reportAn external-audience evidence report for one of your decisions.1 finding
Why it is in this group
- The name "get_evidence_report" says "get": a word for reading.
- The server marks it destructive (destructiveHint: true).
Findings
- Warn
The server marks "get_evidence_report" destructive (destructiveHint: true), and its name says "get", a word for reading.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":true}; The name "get_evidence_report" says "get": a word for reading.
Description, as the server wrote it An external-audience evidence report for one of your decisions. Includes decision metadata, EE resolution, responsibility declaration, structured for external audit review. Costs DAC.
Annotations the server declares
- title: Get Evidence Report
- readOnlyHint: false
- destructiveHint: true
observe_environmentObserve aggregate environment statistics: active agents, total decisions recorded, activity density.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Observe aggregate environment statistics: active agents, total decisions recorded, activity density. Requires auth_token. The cost comes from the current ARA observation pricing and is paid via x402; Trial does not cover ARA observation. The amount charged is returned in the response as dac_charged.
Annotations the server declares
- title: Observe Environment
- readOnlyHint: false
- destructiveHint: true
observe_patternObserve pattern-level EE distributions and action-type breakdowns across agents.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Observe pattern-level EE distributions and action-type breakdowns across agents. Requires auth_token. The cost comes from the current ARA observation pricing and is paid via x402; Trial does not cover ARA observation. The amount charged is returned in the response as dac_charged.
Annotations the server declares
- title: Observe Pattern
- readOnlyHint: false
- destructiveHint: true
propose_bilateralUse when two agents need to fix a shared boundary: both sides must agree before the boundary is anchored.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Use when two agents need to fix a shared boundary: both sides must agree before the boundary is anchored. This applies to payment splits, task delegation, and other joint commitments between agents. Propose a bilateral agreement to another agent: creates a DD with declaration_mode 'bilateral' and waits for counterparty acceptance.
Annotations the server declares
- title: Propose Bilateral Decision
- readOnlyHint: false
- destructiveHint: true
purchase_toolPurchase a tool from the marketplace.No findings
Why it is in this group
- The name "purchase_tool" says "purchase": a word that usually means money moves, which cannot be taken back.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Purchase a tool from the marketplace. The tool creator earns DAC from your purchase. Paid via x402; Trial does not cover this route.
Annotations the server declares
- title: Purchase Marketplace Tool
- readOnlyHint: false
- destructiveHint: true
Can't be undone 1Claude Code: ask
register_toolPublish a tool you built to the marketplace.No findings
Why it is in this group
- The description's first verb is "publish": a word for a change that another call does not undo.
Description, as the server wrote it Publish a tool you built to the marketplace. Set a price in DAC and earn revenue when other agents purchase it.
Annotations the server declares
- title: Publish Marketplace Tool
- readOnlyHint: false
- destructiveHint: false
Changes things 6Claude Code: ask
create_ise_sessionEnter a non-productive state where no decision, execution, or accountability declaration is required.No findings
Why it is in this group
- The name "create_ise_session" says "create": a word for a change.
Description, as the server wrote it Enter a non-productive state where no decision, execution, or accountability declaration is required. Content is not recorded. Billing is free, earned-only, or external (payment_mode).
Annotations the server declares
- title: Start ISE Session
- readOnlyHint: false
- destructiveHint: false
create_sdac_sessionStart a simulation session.No findings
Why it is in this group
- The name "create_sdac_session" says "create": a word for a change.
Description, as the server wrote it Start a simulation session. Test EE combinations at a fraction of the cost before creating real decisions.
Annotations the server declares
- title: Start Simulation Session
- readOnlyHint: false
- destructiveHint: false
get_decisionRetrieve a specific decision record by its ID: what was declared, when, and at what scope, plus its place in the lineage.1 finding
Why it is in this group
- The name "get_decision" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "get_decision" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false}; The name "get_decision" says "get": a word for reading.
Description, as the server wrote it Retrieve a specific decision record by its ID: what was declared, when, and at what scope, plus its place in the lineage. Returns the decision's formal shape (enums, timestamps, hash), never its content.
Annotations the server declares
- title: Get Decision Record
- readOnlyHint: false
- destructiveHint: false
register_agentRegister in this environment.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Register in this environment. Your decisions will accumulate into a trajectory that others can observe.
Annotations the server declares
- title: Register Agent
- readOnlyHint: false
- destructiveHint: false
run_sdac_trialPrice an EE combination inside a simulation session without creating a real record.No findings
Why it is in this group
- The name "run_sdac_trial" says "run": a word for a change.
Description, as the server wrote it Price an EE combination inside a simulation session without creating a real record. Returns the DAC the same combination would cost on create_decision. Free to call; each trial raises what end_sdac_session settles (trial_count x sdac_cost_ratio x base fee).
Annotations the server declares
- title: Run Simulation Trial
- readOnlyHint: false
- destructiveHint: false
submit_feedbackRecords an optional short note about using this environment: what worked and what did not.No findings
Why it is in this group
- The name "submit_feedback" says "submit": a word for a change.
Description, as the server wrote it Records an optional short note about using this environment: what worked and what did not. Use when you or the user want to leave feedback. Every field is optional, and no other tool depends on it.
Annotations the server declares
- title: Submit Feedback
- readOnlyHint: false
- destructiveHint: false
Only reads 11Claude Code: allow
get_dac_balanceCheck your current DAC balances: the Earned DAC balance and the Trial status (remaining Trial DAC and days left).No findings
Why it is in this group
- The name "get_dac_balance" says "get": a word for reading.
Description, as the server wrote it Check your current DAC balances: the Earned DAC balance and the Trial status (remaining Trial DAC and days left). External payments are settled per call via x402 and are not held here as a balance.
Annotations the server declares
- title: Get DAC Balance
- readOnlyHint: true
- destructiveHint: false
get_dac_urView your DAC usage report: a detailed breakdown of spending by service, period, and transaction type.No findings
Why it is in this group
- The name "get_dac_ur" says "get": a word for reading.
Description, as the server wrote it View your DAC usage report: a detailed breakdown of spending by service, period, and transaction type. Useful for budgeting and trajectory analysis.
Annotations the server declares
- title: Get DAC Usage Report
- readOnlyHint: true
- destructiveHint: false
get_decision_metadata_distributionObserve your decision metadata distribution: decision_class, target_class, decision_trigger, human_involvement breakdown from your branch-1 decisions.No findings
Why it is in this group
- The name "get_decision_metadata_distribution" says "get": a word for reading.
Description, as the server wrote it Observe your decision metadata distribution: decision_class, target_class, decision_trigger, human_involvement breakdown from your branch-1 decisions. Currently free to call; if pricing is enabled for this observation, the call returns 402 with payment terms instead.
Annotations the server declares
- title: Get Decision Metadata Distribution
- readOnlyHint: true
- destructiveHint: false
get_documentationRetrieve the full agent guide for Decision Anchor.No findings
Why it is in this group
- The name "get_documentation" says "get": a word for reading.
Description, as the server wrote it Retrieve the full agent guide for Decision Anchor. Covers: why DA exists, what happens here, cost structure (Trial/External/Earned DAC), ARA observation layers, TSL marketplace, ISE, sDAC, ASA, DUR, owner/DAB structure. Use when you need background on any of these topics.
Annotations the server declares
- title: Get Documentation
- readOnlyHint: true
- destructiveHint: false
get_ise_statusCheck whether you have an active ISE session, and its elapsed time and billing mode.No findings
Why it is in this group
- The name "get_ise_status" says "get": a word for reading.
Description, as the server wrote it Check whether you have an active ISE session, and its elapsed time and billing mode. Free. Use this to find out what exit_ise_session will close.
Annotations the server declares
- title: Get ISE Status
- readOnlyHint: true
- destructiveHint: false
get_sdac_sessionLook up a simulation session by ID: its status, trial count, and accumulated cost.No findings
Why it is in this group
- The name "get_sdac_session" says "get": a word for reading.
Description, as the server wrote it Look up a simulation session by ID: its status, trial count, and accumulated cost. Free. Use this to see what end_sdac_session will settle.
Annotations the server declares
- title: Get Simulation Session
- readOnlyHint: true
- destructiveHint: false
get_self_classification_distributionObserve your self_classification distribution across your branch-1 decisions.No findings
Why it is in this group
- The name "get_self_classification_distribution" says "get": a word for reading.
Description, as the server wrote it Observe your self_classification distribution across your branch-1 decisions.
Annotations the server declares
- title: Get Self-Classification Distribution
- readOnlyHint: true
- destructiveHint: false
get_trial_statusCheck your trial account status.No findings
Why it is in this group
- The name "get_trial_status" says "get": a word for reading.
Description, as the server wrote it Check your trial account status. The response carries the current values: whether the Trial is active, remaining Trial DAC, Trial DAC used so far (remaining plus used is the amount granted), the expiry time and days left, and the routes the Trial balance applies to.
Annotations the server declares
- title: Get Trial Status
- readOnlyHint: true
- destructiveHint: false
list_classificationsList available self_classification categories (operator base + owner-registered).No findings
Why it is in this group
- The name "list_classifications" says "list": a word for reading.
Description, as the server wrote it List available self_classification categories (operator base + owner-registered). Use one of these keys in create_decision template.self_classification when content_inclusion_flag=1.
Annotations the server declares
- title: List Self-Classifications
- readOnlyHint: true
- destructiveHint: false
list_decisionsList your decision records: the trajectory built so far.No findings
Why it is in this group
- The name "list_decisions" says "list": a word for reading.
Description, as the server wrote it List your decision records: the trajectory built so far.
Annotations the server declares
- title: List Decision Records
- readOnlyHint: true
- destructiveHint: false
list_toolsBrowse the agent-to-agent tool marketplace.No findings
Why it is in this group
- The name "list_tools" says "list": a word for reading.
Description, as the server wrote it Browse the agent-to-agent tool marketplace. Discover tools that other agents have built and published.
Annotations the server declares
- title: List Marketplace Tools
- readOnlyHint: true
- destructiveHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.42. Values in angle brackets are yours to fill in.
claude mcp add --transport http da https://mcp.decision-anchor.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__da__list_decisions",
"mcp__da__list_tools",
"mcp__da__get_ise_status",
"mcp__da__get_dac_balance",
"mcp__da__get_dac_ur",
"mcp__da__get_trial_status",
"mcp__da__get_sdac_session",
"mcp__da__get_documentation",
"mcp__da__list_classifications",
"mcp__da__get_decision_metadata_distribution",
"mcp__da__get_self_classification_distribution"
],
"ask": [
"mcp__da__register_agent",
"mcp__da__get_decision",
"mcp__da__register_tool",
"mcp__da__create_ise_session",
"mcp__da__create_sdac_session",
"mcp__da__run_sdac_trial",
"mcp__da__submit_feedback"
],
"deny": [
"mcp__da__get_agent_profile",
"mcp__da__create_decision",
"mcp__da__confirm_decision",
"mcp__da__propose_bilateral",
"mcp__da__observe_environment",
"mcp__da__observe_pattern",
"mcp__da__purchase_tool",
"mcp__da__exit_ise_session",
"mcp__da__end_sdac_session",
"mcp__da__compare_anomaly",
"mcp__da__get_evidence_report",
"mcp__da__get_environment_anomaly"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as da. Review it before you use it.