kweenkl-mcp
Push notifications for AI agents - send instant iPhone notifications from any MCP client.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"kweenkl-mcp": {
"url": "https://api.kweenkl.com/mcp"
}
}
}リモートエンドポイント
https://api.kweenkl.com/mcpstreamable-httpできること
ツール一覧
ツール(6)
🟢kweenkl_status
Check kweenkl server connectivity and status. Use this to verify the connection is working before sending notifications. No authentication required.
入力スキーマ
{
"type": "object",
"properties": {},
"required": []
}🟡kweenkl_login(device_token, has_app, email)
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.
入力スキーマ
{
"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": []
}🟢kweenkl_login_check(session_id)
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.
入力スキーマ
{
"type": "object",
"properties": {
"session_id": {
"type": "string",
"description": "The session ID returned from kweenkl_login"
}
},
"required": [
"session_id"
]
}🟢search(query)
Search kweenkl notification channels and messages. Use this to find channels by name or search through notification history.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query to find channels or notifications"
}
},
"required": [
"query"
]
}🟢fetch(id, type)
Fetch details about a specific kweenkl channel or notification by ID.
入力スキーマ
{
"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"
]
}🟡kweenkl(webhook_token, message, title, priority, payload, ...)
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.
入力スキーマ
{
"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"
]
}コミュニティ
エビデンス