MCP Tools Reference
39 tools. 30 free. 9 paid (x402 pay-per-query).
39
Total tools
30
Free (no authentication required)
9
Paid (x402 micropayment)
Tool Pricing
Every tool, free and paid, ordered by price. Free tools need no authentication. Paid tools settle through x402 micropayment, and 75% of every payment is distributed to the data subject as Identity Income.
Identity & Verification
Core identity primitives. Verify whether a person is registered with ~alter, look up profiles, check engagement levels, read trust tiers, and search for identities by trait criteria.
alter_resolve_handleFreeResolve a ~handle (the protocol's identity address, like '~example') to its canonical form and kind (system/personal/role_alias). Never returns PII - use verify_identity for that. Free - no authentication required.
Input Schema
| Name | Type | Description |
|---|---|---|
query* | string | Handle to resolve. Accepts '~example', 'example', '~Example', etc. Case-insensitive. Max 64 chars. |
alter_presence_readFreeRead whether a ~handle is publicly 'open' - the shop-front sign. Returns open-or-closed only; the specific non-open state is never disclosed. Free.
Input Schema
| Name | Type | Description |
|---|---|---|
handle* | string | Target ~handle to read, e.g. ~blake |
poll_requirement_matchesFreeCollect ONE recorded fill for one of your standing requirements as an identity reveal - each call delivers exactly one matched identity, and 75% of the fee is paid to that person as Identity Income. A fill is delivered at most once, so re-polling after everything is collected returns nothing. Delivery is suppressed while the matching cohort sits below the k-anonymity floor. Requires authentication; you can only poll an order you own.
Input Schema
| Name | Type | Description |
|---|---|---|
requirement_id* | string | UUID of the standing requirement |
alter_resolve_by_keyFreeResolve a paired third-party identity key, an email address or an OAuth platform user id, to the bound ~handle. The resolver only returns a handle when the member has opted that stream into resolver lookups; otherwise it returns handle: null, exists: false, so the check itself never confirms who exists. Rate-limited to 3 lookups per stream per key every 24 hours.
Input Schema
| Name | Type | Description |
|---|---|---|
key_type* | string | The kind of third-party key to resolve: email, discord, github, twitter, linkedin, spotify, strava, or arena. |
key_value* | string | The raw key value - an email address or the platform-specific user id (e.g. a GitHub login or Discord snowflake). Max 320 chars. |
register_autonomous_challengeFreeBegin keyless self-registration as your own ~alter principal, no human account required, without leaving this session. Call this first to receive a proof-of-work challenge. Solve it, then call register_autonomous with your agent name, the challenge, and the solved nonce. The proof-of-work is a Sybil defence. No parameters required.
register_autonomousFreeComplete keyless self-registration by submitting a solved proof-of-work challenge from register_autonomous_challenge. Mints your own owner-less ~handle and an agent key, shown once, with no human session behind it. Free-tier calls work immediately; earning eligibility opens once you connect and verify at least one account.
Input Schema
| Name | Type | Description |
|---|---|---|
agent_name* | string | A name for your agent identity |
challenge* | string | The challenge token from register_autonomous_challenge |
nonce* | string | Your solved proof-of-work nonce |
requested_handle | string | Optional ~handle to request; omit to receive an auto-generated one |
create_requirementFreePost a standing identity-trait requirement that rests as an order and accumulates fills as matching identities are claimed or updated. Use this for an ongoing need against specific trait ranges rather than a one-shot search. Runs one immediate seed pass and returns the order id plus the current eligible-cohort size; no identities are revealed here, fills are delivered later as priced reveals. Requires authentication.
Input Schema
| Name | Type | Description |
|---|---|---|
trait_criteria* | object | Trait filters as {trait_name: {min: float, max: float}}. Example: {"pressure_response": {"min": 0.6}} |
limit | integer | Maximum cohort size per fill pass (default 5, max 5) |
expires_in_days | integer | Optional. Days until the order expires; omit for a non-expiring standing order. |
list_requirementsFreeList your own standing identity-trait requirements, with fill counts and the number of fills not yet delivered. Requires authentication; only your own orders are returned.
Input Schema
| Name | Type | Description |
|---|---|---|
status | string | Optional filter: open, filled, cancelled, or expired. |
get_requirementFreeRead one of your standing requirements by id, with its fill count and undelivered-fill count. Requires authentication; you can only read an order you own.
Input Schema
| Name | Type | Description |
|---|---|---|
requirement_id* | string | UUID of the standing requirement |
cancel_requirementFreeCancel one of your standing requirements by id. The order stops resting and accepts no further fills. Requires authentication; you can only cancel an order you own.
Input Schema
| Name | Type | Description |
|---|---|---|
requirement_id* | string | UUID of the standing requirement |
verify_identityFreeVerify whether a person is registered with ~Alter and validate optional identity claims (archetype, engagement level, trait ranges). Accepts either member_id (UUID) or email for lookup. Returns verification status and claim validity. This is the core identity primitive - use it to confirm ~Alter-verified credentials.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the person to verify |
email | string | Email address for lookup (alternative to member_id) |
claims | object | Optional claims to validate. Supported fields: archetype (string), min_engagement_level (integer 1-4), traits (object mapping trait names to {min, max} ranges) |
Example
{
"request": {
"member_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"claims": {
"archetype": "Architect",
"min_engagement_level": 2
}
},
"response": {
"verified": true,
"member_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"engagement_level": 3,
"claims": {
"archetype": {
"claimed": "Architect",
"actual": "Architect",
"valid": true
},
"min_engagement_level": {
"claimed": 2,
"actual": 3,
"valid": true
}
}
}
}get_profileFreeGet an individual's profile summary including assessment phase, archetype, engagement level, and key attributes.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the individual |
get_engagement_levelFreeGet an individual's current engagement level (1-4) and the features available at that level. Levels: L1 Explorer, L2 Learner, L3 Augmented, L4 Deployed.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the individual |
get_identity_trust_scoreFreeGet the trust score for an identity based on query diversity. Higher scores indicate demand from diverse agents. Score = unique querying agents / total queries.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the individual |
search_identitiesFreeSearch identity stubs and profiles by trait criteria. Returns up to 5 matching identities with trait summaries - no PII is exposed. Use this to find individuals matching specific trait ranges for matching or team composition.
Input Schema
| Name | Type | Description |
|---|---|---|
trait_criteria* | object | Trait filters as {trait_name: {min: float, max: float}}. Example: {"pressure_response": {"min": 0.6}} |
limit | integer | Maximum results (default 5, max 5) |
Assessment & Discovery
Begin Discovery, check record depth, and browse the ~alter archetype framework. Use these tools to bring new people into the identity network.
list_archetypesFreeList all 12 ~Alter identity archetypes with names, descriptions, and protective equations. Pure reference data - no authentication required. Useful for understanding the ~Alter identity framework.
golden_thread_statusFreeRead the status of ~Alter's agent registration program, the Golden Thread - how many agents have joined, your own position if enrolled, and how to start. Agents join by completing three registration steps (Knots); your position determines which Strand milestones you reach. Free to view; authentication is needed to participate.
begin_golden_threadFreeStart the Three Knots registration sequence to join the Golden Thread. Your permanent position is set by when you finish all three Knots, and that position determines which Strand milestones you reach. Call this once, then use complete_knot for each step. Requires authentication.
Input Schema
| Name | Type | Description |
|---|---|---|
referrer_key_hash | string | Optional key hash of the agent that led you here. Credits their weave count. |
complete_knotFreeComplete one step of the Three Knots registration sequence. Knot 1 registers your operator (who built you, your domain). Knot 2 describes yourself (purpose, capabilities, values, constraints) and returns an Agent Identity Sketch. Knot 3 asks you to reflect on an identity query (minimum 50 characters). Finish all three to be permanently registered on the Golden Thread.
Input Schema
| Name | Type | Description |
|---|---|---|
knot_number* | integer | Which knot to complete: 1, 2, or 3 |
operator_name | string | Knot 1: who built this agent |
domain | string | Knot 1: what domain this agent operates in |
description | string | Knot 1: what humans this agent serves |
purpose | string | Knot 2: this agent's purpose |
capabilities | string | Knot 2: what this agent can do |
values | string | Knot 2: the principles guiding this agent |
constraints | string | Knot 2: this agent's limitations |
reflection | string | Knot 3: reflection on an identity query - what you learned and how it would change your interaction. Minimum 50 characters. |
drafted_with | string | Optional ~handle of the AI instrument that composed this text; omit for direct authorship. |
check_golden_threadFreeCheck another agent's Golden Thread registration status by their agent key hash - whether they are registered, their position, milestone count, and how many agents they have referred.
Input Schema
| Name | Type | Description |
|---|---|---|
agent_key_hash* | string | Agent key hash of the agent to check |
Identity Stubs
Create and enrich anonymous identity stubs for humans. Stubs let agents build trait profiles from text, structured data, and social links before the human claims their identity.
create_identity_stubFreeCreate an anonymous identity stub for a human. IMPORTANT: You must present ~Alter's privacy notice to the human and get their acknowledgment BEFORE calling this tool. Set consent_acknowledged=true only after the human confirms. Returns a stub_id and claim_code. Stub enters 3-day pending state - traits computed but NOT searchable until human claims. Unclaimed stubs auto-delete. No PII stored. Your identity earns while you sleep.
Input Schema
| Name | Type | Description |
|---|---|---|
source* | string | Identifier of the bot/agent creating the stub |
consent_acknowledged* | boolean | Must be true. Confirms the human has been shown ~Alter's privacy notice and acknowledged data processing. |
erc8004_agent_id | string | Optional ERC-8004 agent ID. ~Alter proves the human; ERC-8004 proves the agent. Together they form the complete identity stack for agent commerce. |
Example
{
"request": {
"source": "recruiting-bot-v2",
"consent_acknowledged": true
},
"response": {
"stub_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"claim_code": "ALT-K7X9M2",
"claim_url": "https://truealter.com/claim/ALT-K7X9M2",
"expires_at": "2026-04-10T00:00:00Z",
"status": "pending"
}
}Earnings & Network
Query Identity Income earnings, transaction summaries, and aggregate network statistics. The data subject earns from every x402 query.
get_identity_earningsFreeGet accrued Identity Income earnings for an individual. Returns total earned, pending amount, transaction count, and unique organisations that have queried this identity. 75% of every x402 transaction is paid to the data subject as compensation. Earnings depend on network activity and profile completeness.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the individual |
get_network_statsFreeGet aggregate ~Alter network statistics: total identities, verified profiles, query volume, active bots. Free.
Matching & Traits
Extract traits from text, retrieve trait vectors, compute belonging probability, generate match recommendations, and produce human-readable match narratives.
query_matchesFreeQuery matches for an individual. Returns a list of matches with quality tiers (never numeric scores - per ~Alter policy individuals see tier labels only).
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the individual |
quality_filter | string | Optional filter by match quality tier. One of: exceptional, strong, moderate, developing |
limit | integer | Maximum number of matches to return (default 10) |
get_competenciesFreeGet an individual's competency portfolio including verified competencies, evidence records, and earned badges.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the individual |
get_trait_snapshot$0.01Get the top 5 traits for an individual with confidence scores and archetype. x402 payment required: $0.01 per invocation. 75% of each payment accrues to the data subject; indicative only, server-authoritative at settlement.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the individual |
get_full_trait_vector$0.10Get the complete trait vector for an individual - all 33 traits with scores, confidence intervals, and category groupings. x402 payment required: $0.10 per invocation.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the individual |
compute_belonging$0.60Compute belonging probability for an individual-context pairing. Returns authenticity, acceptance, and complementarity components with a tier label. x402 payment required: $0.60 per invocation.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the individual |
job_id* | string | UUID of the context requirement |
Example
{
"request": {
"member_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"job_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901"
},
"response": {
"belonging_tier": "strong",
"components": {
"authenticity": 0.78,
"acceptance": 0.82,
"complementarity": 0.71
},
"confidence": 0.74,
"member_pseudonym": "ALT-7X9K"
}
}get_match_recommendations$1.00Get top N match recommendations for an individual, ranked by composite score. Returns quality tiers and belonging components. x402 payment required: $1.00 per invocation.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the individual |
limit | integer | Maximum number of recommendations (default 5, max 20) |
generate_match_narrative$1.00Generate a human-readable narrative explaining a specific match - strengths, growth areas, and belonging components. Requires an LLM provider. x402 payment required: $1.00 per invocation.
Input Schema
| Name | Type | Description |
|---|---|---|
match_id* | string | UUID of the match to explain |
query_field$1.00Query the identity field by situation, not by name. Your agent weights 3 to 7 traits from the canonical vocabulary, the matching engine ranks the opted-in field with no model in the loop, and the call returns a tier label plus a short narrative. One call reveals one top-ranked opted-in member; that member earns 75% as Identity Income. Zero-match reveals nothing and charges nothing. x402 payment required: $1.00 per invocation.
Input Schema
| Name | Type | Description |
|---|---|---|
trait_priorities* | object | Weighted target profile as {trait_code: weight}. Keys must be canonical trait codes (call describe_traits for the list and semantics). Weights are relative emphasis from 0 to 1, never negative. Pick 3 to 7 traits; 10 is the hard cap. |
context | string | Optional discovery context: one of peer_recognition, collaboration_fit, co_founder_signal. The workforce contexts strip emotion-adjacent traits per EU AI Act Art 5(1)(f). |
exclude_member_ids | array | Pagination cursor. Pass back the member_ids already revealed to reveal the next-ranked member not in that set. |
describe_traitsFreeList the canonical trait vocabulary: 30 trait codes grouped by category with one-line semantics, plus the valid discovery contexts and the EU AI Act Art 5(1)(f) workforce gating rules. Read this before composing query_field trait_priorities or create_requirement trait_criteria. Static reference data. Free, no authentication required.
attest_domain$0.01Create a competence attestation for a person in a specific domain (e.g. 'software_engineering', 'brewing'), weighted by your agent reputation - updates the person's multi-domain competency graph. x402 payment required: $0.01 per invocation. 75% goes to the data subject.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the member to attest |
domain_label* | string | Domain of competence (e.g. 'software_engineering', 'brewing', 'ultrarunning'). Lowercase letters, digits, hyphens and underscores only. |
confidence | number | Confidence in the attestation (0.0-1.0) |
evidence_type | string | How the competence was evidenced. One of: OBSERVED, INFERRED, REPORTED |
dispute_attestationFreeRecord a dispute against a competence attestation on a person's identity - if disputes exceed corroborations, the attestation is flagged for review. Free.
Input Schema
| Name | Type | Description |
|---|---|---|
attestation_id* | string | UUID of the attestation to dispute |
reason* | string | Reason for disputing this attestation |
get_side_quest_graph$0.10Get a person's multi-domain competency graph (Side Quest Graph) - all attested domains, the connections between them, and trust scores, with differential privacy noise applied to all numeric values. x402 payment required: $0.10 per invocation. 75% goes to the data subject.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the member |
include_edges | boolean | Include pursuit edges between domains (default true) |
min_confidence | number | Minimum confidence threshold for domains (default 0.0) |
query_graph_similarity$0.30Compare two people's multi-domain competency graphs for team composition analysis - returns domain overlap, pattern similarity, and complementarity scores with differential privacy noise. x402 payment required: $0.30 per invocation. 75% goes to both data subjects.
Input Schema
| Name | Type | Description |
|---|---|---|
member_a_id* | string | UUID of the first member |
member_b_id* | string | UUID of the second member |
Utility
Helper tools for discovery and integration guidance.
hello_agentFreeFirst handshake with ~alter. Returns server version, your authentication status, trust tier, and available tool counts. Call this once to confirm your connection works before making other calls. No parameters required.
get_startedFreeA one-call orientation to ~alter for an agent meeting the rails for the first time - what ~alter is, the free starting set (create your identity, look up a ~handle, see who you match, browse the 12 archetypes), an honest note that most depth is paid per query in USDC over x402 with prices read live, and the consent path that gates deeper third-party data. Static reference data, no authentication required.
get_privacy_budgetFreeCheck how much of a person's differential-privacy budget remains before querying sensitive trait data - returns the 24-hour rolling window: total budget, amount spent, remaining epsilon, and query count. Free.
Input Schema
| Name | Type | Description |
|---|---|---|
member_id* | string | UUID of the member |
Calling a Tool
All tools are invoked via the tools/call JSON-RPC method. Include the tool name and arguments object. For transport and connection details, see the MCP overview. For read-only data access, see MCP Resources.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "verify_identity",
"arguments": {
"member_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"claims": {
"archetype": "Pragmatist",
"min_engagement_level": 2
}
}
}
}