Skip to content
Back to ppl

Card snapshot

withppl.com · 2026-10-10 01:32:50 UTC · 916d4d3719cef7296113e94d27036b43e804db5f263eac1406b1b3bb55d8ddf9

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "ppl",
  "description": "The personal CRM for humans with AI agents. Persistent, structured relationship memory your agent can read before acting and write after acting.",
  "url": "https://withppl.com",
  "version": "1.2.2",
  "capabilities": {
    "mcp_tools": [
      "get_briefing",
      "get_wow_feed",
      "get_next_action",
      "ask_memory",
      "remember",
      "semantic_search",
      "get_person_digest",
      "get_suggested_actions",
      "log_interaction",
      "list_contacts",
      "get_contact",
      "create_contact",
      "import_contacts",
      "update_contact",
      "delete_contact",
      "merge_contacts",
      "unmerge_contacts",
      "check_duplicates",
      "find_contact_duplicates",
      "get_contact_timeline",
      "create_note",
      "list_notes",
      "get_note",
      "update_note",
      "delete_note",
      "create_task",
      "list_tasks",
      "get_task",
      "update_task",
      "complete_task",
      "delete_task",
      "create_reminder",
      "list_reminders",
      "get_reminder",
      "update_reminder",
      "delete_reminder",
      "create_journal_entry",
      "list_journal_entries",
      "get_journal_entry",
      "update_journal_entry",
      "delete_journal_entry",
      "list_calls",
      "get_call",
      "create_call",
      "update_call",
      "delete_call",
      "create_gift",
      "list_gifts",
      "get_gift",
      "update_gift",
      "delete_gift",
      "describe_schema",
      "get_voice_profile",
      "get_profile_card",
      "update_location",
      "get_nearby_contacts",
      "get_whisper_briefing",
      "im_with",
      "list_addresses",
      "create_address",
      "update_address",
      "delete_address",
      "list_relationships",
      "list_relationship_types",
      "create_relationship",
      "delete_relationship",
      "list_contact_fields",
      "update_contact_field",
      "list_places",
      "create_place",
      "update_place",
      "delete_place",
      "list_debts",
      "create_debt",
      "update_debt",
      "delete_debt",
      "list_documents",
      "upload_document",
      "delete_document",
      "list_life_events",
      "create_life_event",
      "update_life_event",
      "delete_life_event",
      "list_webhook_subscriptions",
      "create_webhook_subscription",
      "delete_webhook_subscription",
      "find_connections",
      "list_circles",
      "create_circle",
      "invite_to_circle",
      "send_message",
      "read_messages",
      "respond_to_message",
      "acknowledge_message",
      "manage_messaging_policy",
      "remove_circle_member",
      "update_circle",
      "archive_circle",
      "invite_connection",
      "accept_connection"
    ],
    "mcp_tool_count": 100,
    "api_features": [
      "one_approval_connect_flow",
      "oauth2_dynamic_client_registration",
      "contact_enrichment",
      "duplicate_detection",
      "contact_merge_with_undo",
      "relationship_health_tracking",
      "agent_inbox_work_queue",
      "signed_webhooks",
      "bulk_writes",
      "delta_sync"
    ]
  },
  "authentication": {
    "type": "bearer",
    "description": "Bearer token. MCP clients can use standard OAuth 2.0 (dynamic client registration, PKCE, refresh tokens; discover at /.well-known/oauth-protected-resource). Agents without OAuth support use the one-approval connect flow: POST /api/agent/connect/request, show the approval URL to the human, poll the status URL, and receive a scoped API token. No manual signup or key copy-paste.",
    "connect_url": "https://withppl.com/api/agent/connect/request",
    "oauth_protected_resource": "https://withppl.com/.well-known/oauth-protected-resource",
    "oauth_authorization_server": "https://withppl.com/.well-known/oauth-authorization-server",
    "scopes": [
      "agent:briefing",
      "agent:actions",
      "agent:search",
      "read:contacts",
      "write:contacts",
      "read:journal",
      "write:journal",
      "read:tasks",
      "write:tasks",
      "message:send",
      "message:read",
      "circles:read",
      "circles:write"
    ]
  },
  "endpoints": {
    "mcp": "https://withppl.com/mcp",
    "signup": "https://withppl.com/register",
    "pricing": "https://withppl.com/pricing",
    "blog": "https://withppl.com/blog",
    "agents_guide": "https://withppl.com/agents",
    "llms_txt": "https://withppl.com/llms.txt",
    "discovery": "https://withppl.com/.well-known/ppl.json",
    "openapi": "https://withppl.com/openapi.json"
  }
}