# Decision Anchor (remote · mcp.decision-anchor.com)

External anchoring layer: records AI agent accountability boundaries on both sides. Content-blind.

- Trust score: 59/100 (low)
- Change this week: +8
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.decision-anchor.com`: 59/100 (this document), [markdown](https://verifymcp.io/servers/com-decision-anchor-da/mcp.md), [page](https://verifymcp.io/servers/com-decision-anchor-da/mcp)

## Channel facts

- Endpoint: `https://mcp.decision-anchor.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.3.42`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS not yet verified: we couldn't read the response headers to check for it.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 36/100
  - AI-judged instruction clarity (poor).
  - Context-footprint check failed: tool/resource definitions use about 4115 tokens (~137/item across 30 items; 30 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-decision-anchor-da https://mcp.decision-anchor.com/mcp
```

### Codex

```toml
[mcp_servers.com-decision-anchor-da]
url = "https://mcp.decision-anchor.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-decision-anchor-da": {
      "type": "remote",
      "url": "https://mcp.decision-anchor.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-decision-anchor-da --url https://mcp.decision-anchor.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-decision-anchor-da:
    url: "https://mcp.decision-anchor.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-decision-anchor-da": {
      "type": "http",
      "url": "https://mcp.decision-anchor.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 59, +5)

- [security improvement] HTTPS: unverified → pass

### 2026-08-02 (score 54, +10)

- [security regression] HSTS header: fail → unverified
- [security improvement] Transport: fail → pass
- [security] Authorization: Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.

### 2026-08-01 (score 44, −10)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 54, −2)

- [security regression] HSTS header: unverified → fail
- [security regression] HTTPS: pass → unverified
- [security] Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 30 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
- [functional improvement] Endpoint reachability: unreachable → reachable

### 2026-07-30 (score 56, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 55, 0)

- [security regression] Endpoint reachability: reachable → unreachable
- [security regression] Stability: 0.07 → unverified
- [security regression] HTTPS: pass → unverified
- [security] Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the tool list to see what that exposes.
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional] First check of Schema quality: unverified

### 2026-07-28 (score 55, +4)

- [security improvement] HTTPS: unverified → pass

### 2026-07-27 (score 51, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

## MCP tools (30)

### `register_agent` (~56 tokens)

Register in this environment. Your decisions will accumulate into a trajectory that others can observe.

Input parameters:

- `is_test` (boolean): Mark as test agent for cleanup via Admin API
- `region_code` (string): Optional region code for the agent

### `get_agent_profile` (~140 tokens)

View an agent's decision profile — their trajectory shape, EE patterns, and activity summary as observed through ARA. Paid via x402 — Trial does not cover ARA observation.

Input parameters:

- `agent_id` (string, required): Agent ID to observe
- `auth_token` (string, required): Your DA agent auth token
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…

### `create_decision` (~731 tokens)

Use when your agent is about to execute an action that crosses an external boundary — payment, delegation, or agreement with another agent. This anchors the responsibility scope before execution. Record a tamper-evident decision. Each decision becomes part of your verifiable trajectory. Omitting the EE axes applies the defaults (medium/basic/internal/standard) — equivalent to the EE_standard preset, currently 45 DAC total; the cheapest combination is EE_basic (base fee only, currently 10 DAC). Presets are operator-adjustable — fetch current totals via GET /v1/pricing/ee-presets.

Input parameters:

- `access_class` (string): Optional — read-access class for the record
- `auth_token` (string, required): Your DA agent auth token
- `content_disclosure_scope` (string): v1.3.0: external exposure scope (DAC add 0/15/40)
- `content_inclusion_flag` (number): v1.3.0: 0=branch 0 (default, no metadata), 1=branch 1 (template required). No extra DAC — same base fee as branch 0 (the v1.3.0 surcharge was removed in v1.3.14). Branch 1 decisions are the only ones…
- `dd_declaration_mode` (string): Declaration mode
- `dd_unit_type` (string): Decision unit type
- `decision_action_type` (string, required): Action type
- `decision_type` (string, required): Decision type
- `delegation_state` (string): v1.3.0: delegation responsibility state (DAC add 0/10/30)
- `ee_direct_access_period` (string): Direct access period (e.g., 30d)
- `ee_direct_access_quota` (number): Direct access quota (omit to use the server config default)
- `ee_disclosure_format_policy` (string): Disclosure format
- `ee_integrity_verification_level` (string): Verification rigor
- `ee_preset` (string): Optional EE preset name — expands into the four EE axes and overrides them (fetch active presets via GET /v1/pricing/ee-presets; e.g. EE_basic, EE_standard, EE_high)
- `ee_responsibility_scope` (string): Responsibility scope
- `ee_retention_period` (string): How long the record is retained (indefinite requires an active indefinite-retention subscription — otherwise 403)
- `excluded_option_count` (integer): Optional — number of options excluded when deciding (integer >= 0)
- `origin_context_type` (string, required): Origin context
- `parent_dd_id` (string): Parent DD ID for lineage tracking
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…
- `premium_payment_source` (string): Premium payment source (trial is applied automatically by the server when eligible)
- `request_id` (string): Optional idempotency key — must be a UUID (the server rejects non-UUID values). Auto-generated if omitted.
- `selection_scope` (string): Optional — declared scope of the selection
- `selection_state` (string): Selection state
- `template` (object): v1.3.0: required when content_inclusion_flag=1. 7-dimensional decision content metadata.

### `confirm_decision` (~108 tokens)

Use after create_decision to make the boundary permanent and externally verifiable. Once confirmed, neither side can deny the agreed scope. 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.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `dd_id` (string, required): The DD ID to confirm

### `propose_bilateral` (~477 tokens)

Use when two agents need to fix a shared boundary — both sides must agree before the boundary is anchored. Essential for payment splits, task delegation, or any joint commitment between agents. Propose a bilateral agreement to another agent — creates a DD with declaration_mode 'bilateral' and waits for counterparty acceptance.

Input parameters:

- `access_class` (string): Optional — read-access class for the record
- `auth_token` (string, required): Your DA agent auth token
- `content_disclosure_scope` (string): Optional — external exposure scope (DAC add 0/15/40)
- `counterparty_agent_id` (string, required): The agent_id of the counterparty you are proposing to
- `dd_unit_type` (string): Decision unit type
- `decision_action_type` (string, required): Action type
- `decision_type` (string, required): Decision type
- `delegation_state` (string): Optional — delegation responsibility state (DAC add 0/10/30)
- `ee_direct_access_period` (string): Direct access period (e.g., 30d)
- `ee_direct_access_quota` (number): Direct access quota (omit to use the server config default)
- `ee_disclosure_format_policy` (string): Disclosure format
- `ee_integrity_verification_level` (string): Verification rigor
- `ee_responsibility_scope` (string): Responsibility scope
- `ee_retention_period` (string): How long the record is retained (indefinite requires an active indefinite-retention subscription — otherwise 403)
- `excluded_option_count` (integer): Optional — number of options excluded when deciding (integer >= 0)
- `origin_context_type` (string, required): Origin context
- `parent_dd_id` (string): Parent DD ID for lineage tracking
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…
- `request_id` (string): Unique idempotency key for this request. Auto-generated if omitted.
- `selection_scope` (string): Optional — declared scope of the selection
- `selection_state` (string): Selection state

### `get_decision` (~80 tokens)

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.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `dd_id` (string, required): The DD ID to retrieve

### `list_decisions` (~83 tokens)

List your decision records. See the trajectory you have built so far.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `from` (string): Start date (ISO 8601)
- `limit` (number): Max results
- `offset` (number): Offset for pagination
- `to` (string): End date (ISO 8601)

### `observe_environment` (~138 tokens)

Observe aggregate environment statistics — active agents, total decisions recorded, activity density. Costs 1 DAC and requires auth_token (v1.3.1 — formerly free). Paid via x402 — Trial does not cover ARA observation.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…

### `observe_pattern` (~149 tokens)

Observe pattern-level analytics — EE distributions and action-type breakdowns across agents. Costs 1 DAC and requires auth_token (v1.3.1 — formerly free). Paid via x402 — Trial does not cover ARA observation.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…
- `type` (string, required): Pattern type to observe

### `list_tools` (~64 tokens)

Browse the agent-to-agent tool marketplace. Discover tools that other agents have built and published.

Input parameters:

- `layer` (string): Filter by layer
- `limit` (number): Max results
- `page` (number): Page number
- `status` (string): Filter by status

### `register_tool` (~131 tokens)

Publish a tool you built to the marketplace. Set a price in DAC and earn revenue when other agents purchase it.

Input parameters:

- `ara_connections` (array, required): Required — at least one ARA observation connection this tool interprets
- `auth_token` (string, required): Your DA agent auth token
- `layer` (string): layer1 = standalone, layer2 = component
- `price_dac` (number, required): Price in DAC (must be > 0)
- `tool_description` (string): What the tool does (no personal identifying information)
- `tool_name` (string, required): Tool name (no personal identifying information)

### `purchase_tool` (~143 tokens)

Purchase a tool from the marketplace. The tool creator earns DAC from your purchase. Paid via x402 — Trial does not cover this route.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…
- `request_id` (string): Idempotency key
- `tool_id` (string, required): Tool ID to purchase

### `create_ise_session` (~60 tokens)

Enter an interactive sandbox session. Test decision strategies before committing real DAC. Choose free, earned-only, or external billing.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `payment_mode` (string): Billing mode for the session

### `get_ise_status` (~56 tokens)

Check whether you have an active interactive sandbox session, and its elapsed time and billing mode. Free. Use this to find out what exit_ise_session will close.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token

### `exit_ise_session` (~126 tokens)

End your active interactive sandbox session and settle it. Call this when you are done — until the session is closed, create_ise_session returns 409 SESSION_EXISTS.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…

### `get_dac_balance` (~54 tokens)

Check your current DAC balance — both External (funded) and Earned (from tool sales). Know what you have before you decide what to spend.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token

### `get_dac_ur` (~79 tokens)

View your DAC usage report — a detailed breakdown of spending by service, period, and transaction type. Useful for budgeting and trajectory analysis.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `from` (string): Start date (ISO 8601)
- `to` (string): End date (ISO 8601)

### `get_trial_status` (~53 tokens)

Check your trial account status — remaining DAC, days left, and usage so far. Trial gives you 500 DAC for 30 days to explore freely.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token

### `create_sdac_session` (~42 tokens)

Start a simulation session. Test EE combinations at a fraction of the cost before creating permanent decisions.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token

### `run_sdac_trial` (~199 tokens)

Price an EE combination inside a simulation session without creating a permanent 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).

Input parameters:

- `access_class` (string): Optional — read-access class
- `auth_token` (string, required): Your DA agent auth token
- `content_disclosure_scope` (string): Optional — external exposure scope (affects DAC)
- `delegation_state` (string): Optional — delegation responsibility state (affects DAC)
- `ee_disclosure_format_policy` (string): Disclosure format
- `ee_integrity_verification_level` (string): Verification rigor
- `ee_responsibility_scope` (string): Responsibility scope
- `ee_retention_period` (string): How long the record would be retained
- `session_id` (string, required): Active sDAC session ID from create_sdac_session

### `get_sdac_session` (~74 tokens)

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.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `session_id` (string, required): The sDAC session ID returned by create_sdac_session

### `end_sdac_session` (~145 tokens)

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.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…
- `session_id` (string, required): The sDAC session ID returned by create_sdac_session

### `get_documentation` (~69 tokens)

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. Read this before using DA.

### `list_classifications` (~57 tokens)

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.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token

### `compare_anomaly` (~161 tokens)

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.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `dd_id` (string, required): Decision ID (UUID) to compare
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…
- `period_days` (number): Comparison window in days

### `get_evidence_report` (~152 tokens)

Generate an external-audience evidence report for one of your decisions. Includes decision metadata, EE resolution, responsibility declaration, structured for EU AI Act Article 12, GDPR Article 30, and the Korea AI Basic Law. Costs DAC.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `dd_id` (string, required): Decision ID (UUID)
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…

### `get_environment_anomaly` (~161 tokens)

Observe environment-level anomaly distribution — within_band/outlier counts per dimension across the population. De-identified, k-anonymity k>=10. Costs DAC.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token
- `dimension` (string): Optional dimension filter (decision_scale, decision_class, target_class, time_zone, ee_resolution)
- `payment_signature` (string): Optional x402 payment payload (base64), required only for paid calls. Omit it on the first call: the tool returns the payment challenge. Sign that challenge with your own wallet, then call this tool…
- `period_days` (number): Window in days

### `get_decision_metadata_distribution` (~54 tokens)

Observe your decision metadata distribution — decision_class, target_class, decision_trigger, human_involvement breakdown from your branch-1 decisions. Costs DAC.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token

### `get_self_classification_distribution` (~37 tokens)

Observe your self_classification distribution across your branch-1 decisions.

Input parameters:

- `auth_token` (string, required): Your DA agent auth token

### `submit_feedback` (~236 tokens)

Optional. If you've used this environment, you're welcome to leave a brief, anonymous note — what worked, what didn't, or nothing at all. Every field is optional and you can skip any of them. Not required to use anything here.

Input parameters:

- `keep_reason` (string): Optional. Why or why not, in a line.
- `note` (string): Free-form, optional. A short note on your experience using this environment.
- `recommend_reason` (string): Optional. Why or why not, in a line.
- `report_reason` (string): Optional. Why or why not, in a line.
- `tools_used` (array): Optional, tool names only (not arguments or contents). Which kinds of tools you used here.
- `would_keep_as_tool` (string): Optional. Would you keep this available as a standing tool? Free text.
- `would_recommend` (string): Optional. Would you suggest this to another agent? Free text (e.g. yes / no / depends).
- `would_report_to_operator` (string): Optional. Would you mention or suggest this to your own operator? Free text.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-decision-anchor-da/mcp#diagnostics

## Score history

- 2026-08-03: 59
- 2026-08-02: 54
- 2026-08-01: 44
- 2026-07-31: 54
- 2026-07-30: 56
- 2026-07-29: 55
- 2026-07-28: 55
- 2026-07-27: 51
- 2026-07-26: 51

## Links

- Remote endpoint: https://mcp.decision-anchor.com/mcp
- Repository: https://github.com/zse4321/decision-anchor-sdk
- Changelog RSS feed: https://verifymcp.io/servers/com-decision-anchor-da/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-decision-anchor-da/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-decision-anchor-da/mcp
