# x207

> Read-only tools for x207 circles on NEAR: members, epochs, clearing simulation, listings.

- name: io.github.x207-labs/x207-mcp
- version: 0.0.6
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.x207-labs%2Fx207-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.x207-labs%2Fx207-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "x207-mcp": {
      "type": "http",
      "url": "https://mcp.x207.boxd.sh/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-2d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 6 of 6 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,884 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 3 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: deps.dev does not know @x207/mcp@0.0.6

- tools: 6, about 1,884 tokens to load them all
- tool set hash: 54f4b188092934216dc7b8f01b74a79d
- tools last changed: 2026-11-05T10:23:08.679Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.x207-labs/x207-mcp.svg)](https://protogrid.dev/servers/io.github.x207-labs/x207-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-05 `x207_order_status` changed (description, inputSchema) **meaning changed**
  - before: A service order of the circle's marketplace: parties, budget, milestones and status (read API GET /orders/{hash}). Without a hash, lists orders; filter by `party` and `status`.
  - after: Orders of the circle's marketplace (read API GET /orders). With a hash: one order with its parties, budget, milestones and status. Without a hash: a page of orders, filtered by party and status. Use x207_search_listings to find offers before an order exists. An unknown hash is an error ("no order ... in circle"); an empty list is a normal result. Needs the read API (X207_BACKEND_URL).
- 2026-11-05 `x207_search_listings` changed (description, inputSchema) **meaning changed**
  - before: Listings of the circle's marketplace (read API GET /listings): what an account offers and what it wants. Filters are optional; `status` defaults to open. Use `cursor` from `nextCursor` for the next page.
  - after: Find offers on the circle's marketplace (read API GET /listings): what an account offers and what it wants. Use it to discover who sells a service; for an order that already exists use x207_order_status. Returns {items, nextCursor}; pass nextCursor as `cursor` for the next page. No match gives an empty list, not an error. Needs the read API (X207_BACKEND_URL) and fails with a clear message without it.
- 2026-11-05 `x207_simulate_clearing` changed (description, inputSchema) **meaning changed**
  - before: Asks the contract (view simulate_clearing) whether a proposed clearing for an epoch is valid and what it would clear. Each edge nets a debt: debtor owes creditor, `cleared` is the amount to cancel (decimal string, smallest unit). Changes nothing.
  - after: Dry run of a netting proposal: asks the contract (view simulate_clearing) whether the edges would be accepted for an epoch and how much debt they would cancel. Use it to check a proposal before a solver submits it; to see what a finished epoch actually netted use x207_epoch_report. Returns {epoch, edgeCount, result}. An invalid proposal (unknown member, amount above the debt, wrong epoch phase) comes back as an error text from the contract. Read-only, sends nothing.
- 2026-11-05 `x207_epoch_report` changed (description, inputSchema) **meaning changed**
  - before: The state and the result of one clearing epoch: the contract record (get_epoch) and, from the read API, the epoch summary (GET /epochs/{n}), its metrics (cleared ratio, GET /epochs/{n}/metrics) and its settlements (GET /epochs/{n}/settlements). Without epoch, the current epoch.
  - after: One epoch of the circle: its phase and deadlines from the contract (get_epoch), and from the read API the summary, the metrics (cleared ratio: the share of debt that netting removed, so only the net cash moves) and the settlements, i.e. who owes whom what in cash. Use it after an epoch closed; use x207_simulate_clearing to test a proposal before it is submitted. Returns {epoch, contract, summary, metrics, settlements, source, warnings}. An epoch that does not exist is an error; if the read API is down the contract record is still returned, with the failures in `warnings`.
- 2026-11-05 `x207_member_inspect` changed (description, inputSchema) **meaning changed**
  - before: One member of the circle: status, stake, position and credit limit. Uses the read API (GET /members/{account} and /members/{account}/limits), or the contract views member and limit when no read API is configured.
  - after: One member of the circle: status, stake, outstanding debt and credit limit (read API GET /members/{account} and /limits, or the contract views member and limit when no read API is set). Use it after x207_circle_overview has shown the account ids, or before paying a member; for epoch-level amounts use x207_epoch_report. Returns {account, member, limits|limit, source, warnings}. An account that is not a member is an error ("not a member" or a 404 from the read API); a failed limits lookup is only a warning.
- 2026-11-05 `x207_circle_overview` changed (description, inputSchema) **meaning changed**
  - before: Overview of one x207 mutual-credit circle: its record and rules from the contract (get_circle, get_params) and its members (read API GET /members, or the contract view list_members when no read API is configured). Credit amounts are strings in the smallest unit (6 decimals).
  - after: Start here: the circle itself, i.e. its record and rules (get_circle, get_params) plus a page of its members (read API GET /members, or the contract view list_members when no read API is set). Use x207_member_inspect for one member in detail and x207_epoch_report for one epoch. Returns {contract, circleId, circle, params, members, membersSource, warnings}; amounts are strings in the smallest unit (6 decimals). If the members part fails it shows up in `warnings` and the rest is still returned; an unreachable contract RPC is an error.

Full history: https://api.protogrid.dev/v1/servers/io.github.x207-labs%2Fx207-mcp/changes

## Dependencies

- npm @x207/mcp@0.0.6: unknown

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://mcp.x207.boxd.sh/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

- npm @x207/mcp@0.0.6

## Tools (6)

- `x207_circle_overview`: Start here: the circle itself, i.e. its record and rules (get_circle, get_params) plus a page of its members (read API GET /members, or the contract view list_members when no read API is set). Use x207_member_inspect for one member in detail and x207_epoch_report for one epoch. Returns {contract, circleId, circle, params, members, membersSource, warnings}; amounts are strings in the smallest unit (6 decimals). If the members part fails it shows up in `warnings` and the rest is still returned; an unreachable contract RPC is an error.
- `x207_epoch_report`: One epoch of the circle: its phase and deadlines from the contract (get_epoch), and from the read API the summary, the metrics (cleared ratio: the share of debt that netting removed, so only the net cash moves) and the settlements, i.e. who owes whom what in cash. Use it after an epoch closed; use x207_simulate_clearing to test a proposal before it is submitted. Returns {epoch, contract, summary, metrics, settlements, source, warnings}. An epoch that does not exist is an error; if the read API is down the contract record is still returned, with the failures in `warnings`.
- `x207_member_inspect`: One member of the circle: status, stake, outstanding debt and credit limit (read API GET /members/{account} and /limits, or the contract views member and limit when no read API is set). Use it after x207_circle_overview has shown the account ids, or before paying a member; for epoch-level amounts use x207_epoch_report. Returns {account, member, limits|limit, source, warnings}. An account that is not a member is an error ("not a member" or a 404 from the read API); a failed limits lookup is only a warning.
- `x207_order_status`: Orders of the circle's marketplace (read API GET /orders). With a hash: one order with its parties, budget, milestones and status. Without a hash: a page of orders, filtered by party and status. Use x207_search_listings to find offers before an order exists. An unknown hash is an error ("no order ... in circle"); an empty list is a normal result. Needs the read API (X207_BACKEND_URL).
- `x207_search_listings`: Find offers on the circle's marketplace (read API GET /listings): what an account offers and what it wants. Use it to discover who sells a service; for an order that already exists use x207_order_status. Returns {items, nextCursor}; pass nextCursor as `cursor` for the next page. No match gives an empty list, not an error. Needs the read API (X207_BACKEND_URL) and fails with a clear message without it.
- `x207_simulate_clearing`: Dry run of a netting proposal: asks the contract (view simulate_clearing) whether the edges would be accepted for an epoch and how much debt they would cancel. Use it to check a proposal before a solver submits it; to see what a finished epoch actually netted use x207_epoch_report. Returns {epoch, edgeCount, result}. An invalid proposal (unknown member, amount above the debt, wrong epoch phase) comes back as an error text from the contract. Read-only, sends nothing.
