# Basis Protocol

> Attested risk scores for stablecoins, DeFi protocols and wallets, with receipts.

- name: io.github.basis-protocol/basis
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 63/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.basis-protocol%2Fbasis
- tools: https://api.protogrid.dev/v1/servers/io.github.basis-protocol%2Fbasis/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "basis": {
      "type": "http",
      "url": "https://basisprotocol.xyz/mcp"
    }
  }
}
```


## Trust

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

## Quality 63/100 (needs work)

### 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: 71 (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
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_stablecoin_scores (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_methodology (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); basis_data (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 1,109 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 37 tool changes in 30 days
- fail `stability.rug_pull`: 4 tools kept their name but changed most of their description in 30 days; review before trusting them

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

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 7, about 1,109 tokens to load them all
- tool set hash: 8df7b667ed3768568b3f0b235e0c7284
- tools last changed: 2026-10-14T21:35:59.151Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.basis-protocol/basis.svg)](https://protogrid.dev/servers/io.github.basis-protocol/basis)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-14 `wallet_lens` removed
  - Admin only. CoinGecko wallet data (balances, transfers, trades, pnl) for an EVM address. Cache-first; fetches within the lens credit cap; else the stale copy. transfers/trades need a network id (e.g. eth, base).
- 2026-10-14 `wallet_lens` added
  - Admin only. CoinGecko wallet data (balances, transfers, trades, pnl) for an EVM address. Cache-first; fetches within the lens credit cap; else the stale copy. transfers/trades need a network id (e.g. eth, base).
- 2026-10-11 `basis_data_catalog` removed
  - Every data type available in the universal data layer. Returns per data type: description, freshness, history depth, update frequency, provenance status, row count. Use to discover what data is available for building custom risk indices.
- 2026-10-11 `basis_asset_footprint` removed
  - Where a collateral token is used across the lending venues we read: per venue and chain, supply and borrow against it and its share of the venue's supply. Supply/borrow are the markets' loan-side totals attributed to the collateral token (a footprint proxy, not collateral posted). Phantom / single-actor flagged markets are listed, not summed. A symbol matching several tokens returns them separately (ambiguous=true).
- 2026-10-11 `basis_venue_shift` removed
  - Venue-shift findings: an operator's proposed venue markets overlapped against the markets its vaults currently allocate to. Each finding cites the proposal capture hash and the allocation-snapshot attestation it was computed from. Omit operator_slug to list all findings, sorted by share of venue supply.
- 2026-10-11 `basis_incidents` removed
  - Structured event history: exploits, depegs, oracle failures. Returns timeline of incidents with severity, affected entities, and resolution status. Use for due diligence and insurance risk assessment. Parameters: entity_id: Entity ID to filter by (optional). Omit for all recent incidents.
- 2026-10-11 `basis_correlation` removed
  - Cross-entity correlation matrix. Shows which assets move together. When USDC depegs, which protocols lose TVL in sync? Use for portfolio construction and systemic risk assessment. Parameters: matrix_type: "sii_30d", "sii_90d", or "cross_90d"
- 2026-10-11 `basis_exchange_health` removed
  - Exchange trust score, volume, and reserve status. Returns CoinGecko trust scores, 24h volume, year established, and stablecoin-specific trading pair data for top exchanges. Parameters: exchange_id: CoinGecko exchange ID (e.g. "binance", "coinbase-exchange"). Omit for all.
- 2026-10-11 `basis_governance_activity` removed
  - Governance proposal counts, voter participation, and pass rates. Returns full proposal history with vote counts, quorum status, and voter concentration data. Use to assess DAO health and governance quality. Parameters: protocol: Protocol slug as used by the Basis protocol index (e.g. "aave", "lido", "curve-finance", "compound-finance", "uniswap"). Snapshot space names such as "aavedao" are not accepted. days: Lookback period in days (default 90)
- 2026-10-11 `basis_yield_data` removed
  - Pool-level yield, TVL, and utilization for any DeFi protocol. Returns APY, base APY, reward APY, TVL, and pool metadata for all tracked lending/vault pools. Use to evaluate yield sustainability and protocol health. Parameters: protocol: Protocol slug (e.g. "aave-v3", "compound-v3"). Omit for all protocols.

Full history: https://api.protogrid.dev/v1/servers/io.github.basis-protocol%2Fbasis/changes

## Remotes

- https://basisprotocol.xyz/mcp (streamable-http, auth none, reachable true, uptime30d 0.97590363)

## Packages

_none_

## Tools (7)

- `basis_answer`: Ask the Basis Agent a question about attested risk state.

    Answers cite attestation hashes; ungroundable queries are refused. Never
    recommends positions or forecasts. Pass your hub API key (x-api-key header
    or ?apikey=) to attribute reads. Multi-turn: pass the envelope's
    session_id back as session_id.

    Parameters:
        query: The question (max 4000 chars).
        session_id: Session UUID from a previous envelope (optional).
    
- `basis_data`: Market, governance and risk data in one tool. Pick a kind:

    liquidity_depth (entity=coin id), yield_data (entity=protocol, optional),
    governance_activity (entity=protocol slug; window=days, 90),
    bridge_flows (entity=bridge id, optional), exchange_health (entity=exchange id, optional),
    volatility (entity=asset id), incidents (entity=entity id, optional),
    peg_monitor (summary of latest deviation + status per coin; detail=true with entity
    returns that coin's 5-minute series, window=hours, 24),
    venue_shift (entity=operator slug, optional), asset_footprint (entity=token or symbol),
    divergence (capital-flow vs quality signals; severity=notable|alert|critical, limit=20, window=hours 24),
    treasury_events (entity=wallet, optional), riskiest_wallets (limit=20),
    scoring_backlog (limit=20).

    Responses are capped near 12 KB; an unknown kind returns the list of kinds.
    
- `entity_read`: Look up any entity by symbol, slug, contract/wallet address, operator or vault name.

        Returns {entity_type, id, score, grade, confidence, receipt_hash,
        links}. When nothing resolves returns {match: null, did_you_mean:
        [up to 5 candidates]} rather than an error.
        
- `get_methodology`: The Basis methodology. mode="summary" (default): index list, versions,
    component counts. mode="full": the complete SII formula, weights and
    component specifications (large).
- `get_stablecoin_scores`: Current SII scores (0-100) for scored stablecoins. Use before any decision involving stablecoins.

    Parameters:
        limit: max coins returned (default 25, max 500)
        fields: columns to return per coin (default id, symbol, name, issuer,
            score, grade, confidence, stale, computed_at); name "categories"
            for category scores
        sort_by: "score_desc" (default), "score_asc", or "symbol"

    One coin's detail: entity_read(query).
    
- `receipt_verify`: Verify a receipt or citation hash from an envelope (basis_answer, entity_read).

    Resolves it against the attestation tables and returns what it attests
    to, or that it is unknown. ``source`` optionally restricts the table.
    
- `score_history`: Daily SII score history for a stablecoin: a list of {date, score, grade} only.

        Parameters:
            coin: symbol, slug or contract address (resolved like entity_read)
            days: lookback window, 1-365 (default 30)
        
