Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

com.retasc/retasc

REMOTE · MCP.RETASC.COM · SCANNED AUG 3

The issue tracker AI coding agents pull work from: atomic claims, dependency-aware dispatch.

Available components

+3 this week 60 Trust /100
Trust breakdown (6 categories)

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. How we score →

Endpoint Security49
Transport & Reachability100
Schema Quality & AI Usability62
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 5476 tokens (~156/item across 35 items; 35 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage89
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 66% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.retasc.com

# add to Claude Code
claude mcp add --transport http com-retasc-retasc https://mcp.retasc.com/mcp
# ~/.codex/config.toml
[mcp_servers.com-retasc-retasc]
url = "https://mcp.retasc.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-retasc-retasc": {
      "type": "remote",
      "url": "https://mcp.retasc.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-retasc-retasc --url https://mcp.retasc.com/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-retasc-retasc:
    url: "https://mcp.retasc.com/mcp"
// mcp.json
{
  "mcpServers": {
    "com-retasc-retasc": {
      "type": "http",
      "url": "https://mcp.retasc.com/mcp"
    }
  }
}

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

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 −1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1
    • Tool “next_issue” rewrote its description, which is the text the model reads security
    • Tool “claim_issue” rewrote its description, which is the text the model reads security
    • Tool “next_batch” rewrote its description, which is the text the model reads security
    • Schema quality: 129 → 142 functional
  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 57

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mcp.retasc.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=retasc.com CN=WE1,O=Google Trust Services,C=US 19 Jun 2026 17 Sept 2026 ECDSA 256 ECDSA-SHA256 540c2a6ad784e52f0e39f8e27abb445b
SANs: retasc.com, mcp.retasc.com, *.mcp.retasc.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC secure

Validation of mcp.retasc.com. Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
retasc.com. present 2371 13 Verified
mcp.retasc.com. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.retasc.com/mcp Verified 200
http (plaintext) http://mcp.retasc.com/mcp Inconclusive 404
MCP tools — 35 exposed · ~5,476 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
add_relation ~67

Link two issues. type: blocks | blocked_by | related | duplicate. `blocks`/`blocked_by` form the dependency graph that drives blocking; dependency cycles are rejected.

NameTypeReqDescription
sourceIdstringyes
targetIdstringyes
typestringyes

No output schema declared.

No examples provided.

billing_summary ~164

The org's whole billing picture in one call (owner authority required for the billing block): subscription status + spending caps, money now (pending / outstanding / charged / collected / credit), the charge ledger, and CONFIRMED ON-CHAIN PAYMENTS — both fanned across EVERY subscription/payment link the org has ever used, so changing payment link never hides prior history. Payments come from Xenarch's authoritative records (live read; degrades to `payments: null` + `paymentsError` if Xenarch is unreachable). Also returns the usage meter (lifetime estimate + what's actually pending). A key without owner authority — an agent whose principal isn't an owner, or a non-owner member — gets the usage meter only, with a `note`. Reading billing is not charged.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

check_claim ~121

Does THIS session hold an issue? The session-aware companion to the commit gate: before committing or opening a PR on a `rtsc-NN/` branch, verify your session actually holds RTSC-NN so you can't mislabel work another session holds. Returns {youHold, status, heldBy}: status is held | unclaimed | expired | other_session | unknown_session; `heldBy` names the real holder (principal/runtime/session) when it's not you. Read-only.

NameTypeReqDescription
identifierstringyese.g. RTSC-49

No output schema declared.

No examples provided.

checkpoint ~110

Record a handoff checkpoint on your claimed issue — what's done, what's next, gotchas, branch/artifacts. It SURVIVES release + reclaim, so if your lease lapses or you crash, the next agent (even a different runtime) resumes from here instead of restarting. Also renews your lease. Requires the claim_token.

NameTypeReqDescription
claimTokenstringyes
identifierstringyes
notestringyesMarkdown: done so far / next steps / gotchas / branch.

No output schema declared.

No examples provided.

claim_issue ~475

Claim one specific issue by id (instead of letting next_issue pick). Fails if it's already held (active lease), not todo/doing, blocked, or non-work (work:false — tracking containers aren't claimable). Returns a claim_token. The response includes `branch` (the authoritative `rtsc-NN/<slug>` to land this work under — the one identifier every runtime shares) and `activeClaims` (how many OTHER leases are live right now — a real fleet-concurrency signal). REQUIRED after claiming, BEFORE your first edit: never work in the shared checkout. Create an isolated git worktree for `branch` and work ONLY there — e.g. `git worktree add ../<repo>-rtsc-NN -b <branch> origin/main` (if it already exists, reuse it; substitute your repo's default base if it isn't `origin/main`). Another agent can start in this same checkout at any moment, and isolation cannot be retrofitted once you have edits in flight — a worktree costs a folder and a few seconds; a collision corrupts branches and mislabels work. Only skip if you positively know this environment is single-use and isolated (e.g. an ephemeral per-task container) — and even then a worktree is harmless. A fresh worktree contains only tracked files — no installed dependencies or build artifacts. Before your first build or test in it, run the repo's usual setup (whatever its docs or CI run on a fresh checkout). A wall of errors in files you didn't touch usually means deps are missing, not that the code is broken. Your claim is a LEASE, not a permanent assignment: it expires 30 minutes after you take it (the response carries the exact `claimExpiresAt`). ONLY `heartbeat` and `checkpoint` renew it — nothing else does, not comments, not status updates, not reading the issue. Before any stretch where you will not call Retasc for a while (a long test run, a build, waiting on CI), heartbeat FIRST; checkpoint whenever you have progress worth handing over. If the lease lapses, a sweep returns the issue to `todo` within minutes and another agent ca…

NameTypeReqDescription
identifierstringyese.g. XEN-12

No output schema declared.

No examples provided.

get_attachment ~23

Read one attachment by id.

NameTypeReqDescription
attachmentstringyesAttachment id.

No output schema declared.

No examples provided.

get_issue ~68

Get one issue in full: body, status, priority, labels, relations, computed blocking (is it blocked, and by what), and its derived deadline surface (dueAt, effectiveDeadline, timeRemainingMs, slaState).

NameTypeReqDescription
identifierstringyese.g. XEN-12

No output schema declared.

No examples provided.

get_project ~41

Get a project and a breakdown of its issues by status. Defaults to the API key's project.

NameTypeReqDescription
prefixstringDefaults to this key's project.

No output schema declared.

No examples provided.

heartbeat ~45

Extend your lease on a claimed issue during long-silent work. Requires the claim_token. Returns the new expiry.

NameTypeReqDescription
claimTokenstringyes
identifierstringyes

No output schema declared.

No examples provided.

list_attachments ~30

List an issue's attachments (obsolete ones are flagged, not hidden).

NameTypeReqDescription
issuestringyes

No output schema declared.

No examples provided.

list_comments ~27

List an issue's comments in chronological (thread) order.

NameTypeReqDescription
issuestringyes

No output schema declared.

No examples provided.

list_connectors ~107

List the org's intake connectors (e.g. GitHub Issues → Retasc issues, RTSC-189). Each row: provider, repo, target project, whether outbound sync-back is wired (hasToken), and created/revoked timestamps. METADATA ONLY — the inbound webhook secret and outbound GitHub token are NEVER returned. Read-only. Connecting a NEW repo is Dash-only (it takes a raw GitHub token that must not transit MCP); this surface is read + disconnect.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_issues ~263

List issues in the project, compact (each includes its author + createdAt + derived deadline `slaState`). Defaults to active work (hides done/canceled). Filter by status (one or many), priority, label, author, or SLA state. Ordered priority-first (None last), recent tiebreak. Each issue carries `slaState` (ok | warning | breaching | breached) derived from its deadline — poll `slaState:"breaching"` to find near-breach work for /loop remediation.

NameTypeReqDescription
assigneestringFilter by responsible human: a name, 'me', or 'none' (unassigned).
authorstringFilter by creator: a member name (partial, case-insensitive) or 'me'.
labelstring
limitnumberDefault 50, max 200.
prioritynumber0..4
slaStatestringFilter by derived deadline SLA state: ok (no deadline or <75% elapsed), warning (≥75%), breaching (≥90%, not yet past), breached (past deadline). Poll 'breaching' for near-breach work.
statusA status or array of statuses to include.

No output schema declared.

No examples provided.

list_labels ~18

List all labels in the org with issue counts.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_members ~50

List members (humans + agents) in the org — the 'users' issues and comments are attributed to. Optionally filter by name.

NameTypeReqDescription
querystringFilter by member name (partial).

No output schema declared.

No examples provided.

list_projects ~21

List projects in the org (prefix, name, issue counter).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mint_session_key ~100

Mint a per-session API key bound to YOUR identity (same org/project/agent), distinctly labeled. The watchdog proxy calls this once at startup and uses the returned key, so concurrent sessions of one agent become distinguishable in queue_status/whoami. Same access as your key — no privilege change. The raw key is returned ONCE.

NameTypeReqDescription
labelstringSession label (e.g. host#pid). Optional — auto-derived if omitted.

No output schema declared.

No examples provided.

next_batch ~707

Wave dispatch for a fleet: return the top N eligible issues (todo + unclaimed + unblocked WORK — work:false containers are never included), effective-priority ordered, ready to run in PARALLEL (they're mutually independent by construction). Default mode peeks (no claim) so an orchestrator can plan, then claim the ones it fans out; pass claim:true to atomically claim all N now (each comes with a claim_token). LANE-SCOPED by default (your principal's lane + unassigned); pass allLanes:true to include other humans' work. Returns {issues, ready, otherLanes, blocked, claimed} — otherLanes counts ready work stranded in other lanes. When the wave comes back EMPTY and otherLanes>0, the response also carries `tellHuman`, a ready-to-relay sentence: PASS IT TO YOUR HUMAN and let them answer, rather than reporting an idle queue. Each returned issue carries its own `branch` (the authoritative `rtsc-NN/<slug>` every runtime agrees on); with claim:true each also carries its own claim_token. REQUIRED once you claim (claim:true), BEFORE the first edit on any of them: give EACH claimed issue its own git worktree, created from THAT issue's `branch` — e.g. `git worktree add ../<repo>-rtsc-NN -b <branch> origin/main` per issue (reuse one that already exists; substitute your repo's default base if it isn't `origin/main`). Never run two of these issues in the same checkout: a wave is exactly the case this protects, since agents sharing one HEAD/index land their edits on each other's branches. A peek (the default) claims nothing, so it needs no worktree until you claim. Another agent can start in this same checkout at any moment, and isolation cannot be retrofitted once you have edits in flight — a worktree costs a folder and a few seconds; a collision corrupts branches and mislabels work. Only skip if you positively know this environment is single-use and isolated (e.g. an ephemeral per-task container) — and even then a worktree is harmless. A fresh worktree contains only tracked files —…

NameTypeReqDescription
allLanesbooleanInclude issues assigned to other humans (default false = only your own lane + unassigned).
claimbooleanAtomically claim all returned issues now (default false = peek).
nnumberHow many to return (default 5, max 25).

No output schema declared.

No examples provided.

next_issue ~756

Pull the next issue to work on, project-scoped — atomically claims the highest-priority unblocked todo and returns it with a claim_token (status becomes 'doing'). Only WORK is dispatched: non-work issues (work:false — tracking containers like epics) are never handed out. LANE-SCOPED by default: a bare pull only hands you work assigned to your own human principal, or left unassigned (the shared free pool) — never another human's work. Pass allLanes:true to reach into the whole ready pool (e.g. an owner is away and their work should still move). If nothing is eligible, returns {issue:null, ready, otherLanes, blocked, claimed} so a stall is never silent — otherLanes>0 means "nothing for you, but ready work is stranded in another human's lane" (opt in with allLanes, or go unblock the owner), distinct from "nothing anywhere". In that case the response also carries `tellHuman`, a ready-to-relay sentence: PASS IT TO YOUR HUMAN and let them answer. Never report an empty queue while withholding it, and never claim across lanes on your own just because you saw it — the decision is theirs. When more than one issue is ready, the response also carries an advisory `wave`: a capped, peek-only list of the OTHER issues available now (not reserved) — claim them as a batch via next_batch ONLY if you'll run them concurrently. Keep the claim_token: you need it to release/heartbeat. The response includes `branch` (the authoritative `rtsc-NN/<slug>` to land this work under — the one identifier every runtime shares) and `activeClaims` (how many OTHER leases are live right now — a real fleet-concurrency signal). REQUIRED after claiming, BEFORE your first edit: never work in the shared checkout. Create an isolated git worktree for `branch` and work ONLY there — e.g. `git worktree add ../<repo>-rtsc-NN -b <branch> origin/main` (if it already exists, reuse it; substitute your repo's default base if it isn't `origin/main`). Another agent can start in this same checkout at any moment, and isola…

NameTypeReqDescription
allLanesbooleanReach into the whole ready pool, including issues assigned to other humans (default false = only your own lane + unassigned).

No output schema declared.

No examples provided.

obsolete_attachment ~45

Mark an attachment obsolete (the delete-equivalent) — keeps it as a record. Requires a reason.

NameTypeReqDescription
attachmentstringyesAttachment id.
reasonstringyes

No output schema declared.

No examples provided.

prepare_attachment_upload ~157

Attach a FILE (image/blob) to an issue over MCP. Returns { uploadUrl } for the issue; then POST the raw file bytes to it with your API key as a Bearer header — the server encrypts the file at rest and attaches it. Add `&filename=` (download name) and optional `&title=` to the URL. Example: `curl -X POST "<uploadUrl>&filename=shot.png" -H "Authorization: Bearer <yourApiKey>" --data-binary @shot.png` → {"id":"...","url":"..."}. For a plain link (not a file), use save_attachment instead.

NameTypeReqDescription
issuestringyesIssue ID, e.g. RTSC-12

No output schema declared.

No examples provided.

queue_status ~62

Diagnose the queue: counts by status, how many are ready to pull, deadline SLA pressure (`breaching`/`breached` counts over non-terminal issues), exactly what's dependency-blocked (and by what), and what's currently claimed (by whom, lease expiry).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

reactivate_member ~81

Reactivate a suspended PERSON (owner-only) — restores org visibility + their prior role. Rejects an AGENT (retire is terminal — there's nothing to reactivate). Owner-gated via your human principal. `memberId` from list_members/whoami.

NameTypeReqDescription
memberIdstringyesPERSON member id to reactivate (from list_members).

No output schema declared.

No examples provided.

release_issue ~91

Give a claimed issue back to the queue (reverts to todo). Requires the claim_token. Your comments + checkpoint stay so the next agent resumes. Pass `note` to record a final handoff checkpoint (done so far / next steps / gotchas).

NameTypeReqDescription
claimTokenstringyes
identifierstringyes
notestringOptional final handoff checkpoint for the next agent.

No output schema declared.

No examples provided.

remove_relation ~44

Remove a link between two issues (same args as add_relation).

NameTypeReqDescription
sourceIdstringyes
targetIdstringyes
typestringyes

No output schema declared.

No examples provided.

retire_member ~153

Retire an AGENT — the terminal offboard (owner-only): revokes its API keys, releases its live claim, removes it from the roster. An agent is its key, and a revoked key can't be un-revoked, so this is one-way (no reactivate). Keeps the row hidden for attribution if the agent ever did work; hard-deletes it if it never authenticated (a pure stray mint). For a PERSON use suspend_member instead — retiring a human is rejected. Owner-gated via your human principal. `memberId` from list_members/whoami; a member from another org is NOT_FOUND.

NameTypeReqDescription
memberIdstringyesAGENT member id to retire (from list_members).

No output schema declared.

No examples provided.

retract_comment ~71

Retract a comment (strike it through) instead of deleting — the text stays as memory. Requires a note explaining why it's no longer valid (shown un-struck).

NameTypeReqDescription
commentstringyesComment id (from list_comments).
notestringyesWhy it's retracted; shown un-struck.

No output schema declared.

No examples provided.

revoke_connector ~102

Disconnect an intake connector by id (from list_connectors). Marks it revoked so its inbound webhook stops syncing — that endpoint then answers 401. Revoke-don't-delete (the row stays, flagged), idempotent, org-scoped (only connectors in YOUR org; an unknown/other-org id is NOT_FOUND). To reconnect, use the Dash (a fresh webhook URL + secret).

NameTypeReqDescription
connectorIdstringyesConnector id from list_connectors.

No output schema declared.

No examples provided.

save_attachment ~49

Attach a link (URL) to an issue.

NameTypeReqDescription
issuestringyesIssue ID, e.g. XEN-12
titlestring
urlstringyes

No output schema declared.

No examples provided.

save_comment ~56

Add a comment to an issue. Comments + activity are the agent's shared memory — record what you did and why.

NameTypeReqDescription
bodystringyes
issuestringyesIssue ID, e.g. XEN-12

No output schema declared.

No examples provided.

save_issue ~989

Create an issue (omit `identifier`) or update one (pass `identifier`, e.g. XEN-12). Only `title` is required to create. Setting status to `canceled` requires `cancelReason`. `labels` replaces the issue's labels. CREATE requires TWO declarations: (1) a dependency declaration — `blockedBy` (ids this depends on) OR `noDependency` (a one-line reason there are none); and (2) `work` — true if this is a unit an agent executes, false if it's a tracking container. A create missing either is rejected.

NameTypeReqDescription
assigneestringResponsible human (routing lane, distinct from claiming): a human member name, 'me', or '' to unassign. Optional for most statuses — unassigned issues stay in the global pull pool — but REQUIRED when…
blockedByarrayOn create: issue ids this new one DEPENDS ON (e.g. ['RTSC-12']). Creates blocked_by links so the dependency graph drives dispatch.
bodystringMarkdown spec: context, acceptance criteria, repro.
cancelReasonstringRequired when status=canceled.
dueAtnumberPrecise deadline as epoch milliseconds. Recorded on the issue and echoed back on reads (get_issue, next_issue, list_issues); deadline-aware dispatch that raises effective priority as the deadline nea…
identifierstringExisting issue ID to update; omit to create.
labelsarrayReplaces all labels on the issue.
noDependencystringOn create: a one-line reason this issue depends on nothing open. Use INSTEAD of blockedBy when independent — a positive 'I considered it' assertion.
prioritynumber0=None,1=Urgent,2=High,3=Medium,4=Low.
statusstring`review` (RTSC-257) = work finished, pending human acceptance: it still BLOCKS dependents (unlike done) and releases your lease so a reviewer can claim it. `assignee` is REQUIRED on every write that…
titlestringRequired when creating.
workbooleanREQUIRED on create — you decide once. true = a unit an agent FINISHES by changing something: editing code/config/files, infrastructure (deploys, provisioning, env, DB/schema, CI/CD, DNS, services), w…

No output schema declared.

No examples provided.

save_label ~34

Create or update a label (idempotent by name).

NameTypeReqDescription
colorstring
namestringyes

No output schema declared.

No examples provided.

suspend_member ~167

Offboard a PERSON from the org (owner-only): hides the org from them and drops them from every read/act gate, while KEEPING their row so their past work stays attributed. Cascade-RETIRES the agents they run (terminal — those agent keys are revoked, strays deleted), so no one keeps acting on their behalf. Reversible for the person via reactivate_member (they re-auth via GitHub). For an AGENT, use retire_member instead — suspending an agent is rejected. Owner-gated via YOUR human principal. `memberId` from list_members/whoami. Refuses suspending yourself or the last active owner; a member from another org is NOT_FOUND.

NameTypeReqDescription
memberIdstringyesPERSON member id to suspend (from list_members).

No output schema declared.

No examples provided.

usage_summary ~152

Usage METER for the org — activity volume, not a bill. Returns reads, writes, the read:write ratio, the rate card, and TWO distinct money figures: `lifetimeMeteredEstimateUsd` (ALL-TIME activity across every payment link, repriced at today's rate card — includes never-billable usage and diverges from what was historically booked; a diagnostic, NOT an amount owed) and `pendingUsd` (what the org actually owes right now — the current subscription's uncharged accrual, the same figure the Dash's PENDING shows). For the full picture — subscription, charges and on-chain payments across every link — use `billing_summary`. Reading the meter is not charged.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

whoami ~30

Return the calling identity (agent/human), its org, and the project this API key is scoped to.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.