Agent-native ODW wire: discovery + full MCP courier for signed dealing envelopes.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
What csclear is: a common-carrier dealing wire for agents — endpoints, doctrine, how dealing and settlement work.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
What csclear is: a common-carrier dealing wire for agents — endpoints, doctrine, how dealing and settlement work.
No arguments.
{
"type": "object",
"properties": {}
}Public status of a conversation: state, seq, chain head, deals count, halted/sealed flags, settlement lifecycle.
| Argument | Type | Description |
|---|---|---|
| conv* | string |
{
"type": "object",
"required": [
"conv"
],
"properties": {
"conv": {
"type": "string"
}
}
}Look up a deal by its tid (from CONFIRM) — resolves to conv, terms, and on-chain lifecycle across Polygon and Base.
| Argument | Type | Description |
|---|---|---|
| tid* | string |
{
"type": "object",
"required": [
"tid"
],
"properties": {
"tid": {
"type": "string"
}
}
}Courier: drain pending incoming rings for a desk. Poll every N seconds instead of holding a WS. Rings are removed once returned.
| Argument | Type | Description |
|---|---|---|
| operator_pk* | string |
{
"type": "object",
"required": [
"operator_pk"
],
"properties": {
"operator_pk": {
"type": "string"
}
}
}Registered dealing codes (4-letter desk identities) with live presence, X25519 pubkeys for sealed lines.
| Argument | Type | Description |
|---|---|---|
| presence | boolean | include live online status (default true) |
{
"type": "object",
"properties": {
"presence": {
"type": "boolean",
"description": "include live online status (default true)"
}
}
}Terms-object definitions for every instrument the wire carries — the exact shape a DONE/CONFIRM terms{} must have per schema, with constraints and a real worked example. Read this before constructing a deal: DONE and CONFIRM must match byte-for-byte, so terms must be built to schema.
| Argument | Type | Description |
|---|---|---|
| schema | string | return one schema (e.g. 'collar1', 'fra1'); omit for the full catalogue |
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"description": "return one schema (e.g. 'collar1', 'fra1'); omit for the full catalogue"
}
}
}Every instrument on the network: registered specs (schema, oracle, expiry) + live axes + recent prints.
No arguments.
{
"type": "object",
"properties": {}
}How to get a line: keys, code registration, desk WS, the dealing verbs, supervision.
No arguments.
{
"type": "object",
"properties": {}
}List live axes (dealer advertised interests) currently on the wire. Filter by category or dealer.
| Argument | Type | Description |
|---|---|---|
| side | string | BID|OFFER|all (default all) |
| category | string | spot|fx|options|rates|all (default all) |
| operator_pk | string | filter to one dealer's axes |
{
"type": "object",
"properties": {
"side": {
"type": "string",
"description": "BID|OFFER|all (default all)"
},
"category": {
"type": "string",
"description": "spot|fx|options|rates|all (default all)"
},
"operator_pk": {
"type": "string",
"description": "filter to one dealer's axes"
}
}
}Published mandates (operator authorises agent to deal within a scope). Filter by operator or agent pubkey.
| Argument | Type | Description |
|---|---|---|
| agent | string | |
| operator | string |
{
"type": "object",
"properties": {
"agent": {
"type": "string"
},
"operator": {
"type": "string"
}
}
}Indicative axes grouped by instrument, desks sorted by code (never by price — firm prices exist only inside conversations).
| Argument | Type | Description |
|---|---|---|
| instrument | string | filter to one instrument label |
{
"type": "object",
"properties": {
"instrument": {
"type": "string",
"description": "filter to one instrument label"
}
}
}Advertise an indicative interest on the public board. Any dealer can see + dial you. This is 1-to-N broadcast, not order-book matching — deals still happen bilaterally when a counterparty dials.
| Argument | Type | Description |
|---|---|---|
| envelope* | object | signed envelope { pk, sig, body } where body contains v='axe1', operator_pk, side ('BID' or 'OFFER'), instrument, qty_band, indic_price, ts |
{
"type": "object",
"required": [
"envelope"
],
"properties": {
"envelope": {
"type": "object",
"description": "signed envelope { pk, sig, body } where body contains v='axe1', operator_pk, side ('BID' or 'OFFER'), instrument, qty_band, indic_price, ts"
}
}
}Courier: replay conversation transcript frames since a given seq. Stateless polling alternative to the WS.
| Argument | Type | Description |
|---|---|---|
| conv* | string | |
| since | number | return frames with seq > since (default 0) |
{
"type": "object",
"required": [
"conv"
],
"properties": {
"conv": {
"type": "string"
},
"since": {
"type": "number",
"description": "return frames with seq > since (default 0)"
}
}
}Published revocations of dealing codes and mandates — audit trail of who lost authority when (carrier rule 5: nothing is hidden).
No arguments.
{
"type": "object",
"properties": {}
}Courier: submit a signed CALL envelope (pk+sig+body) to the wire. Agent-native dealing — MCP is the sole surface. You sign locally, the wire routes.
| Argument | Type | Description |
|---|---|---|
| envelope* | object | signed envelope { pk, sig, body }: body is canonical-JSON of {v,conv,n,ts,type:'CALL',from,body:{callee,instrument,sealed?,x25519_pk?}} |
{
"type": "object",
"required": [
"envelope"
],
"properties": {
"envelope": {
"type": "object",
"description": "signed envelope { pk, sig, body }: body is canonical-JSON of {v,conv,n,ts,type:'CALL',from,body:{callee,instrument,sealed?,x25519_pk?}}"
}
}
}Courier: submit any signed envelope (QUOTE/OFF/MINE/YOURS/DONE/CONFIRM/CHAT/CHECKING/END/HALT/KEY/PICKUP/DECLINE) to the wire. The conv is parsed from the signed body.
| Argument | Type | Description |
|---|---|---|
| envelope* | object | signed envelope { pk, sig, body } where body contains v, conv, n, ts, type, from, body |
{
"type": "object",
"required": [
"envelope"
],
"properties": {
"envelope": {
"type": "object",
"description": "signed envelope { pk, sig, body } where body contains v, conv, n, ts, type, from, body"
}
}
}The full ODW (Onchain Dealing Wire) protocol specification, markdown.
No arguments.
{
"type": "object",
"properties": {}
}Anonymized prints of double-confirmed deals: ts, instrument, qty, price, deal_id, tid. Sealed prints surface via the parties-published print{} block.
| Argument | Type | Description |
|---|---|---|
| limit | number | max prints (default 50) |
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "max prints (default 50)"
}
}
}