{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-wassenger","slug":"wassenger","name":"Wassenger","type":"mcp","url":"https://github.com/wassengerhq/mcp-wassenger","page_url":"https://unfragile.ai/wassenger","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-wassenger__cap_0","uri":"capability://tool.use.integration.http.streaming.mcp.transport.with.embedded.api.key.authentication","name":"http streaming mcp transport with embedded api key authentication","description":"Enables direct HTTPS/SSE connection from modern MCP clients (Claude Desktop 0.48.0+, VS Code Copilot, OpenAI Responses API) to the Wassenger MCP server at https://api.wassenger.com/mcp without local installation. API key is embedded as URL query parameter and validated on every request, eliminating OAuth complexity for stateless clients. Uses Server-Sent Events (SSE) for bidirectional message streaming over standard HTTPS.","intents":["Connect Claude Desktop directly to WhatsApp automation without running a local proxy","Enable VS Code Copilot to send WhatsApp messages from within the editor","Integrate WhatsApp capabilities into OpenAI Responses API workflows without infrastructure setup"],"best_for":["Teams using Claude Desktop, VS Code Copilot, or Cursor with built-in HTTP streaming support","Developers wanting zero-installation MCP integration","Non-technical users deploying AI assistants without DevOps overhead"],"limitations":["API key exposed in URL query parameter — suitable only for trusted networks or short-lived tokens","No local caching or offline capability — requires persistent internet connection","SSE transport has connection timeout limits (~5-10 minutes on some proxies) for long-running operations"],"requires":["MCP client with HTTP streaming support (Claude Desktop 0.48.0+, VS Code Copilot, or equivalent)","Valid Wassenger API key from https://wassenger.com API settings","Network access to https://api.wassenger.com/mcp"],"input_types":["API key (string)","MCP tool invocations (JSON-RPC 2.0 format)"],"output_types":["MCP tool results (JSON)","SSE event stream (text/event-stream MIME type)"],"categories":["tool-use-integration","mcp-transport"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_1","uri":"capability://tool.use.integration.npx.package.stdio.to.sse.proxy.with.oauth.2.0.pkce.authentication","name":"npx package stdio-to-sse proxy with oauth 2.0 + pkce authentication","description":"Provides a local Node.js proxy (mcp-wassenger NPX package) that bridges STDIO transport from legacy MCP clients (Cline, Continue) to SSE connection with the Wassenger API. Implements OAuth 2.0 with PKCE flow for secure credential handling, using lockfile-based coordination (src/lib/coordination.ts) to prevent duplicate browser authentication flows when multiple client instances spawn the proxy simultaneously. Parses command-line arguments and manages credential lifecycle.","intents":["Enable Cline and Continue (which don't support HTTP streaming) to access WhatsApp automation","Securely authenticate multiple concurrent AI agent instances without credential duplication","Run WhatsApp automation in environments where direct HTTPS access is restricted"],"best_for":["Teams using Cline or Continue IDE extensions","Developers running multiple concurrent MCP client instances","Enterprise environments requiring OAuth-based authentication over API keys"],"limitations":["Requires Node.js 18+ installation and NPM on developer machine — adds ~50MB disk footprint","OAuth callback server binds to localhost:3000 by default — fails if port is already in use","Lockfile coordination adds ~100-200ms latency on first authentication; subsequent calls use cached tokens","STDIO transport has no built-in heartbeat — connection may hang if client process crashes without cleanup"],"requires":["Node.js 18+ (verified in package.json engines field)","NPM or equivalent package manager","Wassenger API credentials (client ID and secret for OAuth)","Network access to https://api.wassenger.com/mcp and OAuth callback endpoint"],"input_types":["Command-line arguments (API_KEY or OAuth credentials)","STDIO stream (JSON-RPC 2.0 MCP messages)"],"output_types":["STDIO stream (JSON-RPC 2.0 MCP responses)","OAuth callback HTTP responses (302 redirects)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_10","uri":"capability://tool.use.integration.mcp.tool.schema.generation.and.validation.with.type.safety","name":"mcp tool schema generation and validation with type safety","description":"Automatically generates MCP tool schemas (JSON Schema format) for all Wassenger API operations, with built-in type validation and parameter documentation. Implements schema validation on tool invocation to catch missing or invalid parameters before sending to Wassenger API. Provides TypeScript type definitions for all tool inputs/outputs, enabling IDE autocomplete and compile-time type checking.","intents":["Enable IDE autocomplete and type checking for Wassenger MCP tools in TypeScript/JavaScript clients","Validate tool parameters before sending to API, catching errors early","Generate self-documenting tool schemas for AI model clients"],"best_for":["TypeScript developers using Wassenger MCP in code editors with type support","Teams building custom MCP clients that need schema validation","Developers integrating Wassenger MCP into larger automation frameworks"],"limitations":["Schema generation is static — changes to Wassenger API require manual schema updates","Type definitions are TypeScript-only — Python or other language clients must use JSON schemas","Validation is performed client-side — server-side validation may still reject valid-looking parameters","Schema documentation is auto-generated from API specs — may lack context-specific examples"],"requires":["TypeScript 4.5+ (for type definitions)","MCP client with schema support (most modern clients)"],"input_types":["tool_name (string)","tool_parameters (object, validated against schema)"],"output_types":["validation_result (boolean)","validation_errors (array of strings, if invalid)","tool_schema (JSON Schema object)"],"categories":["tool-use-integration","code-generation-editing"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_11","uri":"capability://automation.workflow.error.handling.and.retry.logic.with.exponential.backoff","name":"error handling and retry logic with exponential backoff","description":"Implements comprehensive error handling for Wassenger API failures, including network errors, rate limiting (HTTP 429), and API errors (HTTP 4xx/5xx). Provides automatic retry logic with exponential backoff (initial delay 100ms, max delay 30s) for transient failures, with configurable retry counts. Returns detailed error messages to AI clients, distinguishing between retryable errors (rate limit, timeout) and permanent failures (invalid parameters, authentication).","intents":["Automatically retry failed WhatsApp message sends due to temporary network issues","Handle rate limiting gracefully without blocking the entire operation","Provide detailed error information to AI clients for debugging and user feedback"],"best_for":["High-volume WhatsApp automation systems that need resilience to transient failures","AI agents that need to handle API errors gracefully without crashing","Teams building production WhatsApp integrations with SLA requirements"],"limitations":["Exponential backoff adds latency for failed operations — initial retry takes ~100ms, subsequent retries up to 30s","Retry logic is client-side only — no server-side retry queue for messages that fail after all retries","Rate limit detection relies on HTTP 429 status code — some APIs may use different status codes","Retry count is configurable but defaults to 3 retries — very high failure rates may require manual intervention"],"requires":["Valid Wassenger API key","Network connectivity to Wassenger API"],"input_types":["api_request (object)","max_retries (integer, default 3)","initial_backoff_ms (integer, default 100)"],"output_types":["response (object, if successful)","error (object with: code, message, retryable, retry_after_ms)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_12","uri":"capability://automation.workflow.configuration.management.with.environment.variable.and.file.based.secrets","name":"configuration management with environment variable and file-based secrets","description":"Provides flexible configuration loading from environment variables, command-line arguments, and configuration files (.env, JSON). Implements secure credential storage with support for API keys, OAuth secrets, and webhook URLs. Validates configuration on startup and provides helpful error messages for missing or invalid settings. Supports configuration inheritance and overrides (CLI args > env vars > config files).","intents":["Configure Wassenger MCP with API keys without hardcoding credentials in code","Support multiple deployment environments (dev, staging, production) with different configurations","Manage webhook URLs and other deployment-specific settings"],"best_for":["DevOps teams deploying Wassenger MCP across multiple environments","Developers using version control without exposing secrets","Teams implementing CI/CD pipelines with environment-specific configurations"],"limitations":["Environment variables are visible in process listings — not suitable for highly sensitive secrets in shared environments","Configuration files must be manually managed — no automatic rotation or versioning","Validation is performed at startup — configuration errors are not caught until runtime","No built-in secret encryption — secrets are stored in plaintext in .env files (requires external tools like git-crypt)"],"requires":["Node.js 18+ (for environment variable access)","Optional: .env file or JSON configuration file"],"input_types":["environment variables (e.g., WASSENGER_API_KEY)","command-line arguments (e.g., --api-key)","configuration file (.env or JSON)"],"output_types":["configuration object (with validated settings)","validation errors (array of strings, if invalid)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_2","uri":"capability://tool.use.integration.whatsapp.message.sending.with.recipient.validation.and.delivery.tracking","name":"whatsapp message sending with recipient validation and delivery tracking","description":"Enables AI clients to send text messages to WhatsApp contacts or groups via the Wassenger API, with built-in recipient validation (phone number format checking, contact existence verification) and delivery status tracking. Implements message queuing to handle rate limits (typically 80 messages/minute per Wassenger account) and provides structured responses indicating success, pending, or failure states. Supports both individual chats and group messaging with automatic recipient type detection.","intents":["Send automated WhatsApp notifications from AI agents to customers or team members","Implement two-way WhatsApp chatbots that respond to incoming messages","Batch send messages to multiple recipients with delivery status monitoring"],"best_for":["Customer support teams automating WhatsApp responses","Developers building WhatsApp-integrated AI agents","Non-technical users setting up notification workflows via AI assistants"],"limitations":["Rate limited to ~80 messages/minute per Wassenger account — batch operations require client-side throttling","Message delivery is asynchronous — no guarantee of delivery within specific timeframe","WhatsApp content policies restrict certain message types (e.g., automated marketing without opt-in) — violations may result in account suspension","Recipient must have WhatsApp account and be in contact list or have interacted with sender previously"],"requires":["Active Wassenger account with WhatsApp Business API connection","Valid Wassenger API key with message sending permissions","Recipient phone number in E.164 format (e.g., +1234567890)","Recipient must have WhatsApp account and prior conversation history (for cold outreach)"],"input_types":["recipient_id (string, phone number or WhatsApp ID)","message_text (string, up to 4096 characters)","message_type (enum: text, media, template)"],"output_types":["message_id (string, unique identifier)","status (enum: sent, pending, failed)","timestamp (ISO 8601)","error_details (string, if status=failed)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_3","uri":"capability://memory.knowledge.conversation.history.retrieval.and.context.extraction","name":"conversation history retrieval and context extraction","description":"Provides AI clients with the ability to fetch and analyze WhatsApp conversation history from specific chats or groups, extracting message content, sender metadata, timestamps, and media references. Implements pagination for large conversations (typically 50-100 messages per page) and optional filtering by date range or sender. Returns structured conversation data suitable for RAG (Retrieval-Augmented Generation) pipelines or conversation analysis tasks.","intents":["Retrieve conversation context before responding to a WhatsApp message in an AI agent","Extract customer support tickets from WhatsApp group conversations for analysis","Build conversation summaries or sentiment analysis from historical message data"],"best_for":["AI agents that need conversation context to provide relevant responses","Customer support teams analyzing WhatsApp interactions","Developers building RAG systems over WhatsApp conversation data"],"limitations":["Pagination required for conversations >100 messages — client must implement loop logic","Media messages return only metadata (URL, type) not actual file content — requires separate download","Deleted messages are not retrievable — only messages still in WhatsApp database are returned","Timestamp precision is limited to seconds (not milliseconds) — may cause ordering issues for rapid message sequences"],"requires":["Valid Wassenger API key with conversation read permissions","Chat ID or group ID (obtained from conversation list or message metadata)","Optional: date range filters (ISO 8601 format)"],"input_types":["chat_id (string)","limit (integer, 1-100, default 50)","offset (integer, for pagination)","start_date (ISO 8601, optional)","end_date (ISO 8601, optional)"],"output_types":["messages (array of objects with: id, sender_id, sender_name, text, timestamp, media_type, media_url)","total_count (integer)","has_more (boolean)"],"categories":["memory-knowledge","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_4","uri":"capability://tool.use.integration.group.and.team.management.with.member.administration","name":"group and team management with member administration","description":"Enables AI clients to create WhatsApp groups, add/remove members, update group metadata (name, description, icon), and manage group permissions. Implements role-based access control (admin vs member) and provides group listing with member counts and metadata. Supports bulk member operations with error handling for invalid phone numbers or permission violations.","intents":["Automatically create WhatsApp groups for new customer cohorts or project teams","Add or remove team members from groups based on AI-driven decisions (e.g., onboarding/offboarding workflows)","Update group information (name, description) based on external data changes"],"best_for":["Teams automating WhatsApp group creation for customer segments","HR/onboarding systems integrating WhatsApp team communication","Developers building multi-tenant WhatsApp applications"],"limitations":["Group creation requires the Wassenger account to be a group admin — cannot create groups on behalf of other users","Member additions fail silently if recipient hasn't interacted with sender previously — no pre-validation available","Group icon updates require image upload via separate media endpoint — not directly supported in group update tool","WhatsApp enforces group size limits (~256 members) — bulk additions may fail at threshold without client-side validation"],"requires":["Valid Wassenger API key with group management permissions","Wassenger account must be registered as WhatsApp Business Account","For member additions: recipient phone numbers in E.164 format"],"input_types":["group_name (string, 1-60 characters)","group_description (string, optional, up to 1024 characters)","members (array of phone numbers, E.164 format)","group_id (string, for updates/deletions)"],"output_types":["group_id (string)","group_name (string)","member_count (integer)","created_at (ISO 8601)","members (array of objects with: phone_number, name, role)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_5","uri":"capability://tool.use.integration.message.template.rendering.and.sending.with.variable.substitution","name":"message template rendering and sending with variable substitution","description":"Enables AI clients to send pre-approved WhatsApp message templates (stored in Wassenger account) with dynamic variable substitution. Implements template parameter validation (ensuring required variables are provided) and supports both text templates and templates with media (images, documents). Handles template approval status checking and provides fallback to plain text if template is not approved.","intents":["Send consistent, branded WhatsApp notifications using pre-approved templates","Implement personalized customer communications (e.g., order confirmations with order ID, customer name)","Reduce message send latency by using cached templates instead of composing messages dynamically"],"best_for":["E-commerce platforms sending order confirmations and shipping updates","Customer support teams using standardized response templates","Developers building high-volume notification systems (templates are faster than plain text)"],"limitations":["Templates must be pre-created and approved by WhatsApp — approval process takes 24-48 hours","Template variables are limited to simple string substitution — no conditional logic or loops","Media in templates must be hosted on publicly accessible URLs — cannot use local files","Template parameter count is limited (typically 1-60 variables per template) — complex messages require multiple templates"],"requires":["Valid Wassenger API key with template sending permissions","Pre-approved WhatsApp message template (created in Wassenger dashboard)","Template parameter values matching template variable count and types"],"input_types":["template_name (string)","recipient_id (string, phone number)","parameters (object, key-value pairs for variable substitution)"],"output_types":["message_id (string)","status (enum: sent, pending, failed)","template_name (string)","timestamp (ISO 8601)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_6","uri":"capability://tool.use.integration.media.attachment.handling.with.url.based.delivery","name":"media attachment handling with url-based delivery","description":"Enables AI clients to send WhatsApp messages with media attachments (images, documents, audio, video) by providing publicly accessible URLs. Implements media type validation (MIME type checking), file size verification (WhatsApp limits: images 16MB, videos 100MB, documents 100MB), and URL accessibility checking before sending. Returns media metadata (type, size, URL) in message responses for tracking.","intents":["Send product images or invoices to customers via WhatsApp","Deliver audio or video content (e.g., tutorials, product demos) through WhatsApp","Attach documents (PDFs, spreadsheets) to WhatsApp messages for customer reference"],"best_for":["E-commerce platforms sending product images and invoices","Customer support teams sharing documentation or screenshots","Developers building media-rich WhatsApp applications"],"limitations":["Media must be hosted on publicly accessible URLs — cannot use private/authenticated endpoints","File size limits enforced by WhatsApp (images 16MB, videos 100MB, documents 100MB) — larger files fail silently","URL accessibility is checked at send time — broken links result in failed messages with no retry","Media downloads are not cached — each message send requires re-downloading from URL (adds latency)"],"requires":["Valid Wassenger API key with media sending permissions","Publicly accessible URL hosting the media file","Media file within WhatsApp size limits (images 16MB, videos 100MB, documents 100MB)"],"input_types":["recipient_id (string, phone number)","media_url (string, publicly accessible URL)","media_type (enum: image, video, audio, document)","caption (string, optional, max 1024 characters)"],"output_types":["message_id (string)","status (enum: sent, pending, failed)","media_type (string)","media_url (string)","timestamp (ISO 8601)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_7","uri":"capability://tool.use.integration.webhook.based.incoming.message.handling.and.event.routing","name":"webhook-based incoming message handling and event routing","description":"Provides a mechanism for Wassenger to deliver incoming WhatsApp messages and events (message received, delivery confirmation, read receipt) to AI clients via webhooks. Implements event filtering (by message type, sender, or chat), event deduplication using message IDs, and retry logic for failed webhook deliveries. Supports both webhook registration via MCP tools and direct webhook URL configuration in Wassenger dashboard.","intents":["Trigger AI agent responses when customers send WhatsApp messages","Monitor message delivery and read status for sent messages","Implement real-time WhatsApp chatbots that respond to incoming messages"],"best_for":["Developers building real-time WhatsApp chatbots","Customer support teams automating message triage and routing","Teams implementing WhatsApp-integrated AI agents with event-driven architecture"],"limitations":["Webhook delivery is asynchronous and not guaranteed — messages may arrive out of order or be duplicated","Webhook endpoint must be publicly accessible and respond within 30 seconds — long-running processing requires async handling","Event deduplication relies on message IDs — duplicate messages with same ID are filtered, but different messages may have same content","Webhook registration requires manual configuration in Wassenger dashboard or via separate API — not exposed as MCP tool in current implementation"],"requires":["Valid Wassenger API key with webhook permissions","Publicly accessible webhook endpoint (HTTPS, responds within 30 seconds)","Webhook URL registered in Wassenger dashboard or via Wassenger API"],"input_types":["webhook_event (object with: event_type, message_id, sender_id, chat_id, message_text, timestamp)"],"output_types":["HTTP 200 response (indicates successful processing)","Webhook event payload (JSON)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_8","uri":"capability://memory.knowledge.contact.list.synchronization.and.metadata.management","name":"contact list synchronization and metadata management","description":"Enables AI clients to retrieve and manage WhatsApp contact lists, including phone numbers, display names, and last interaction timestamps. Implements contact filtering (by name, phone number, or interaction date), bulk contact operations (add/remove from groups), and contact metadata updates (custom fields, tags). Provides contact search functionality with fuzzy matching for name-based lookups.","intents":["Retrieve customer contact information for personalized WhatsApp outreach","Sync WhatsApp contacts with external CRM systems","Search for specific contacts by name or phone number before sending messages"],"best_for":["CRM integrations syncing WhatsApp contacts with customer databases","Customer support teams searching for contact information","Developers building contact management features in WhatsApp applications"],"limitations":["Contact list is limited to contacts that have interacted with the Wassenger account — new contacts must send a message first","Fuzzy name matching is approximate — exact phone number matching is more reliable","Contact metadata (custom fields, tags) must be managed separately — not synchronized with WhatsApp native contact data","Bulk operations (add to group) have rate limits (~100 contacts/minute) — large contact lists require pagination"],"requires":["Valid Wassenger API key with contact read permissions","Optional: search filters (name, phone number, date range)"],"input_types":["search_query (string, optional, for name-based search)","phone_number (string, optional, E.164 format)","limit (integer, 1-100, default 50)","offset (integer, for pagination)"],"output_types":["contacts (array of objects with: phone_number, display_name, last_interaction, custom_fields)","total_count (integer)","has_more (boolean)"],"categories":["memory-knowledge","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-wassenger__cap_9","uri":"capability://automation.workflow.multi.instance.coordination.with.lockfile.based.deduplication","name":"multi-instance coordination with lockfile-based deduplication","description":"Implements a coordination mechanism (src/lib/coordination.ts 12-143) to prevent duplicate OAuth authentication flows when multiple MCP client instances spawn the mcp-wassenger NPX package simultaneously. Uses filesystem-based lockfiles to track active authentication sessions, allowing subsequent instances to wait for or reuse existing tokens. Handles lock timeout and cleanup to prevent deadlocks.","intents":["Run multiple concurrent MCP client instances (e.g., Cline + Continue) without triggering duplicate OAuth flows","Share OAuth tokens across multiple client processes to reduce authentication overhead","Prevent browser popup spam when multiple clients authenticate simultaneously"],"best_for":["Developers running multiple MCP clients concurrently (Cline + Continue, multiple VS Code instances)","Teams deploying multiple AI agent instances on the same machine","Environments with strict OAuth rate limits or browser automation constraints"],"limitations":["Lockfile coordination adds ~100-200ms latency on first authentication — subsequent calls are faster","Lockfiles are filesystem-based — only works on single machine, not distributed across multiple servers","Lock timeout is hardcoded (typically 5-10 minutes) — very long authentication flows may timeout","Lockfile cleanup is not guaranteed on process crash — manual cleanup may be required"],"requires":["Node.js 18+ (for filesystem access)","Writable filesystem (lockfiles stored in temp directory)","All instances running on same machine"],"input_types":["lock_key (string, derived from API credentials)"],"output_types":["lock_acquired (boolean)","token (string, OAuth token)","token_expiry (ISO 8601)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":33,"verified":false,"data_access_risk":"high","permissions":["MCP client with HTTP streaming support (Claude Desktop 0.48.0+, VS Code Copilot, or equivalent)","Valid Wassenger API key from https://wassenger.com API settings","Network access to https://api.wassenger.com/mcp","Node.js 18+ (verified in package.json engines field)","NPM or equivalent package manager","Wassenger API credentials (client ID and secret for OAuth)","Network access to https://api.wassenger.com/mcp and OAuth callback endpoint","TypeScript 4.5+ (for type definitions)","MCP client with schema support (most modern clients)","Valid Wassenger API key"],"failure_modes":["API key exposed in URL query parameter — suitable only for trusted networks or short-lived tokens","No local caching or offline capability — requires persistent internet connection","SSE transport has connection timeout limits (~5-10 minutes on some proxies) for long-running operations","Requires Node.js 18+ installation and NPM on developer machine — adds ~50MB disk footprint","OAuth callback server binds to localhost:3000 by default — fails if port is already in use","Lockfile coordination adds ~100-200ms latency on first authentication; subsequent calls use cached tokens","STDIO transport has no built-in heartbeat — connection may hang if client process crashes without cleanup","Schema generation is static — changes to Wassenger API require manual schema updates","Type definitions are TypeScript-only — Python or other language clients must use JSON schemas","Validation is performed client-side — server-side validation may still reject valid-looking parameters","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.5,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.6,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:04.689Z","last_scraped_at":"2026-05-03T14:00:15.503Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=wassenger","compare_url":"https://unfragile.ai/compare?artifact=wassenger"}},"signature":"UHmwoBRo6e3p6CuKndbzj+QPMHczPFRuTJVEYYS92QQ/Ugquq1wGI+6pwSfFZFDH4E/fYokuflxIVKRV8405DA==","signedAt":"2026-06-20T20:05:30.600Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/wassenger","artifact":"https://unfragile.ai/wassenger","verify":"https://unfragile.ai/api/v1/verify?slug=wassenger","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}