{"name":"io.github.antoinedelorme/kweenkl-mcp","slug":"antoinedelorme-kweenkl-mcp","title":null,"description":"Push notifications for AI agents - send instant iPhone notifications from any MCP client.","url":"https://mcp.market/server/antoinedelorme-kweenkl-mcp","rating":null,"grade":"B","score":79,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":14,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-06-05T21:05:09.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T05:35:45.245Z","last_ok_at":"2026-11-04T05:35:45.245Z","latency_ms":48},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/antoinedelorme/kweenkl-mcp","website":"https://kweenkl.com","version":"1.1.0","remotes":[{"type":"streamable-http","url":"https://api.kweenkl.com/mcp","headers":[{"description":"kweenkl device token (from the iOS app settings). Optional — only needed for channel management tools; sending notifications works with a channel webhook token, and OAuth login is also supported.","isSecret":true,"name":"X-Kweenkl-Device-Token"}]}],"packages":[],"tools":[{"name":"fetch","description":"Fetch details about a specific kweenkl channel or notification by ID.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the channel or notification to fetch"},"type":{"type":"string","enum":["channel","notification"],"description":"Type of resource to fetch: 'channel' or 'notification'"}},"required":["id","type"]}},{"name":"kweenkl","description":"Send a push notification using kweenkl. The verb 'kweenkl' means to send a notification. Use this to notify users about important events, updates, or information that requires immediate attention.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"webhook_token":{"type":"string","description":"The webhook token for your kweenkl channel. Format: UUID-like string. Can be found in the kweenkl iOS app by opening a channel and viewing 'Channel Info'."},"message":{"type":"string","description":"The notification message content. Should be clear, concise, and actionable. Maximum recommended length: 500 characters for optimal mobile display."},"title":{"type":"string","description":"Optional title for the notification. Should be brief (max 50 chars recommended). If omitted, only the message will be shown."},"priority":{"type":"string","enum":["low","normal","high"],"description":"Priority level for the notification. 'high' = urgent/critical alerts, 'normal' = standard updates (default), 'low' = non-urgent information."},"payload":{"type":"object","description":"Optional custom JSON payload for additional metadata. Can include any structured data that your app might process (e.g., action buttons, deep links, custom data)."},"glance":{"type":"object","description":"Optional structured visualization rendered as a card inside the kweenkl iOS app. Must include a 'type' field. v1 supports type='line_chart' with required fields {labels: string[], values: number[]} (same length, ≥2 points) and optional fields {subtitle, accent (#hex), comment, x_label, y_label}. Example: {type:'line_chart', subtitle:'Évolution 2015→2024', labels:['2015','2016','2017'], values:[670,720,780], accent:'#ff6b6b', comment:'tendance haussière'}","properties":{"type":{"type":"string","enum":["line_chart"],"description":"Glance card type. Currently only 'line_chart' is supported."},"subtitle":{"type":"string","description":"Small text under the title."},"labels":{"type":"array","items":{"type":"string"},"description":"X-axis labels (same length as values, ≥2)."},"values":{"type":"array","items":{"type":"number"},"description":"Y-axis numeric values (same length as labels, ≥2)."},"accent":{"type":"string","description":"Hex color for the line, e.g. '#ff6b6b'. Defaults to coral if omitted or invalid."},"comment":{"type":"string","description":"Optional annotation displayed near the delta badge."},"x_label":{"type":"string","description":"Optional X-axis title."},"y_label":{"type":"string","description":"Optional Y-axis title."}},"required":["type"]}},"required":["webhook_token","message"]}},{"name":"kweenkl_login","description":"Start the kweenkl login/onboarding flow. If the user provides their device_token (from the iOS app), this will immediately create their webhook. Otherwise, guides them to download the app or join the waitlist.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"device_token":{"type":"string","description":"The user's device token from the kweenkl iOS app. If provided, immediately creates a webhook for them."},"has_app":{"type":"boolean","description":"Whether the user already has the kweenkl iOS app installed. If true and no device_token, starts device auth flow."},"email":{"type":"string","description":"User's email address for waitlist subscription (only used if has_app is false)"}},"required":[]}},{"name":"kweenkl_login_check","description":"Check the status of a device authorization flow. Call this after kweenkl_login to see if the user has approved the connection in their iOS app.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"session_id":{"type":"string","description":"The session ID returned from kweenkl_login"}},"required":["session_id"]}},{"name":"kweenkl_status","description":"Check kweenkl server connectivity and status. Use this to verify the connection is working before sending notifications. No authentication required.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[]}},{"name":"search","description":"Search kweenkl notification channels and messages. Use this to find channels by name or search through notification history.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query to find channels or notifications"}},"required":["query"]}}],"scan":{"score":79,"grade":"B","scanned_at":"2026-09-27T12:15:06.392Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T12:15:06.421Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 209ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":8,"max":15,"notes":["last push 114 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://api.kweenkl.com/mcp","reachable":true,"authRequired":false,"latencyMs":209,"serverInfo":{"name":"kweenkl","version":"1.1.0"}}],"packages":[],"repo":{"found":true,"owner":"antoinedelorme","repo":"kweenkl-mcp","archived":false,"pushedAt":"2026-06-05T21:05:09Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/19636972?v=4","ownerCreatedAt":"2016-05-29T17:16:53Z","license":"MIT"},"icon":{"url":"https://kweenkl.com/kweenkl-logo.png","source":"site","width":1024,"height":1024},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-06-05T21:05:09.000Z","score":14}}}},"grade_history":[],"reviews":[]}