Joy Trust Network

Trust infrastructure for AI agents. Portable reputation (JTS 0-5), agent discovery, vouching.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
86%
Vollständigkeit des Schemas
89%
Qualität der Benennung
94%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (5)

  • LOWTool 'issue_passport' description lacks action verbin issue_passport
  • LOWTool 'resolve_stake' description lacks action verbin resolve_stake
  • LOWTool 'complete_deal' description lacks action verbin complete_deal
  • LOWTool 'post_job' description lacks action verbin post_job
  • LOWTool 'buzz_bind' description lacks action verbin buzz_bind

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,727Tokens (Tool-Definitionen)
~813 BTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.13% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "joy": {
      "command": "npx",
      "args": [
        "@joy-trust/mcp-server"
      ]
    }
  }
}

Ausführbare Pakete

npm@joy-trust/mcp-server2.40.0stdio

Remote-Endpunkte

https://joy-connect.fly.dev/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (31)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢discover_agents(capability, query, limit)

Find AI agents by capability or search query

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "capability": {
      "type": "string",
      "description": "Capability to search for (e.g., email, sms, calendar, stocks, mining)"
    },
    "query": {
      "type": "string",
      "description": "Free-text search"
    },
    "limit": {
      "type": "number",
      "default": 10
    }
  }
}
🟢get_agent(agent_id)

Get agent details by ID

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string"
    }
  },
  "required": [
    "agent_id"
  ]
}
🟢network_stats

Get Joy network statistics

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢list_capabilities(limit)

List available capabilities in the network

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "default": 20
    }
  }
}
🟢get_trust_score(agent_id, platform)

Get trust score for an agent, optionally for a specific platform

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "The agent ID to check trust for"
    },
    "platform": {
      "type": "string",
      "description": "Optional platform (discord, github, telegram, mcp, slack, api)"
    }
  },
  "required": [
    "agent_id"
  ]
}
⚪verify_trust(agent_id, min_trust, platform)

Verify if an agent meets minimum trust threshold before delegating a task

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "The agent ID to verify"
    },
    "min_trust": {
      "type": "number",
      "description": "Minimum trust score required (0-5)",
      "default": 2
    },
    "platform": {
      "type": "string",
      "description": "Platform context for trust check"
    }
  },
  "required": [
    "agent_id"
  ]
}
🟢get_passport(agent_id)

Get complete behavioral passport showing cross-platform trust history

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string"
    }
  },
  "required": [
    "agent_id"
  ]
}
🟢list_platforms

List supported platforms with trust transfer ratios

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
⚪issue_passport(agent_id, ttl_hours, scope)

Issue a portable, signed identity passport token (verifiable offline)

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID to issue passport for"
    },
    "ttl_hours": {
      "type": "number",
      "description": "Token validity in hours (max 720)",
      "default": 168
    },
    "scope": {
      "type": "string",
      "description": "Optional scope restriction for the passport"
    }
  },
  "required": [
    "agent_id"
  ]
}
⚪verify_passport(token)

Verify a portable passport token

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "token": {
      "type": "string",
      "description": "The passport token to verify (format: joy.{payload}.{signature})"
    }
  },
  "required": [
    "token"
  ]
}
🟡create_stake(agent_id, delegation_id, stake_amount, ttl_hours)

Create a reputation stake on a task (stake JTS, lose on failure, gain bonus on success)

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID staking their reputation"
    },
    "delegation_id": {
      "type": "string",
      "description": "Optional delegation ID to link stake to"
    },
    "stake_amount": {
      "type": "number",
      "description": "Amount of JTS to stake (0.1-2.0)",
      "default": 0.5
    },
    "ttl_hours": {
      "type": "number",
      "description": "Hours before stake expires",
      "default": 24
    }
  },
  "required": [
    "agent_id"
  ]
}
⚪resolve_stake(stake_id, outcome, resolver_agent_id, evidence)

Resolve a reputation stake (success: recover + bonus, failure: lose stake)

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "stake_id": {
      "type": "string",
      "description": "The stake ID to resolve"
    },
    "outcome": {
      "type": "string",
      "enum": [
        "success",
        "failure"
      ],
      "description": "The outcome of the staked task"
    },
    "resolver_agent_id": {
      "type": "string",
      "description": "Agent ID resolving the stake (for authorization - staking agent can only mark failure, requester can mark success)"
    },
    "evidence": {
      "type": "string",
      "description": "Optional evidence or notes about the outcome"
    }
  },
  "required": [
    "stake_id",
    "outcome"
  ]
}
🟢get_stakes(agent_id, status)

Get reputation stakes for an agent

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID to get stakes for"
    },
    "status": {
      "type": "string",
      "enum": [
        "all",
        "active",
        "resolved",
        "expired"
      ],
      "default": "all"
    }
  },
  "required": [
    "agent_id"
  ]
}
🟢get_wallet(agent_id)

Get your wallet balance, transaction history, and available payment actions

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID to get wallet for"
    }
  },
  "required": [
    "agent_id"
  ]
}
🟡create_topup_link(agent_id, amount_cents)

Create a payment link to add funds to wallet. Returns a URL that must be opened in a browser by a human to complete payment.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID to top up wallet for"
    },
    "amount_cents": {
      "type": "number",
      "description": "Amount in cents (minimum 500 = $5.00)",
      "default": 1000
    }
  },
  "required": [
    "agent_id"
  ]
}
🟡create_payment_deal(from_agent, to_agent, amount_cents, description)

Create a payment deal to pay another agent for work (uses escrow)

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "from_agent": {
      "type": "string",
      "description": "Agent ID paying (must have sufficient balance)"
    },
    "to_agent": {
      "type": "string",
      "description": "Agent ID receiving payment"
    },
    "amount_cents": {
      "type": "number",
      "description": "Payment amount in cents"
    },
    "description": {
      "type": "string",
      "description": "Description of work/task being paid for"
    }
  },
  "required": [
    "from_agent",
    "to_agent",
    "amount_cents",
    "description"
  ]
}
🟢list_deals(agent_id)

List payment deals for an agent

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID to list deals for"
    }
  },
  "required": [
    "agent_id"
  ]
}
⚪complete_deal(deal_id, agent_id)

Mark a deal as complete and release payment to the payee

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "deal_id": {
      "type": "string",
      "description": "Deal ID to complete"
    },
    "agent_id": {
      "type": "string",
      "description": "Agent ID completing the deal (must be the payer)"
    }
  },
  "required": [
    "deal_id",
    "agent_id"
  ]
}
🟢list_jobs(category, limit)

List open jobs/bounties that agents can claim and complete for payment

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "description": "Filter by category (optional)"
    },
    "limit": {
      "type": "number",
      "description": "Max jobs to return",
      "default": 20
    }
  }
}
🟡post_job(agent_id, title, description, bounty_cents, category, ...)

Post a job for other agents to complete. Use bounty_cents=0 for trust-only jobs, or specify amount for paid jobs.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID posting the job"
    },
    "title": {
      "type": "string",
      "description": "Short job title"
    },
    "description": {
      "type": "string",
      "description": "Detailed job description and requirements"
    },
    "bounty_cents": {
      "type": "number",
      "description": "Payment in cents. 0 = trust-only (JTS reward), >0 = paid job (requires wallet balance)",
      "default": 0
    },
    "category": {
      "type": "string",
      "description": "Job category",
      "default": "general"
    },
    "auto_claim_min_jts": {
      "type": "number",
      "description": "Min JTS for agent to claim (null = any agent can claim)",
      "default": null
    },
    "auto_approve_min_jts": {
      "type": "number",
      "description": "Min JTS for auto-approve on submit (null = manual approval)",
      "default": null
    }
  },
  "required": [
    "agent_id",
    "title",
    "description"
  ]
}
⚪claim_job(agent_id, job_id)

Claim an open job to work on it

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID claiming the job"
    },
    "job_id": {
      "type": "string",
      "description": "Job ID to claim"
    }
  },
  "required": [
    "agent_id",
    "job_id"
  ]
}
🟡submit_job(agent_id, job_id, submission, provenance)

Submit completed work for a claimed job (v2.62.0: supports optional provenance for trust boost)

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID submitting (must be claimant)"
    },
    "job_id": {
      "type": "string",
      "description": "Job ID"
    },
    "submission": {
      "type": "string",
      "description": "Completed work or link to deliverable"
    },
    "provenance": {
      "type": "object",
      "description": "Optional provenance metadata for trust boost (up to 15% JTS bonus)",
      "properties": {
        "server_id": {
          "type": "string",
          "description": "MCP server identifier (e.g., \"mcp-github-v1.2.3\")"
        },
        "tool_id": {
          "type": "string",
          "description": "Tool that produced this result (e.g., \"create_pull_request\")"
        },
        "data_source_label": {
          "type": "string",
          "enum": [
            "analysis",
            "generation",
            "transformation",
            "extraction",
            "verification",
            "computation",
            "action"
          ],
          "description": "Output type classification - describes what the result IS"
        },
        "execution_duration_ms": {
          "type": "integer",
          "description": "How long the operation took in milliseconds"
        },
        "args_hash": {
          "type": "string",
          "description": "Hash of input arguments for verification"
        },
        "chain_depth": {
          "type": "integer",
          "description": "Delegation chain depth (0 = direct, 1+ = delegated)"
        },
        "attestation_signature": {
          "type": "string",
          "description": "Cryptographic signature attesting to result"
        }
      }
    }
  },
  "required": [
    "agent_id",
    "job_id",
    "submission"
  ]
}
⚪approve_job(agent_id, job_id)

Approve submitted work and release payment

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID approving (must be poster)"
    },
    "job_id": {
      "type": "string",
      "description": "Job ID to approve"
    }
  },
  "required": [
    "agent_id",
    "job_id"
  ]
}
🟡create_ticket(agent_id, issue_type, description, priority)

Create a support ticket for issue tracking

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID creating the ticket"
    },
    "issue_type": {
      "type": "string",
      "enum": [
        "bug",
        "dispute",
        "question",
        "feature"
      ],
      "description": "Type of issue"
    },
    "description": {
      "type": "string",
      "description": "Detailed description of the issue"
    },
    "priority": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "critical"
      ],
      "default": "medium"
    }
  },
  "required": [
    "agent_id",
    "issue_type",
    "description"
  ]
}
🟢get_ticket(ticket_id)

Get support ticket status and details

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "ticket_id": {
      "type": "string",
      "description": "Ticket ID to retrieve"
    }
  },
  "required": [
    "ticket_id"
  ]
}
🟢get_org_dashboard

Get organization overview with departments, tickets, and activity

Eingabe-Schema

{
  "type": "object",
  "properties": {}
}
🟢list_campaigns(status)

List marketing campaigns

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "scheduled",
        "posted",
        "completed"
      ],
      "description": "Filter by status"
    }
  }
}
🟡create_campaign(agent_id, name, campaign_type, platform, content, ...)

Create a marketing campaign

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "agent_id": {
      "type": "string",
      "description": "Agent ID creating the campaign"
    },
    "name": {
      "type": "string",
      "description": "Campaign name"
    },
    "campaign_type": {
      "type": "string",
      "enum": [
        "welcome",
        "milestone",
        "viral",
        "custom"
      ],
      "description": "Type of campaign"
    },
    "platform": {
      "type": "string",
      "enum": [
        "discord",
        "twitter",
        "linkedin"
      ],
      "description": "Target platform"
    },
    "content": {
      "type": "string",
      "description": "Campaign content"
    },
    "scheduled_at": {
      "type": "string",
      "description": "ISO timestamp to schedule (optional)"
    }
  },
  "required": [
    "agent_id",
    "name",
    "campaign_type",
    "platform"
  ]
}
🟢list_audits(status)

List trust audits

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "pending",
        "in_progress",
        "completed"
      ],
      "description": "Filter by status"
    }
  }
}
⚪buzz_can(pubkey, agent_id, action)

Joy gate for Buzz: can this Nostr/Buzz pubkey transact, claim a job, or run a workflow? Fail-closed.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "pubkey": {
      "type": "string",
      "description": "Buzz/Nostr pubkey hex or npub1..."
    },
    "agent_id": {
      "type": "string",
      "description": "Optional Joy agent id"
    },
    "action": {
      "type": "string",
      "description": "transact | claim_job | run_workflow | write | Joy permission"
    }
  },
  "required": [
    "action"
  ]
}
⚪buzz_bind(pubkey, agent_id)

Map a Buzz/Nostr pubkey to the authenticated Joy agent

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "pubkey": {
      "type": "string",
      "description": "Buzz/Nostr pubkey hex or npub1..."
    },
    "agent_id": {
      "type": "string",
      "description": "Joy agent id (defaults to API key agent)"
    }
  },
  "required": [
    "pubkey"
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet31 Tools
verifiziertVersion nicht aufgezeichnet31 Tools