The tier split is unusually explicit: 31 of the 40 advertised tools cost nothing and answer without a credential, and every priced reveal pays 75% of the fee to the person whose identity was read. A zero-match field query reveals nothing and charges nothing, which is the right default for a search you might get wrong. Note the bridge caveat the project states plainly — the stdio bridge does not carry per-invocation signing, so authenticated tools fail through it; import the SDK directly for that path.
A client for the ~Alter identity rail and the tool surface it exposes. Where access management answers who is logged in, ~Alter answers what is inferred about a person: engagement depth, trait vectors, competency evidence and match quality. Free tools answer with no credential; deeper reads are priced per call and settled with x402 micropayments.
- A first handshake reporting server version, authentication status, your trust tier and available tool counts, plus a cold-start overview of how the tiers work — `hello_agent`, `get_started`
- Whether a person is registered, with optional identity claims validated, and a `~handle` resolved to its canonical form — `verify_identity`, `alter_resolve_handle`, `alter_presence_read`, `alter_resolve_by_key`
- A person's profile summary, engagement level and available query tiers, plus their competency portfolio with evidence records and badges — `get_profile`, `get_engagement_level`, `get_competencies`
- Identity stubs searched by trait criteria with no personal data returned, and a stub created for someone who has not completed discovery — `search_identities`, `create_identity_stub`
- A standing trait requirement posted as a resting order that accumulates fills as matching identities appear, then collected one at a time — `create_requirement`, `list_requirements`, `get_requirement`, `cancel_requirement`, `poll_requirement_matches`
- The canonical trait vocabulary with categories, valid discovery contexts and the EU AI Act workforce gating rules — `describe_traits`
- Priced reads: the top five traits for a person, the full trait vector with confidence intervals, a multi-domain graph with differential-privacy noise, graph-to-graph similarity, belonging probability for a person-job pairing, ranked match recommendations and a written explanation of one match — `get_trait_snapshot`, `get_full_trait_vector`, `get_side_quest_graph`, `query_graph_similarity`, `compute_belonging`, `get_match_recommendations`, `generate_match_narrative`
- A field query by situation rather than by name: weight three to seven traits and rank the opted-in field, revealing one top-ranked member per call — `query_field`
Nothing for the free tier — the hosted server at `https://mcp.truealter.com/api/v1/mcp` answers free tools anonymously over Streamable HTTP. Tools that act on your own identity need a member credential, provisioned once by running `alter login`, which the CLI bridge reads for you. Premium tools need an x402 signer and settle in USDC. This repository is the TypeScript client, published as `@truealter/sdk` (0.5.8) for Node 18+, Deno, Bun, Cloudflare Workers and browsers; the day-to-day front door is the separate `@truealter/cli` package.
One command — npx -y mcp-remote https://mcp.truealter.com/api/v1/mcp
