[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6E2FM7YH9AVR2GZ7RHSCJZE":3,"skill-same:01M6E2FM7YH9AVR2GZ7RHSCJZE":86},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":28,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":13,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":61,"install":62,"resources":75},"01M6E2FM7YH9AVR2GZ7RHSCJZE","onesignal_rest_api-automation",null,"Automate OneSignal tasks via Rube MCP (Composio): push notifications, segments, templates, and messaging. Always search tools first for current schemas.","7dvq6yrkgs-stack\u002Fplaywright","7dvq6yrkgs-stack","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F251638143?v=4","01M6E061J2AMGWYZ6TK7Y8NM74","01M6E061PQCQJGQMPBERMCFN5G",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fonesignal_rest_api-automation\u002FSKILL.md",[17,22,25],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"automation","rest api","onesignal rest api automation","REST","api","via","MCP","push notifications","composio","automate","first","Tools","templates","notifications","messaging","search","push","tasks","2026-11-10 10:12:30",false,"---\nname: onesignal_rest_api-automation\ndescription: \"Automate OneSignal tasks via Rube MCP (Composio): push notifications, segments, templates, and messaging. Always search tools first for current schemas.\"\nrequires:\n  mcp: [rube]\n---\n\n# OneSignal Automation via Rube MCP\n\nAutomate OneSignal operations through Composio's OneSignal toolkit via Rube MCP.\n\n**Toolkit docs**: [composio.dev\u002Ftoolkits\u002Fonesignal_rest_api](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fonesignal_rest_api)\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active OneSignal connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `onesignal_rest_api`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `onesignal_rest_api`\n3. If connection is not ACTIVE, follow the returned auth link to complete setup\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Tool Discovery\n\nAlways discover available tools before executing workflows:\n\n```\nRUBE_SEARCH_TOOLS: queries=[{\"use_case\": \"push notifications, segments, templates, and messaging\", \"known_fields\": \"\"}]\n```\n\nThis returns:\n- Available tool slugs for OneSignal\n- Recommended execution plan steps\n- Known pitfalls and edge cases\n- Input schemas for each tool\n\n## Core Workflows\n\n### 1. Discover Available OneSignal Tools\n\n```\nRUBE_SEARCH_TOOLS:\n  queries:\n    - use_case: \"list all available OneSignal tools and capabilities\"\n```\n\nReview the returned tools, their descriptions, and input schemas before proceeding.\n\n### 2. Execute OneSignal Operations\n\nAfter discovering tools, execute them via:\n\n```\nRUBE_MULTI_EXECUTE_TOOL:\n  tools:\n    - tool_slug: \"\u003Cdiscovered_tool_slug>\"\n      arguments: {\u003Cschema-compliant arguments>}\n  memory: {}\n  sync_response_to_workbench: false\n```\n\n### 3. Multi-Step Workflows\n\nFor complex workflows involving multiple OneSignal operations:\n\n1. Search for all relevant tools: `RUBE_SEARCH_TOOLS` with specific use case\n2. Execute prerequisite steps first (e.g., fetch before update)\n3. Pass data between steps using tool responses\n4. Use `RUBE_REMOTE_WORKBENCH` for bulk operations or data processing\n\n## Common Patterns\n\n### Search Before Action\nAlways search for existing resources before creating new ones to avoid duplicates.\n\n### Pagination\nMany list operations support pagination. Check responses for `next_cursor` or `page_token` and continue fetching until exhausted.\n\n### Error Handling\n- Check tool responses for errors before proceeding\n- If a tool fails, verify the connection is still ACTIVE\n- Re-authenticate via `RUBE_MANAGE_CONNECTIONS` if connection expired\n\n### Batch Operations\nFor bulk operations, use `RUBE_REMOTE_WORKBENCH` with `run_composio_tool()` in a loop with `ThreadPoolExecutor` for parallel execution.\n\n## Known Pitfalls\n\n- **Always search tools first**: Tool schemas and available operations may change. Never hardcode tool slugs without first discovering them via `RUBE_SEARCH_TOOLS`.\n- **Check connection status**: Ensure the OneSignal connection is ACTIVE before executing any tools. Expired OAuth tokens require re-authentication.\n- **Respect rate limits**: If you receive rate limit errors, reduce request frequency and implement backoff.\n- **Validate schemas**: Always pass strictly schema-compliant arguments. Use `RUBE_GET_TOOL_SCHEMAS` to load full input schemas when `schemaRef` is returned instead of `input_schema`.\n\n## Quick Reference\n\n| Operation | Approach |\n|-----------|----------|\n| Find tools | `RUBE_SEARCH_TOOLS` with OneSignal-specific use case |\n| Connect | `RUBE_MANAGE_CONNECTIONS` with toolkit `onesignal_rest_api` |\n| Execute | `RUBE_MULTI_EXECUTE_TOOL` with discovered tool slugs |\n| Bulk ops | `RUBE_REMOTE_WORKBENCH` with `run_composio_tool()` |\n| Full schema | `RUBE_GET_TOOL_SCHEMAS` for tools with `schemaRef` |\n\n> **Toolkit docs**: [composio.dev\u002Ftoolkits\u002Fonesignal_rest_api](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fonesignal_rest_api)\n","# OneSignal Automation via Rube MCP\n\nAutomate OneSignal operations through Composio's OneSignal toolkit via Rube MCP.\n\n**Toolkit docs**: [composio.dev\u002Ftoolkits\u002Fonesignal_rest_api](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fonesignal_rest_api)\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active OneSignal connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `onesignal_rest_api`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `onesignal_rest_api`\n3. If connection is not ACTIVE, follow the returned auth link to complete setup\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Tool Discovery\n\nAlways discover available tools before executing workflows:\n\n```\nRUBE_SEARCH_TOOLS: queries=[{\"use_case\": \"push notifications, segments, templates, and messaging\", \"known_fields\": \"\"}]\n```\n\nThis returns:\n- Available tool slugs for OneSignal\n- Recommended execution plan steps\n- Known pitfalls and edge cases\n- Input schemas for each tool\n\n## Core Workflows\n\n### 1. Discover Available OneSignal Tools\n\n```\nRUBE_SEARCH_TOOLS:\n  queries:\n    - use_case: \"list all available OneSignal tools and capabilities\"\n```\n\nReview the returned tools, their descriptions, and input schemas before proceeding.\n\n### 2. Execute OneSignal Operations\n\nAfter discovering tools, execute them via:\n\n```\nRUBE_MULTI_EXECUTE_TOOL:\n  tools:\n    - tool_slug: \"\u003Cdiscovered_tool_slug>\"\n      arguments: {\u003Cschema-compliant arguments>}\n  memory: {}\n  sync_response_to_workbench: false\n```\n\n### 3. Multi-Step Workflows\n\nFor complex workflows involving multiple OneSignal operations:\n\n1. Search for all relevant tools: `RUBE_SEARCH_TOOLS` with specific use case\n2. Execute prerequisite steps first (e.g., fetch before update)\n3. Pass data between steps using tool responses\n4. Use `RUBE_REMOTE_WORKBENCH` for bulk operations or data processing\n\n## Common Patterns\n\n### Search Before Action\nAlways search for existing resources before creating new ones to avoid duplicates.\n\n### Pagination\nMany list operations support pagination. Check responses for `next_cursor` or `page_token` and continue fetching until exhausted.\n\n### Error Handling\n- Check tool responses for errors before proceeding\n- If a tool fails, verify the connection is still ACTIVE\n- Re-authenticate via `RUBE_MANAGE_CONNECTIONS` if connection expired\n\n### Batch Operations\nFor bulk operations, use `RUBE_REMOTE_WORKBENCH` with `run_composio_tool()` in a loop with `ThreadPoolExecutor` for parallel execution.\n\n## Known Pitfalls\n\n- **Always search tools first**: Tool schemas and available operations may change. Never hardcode tool slugs without first discovering them via `RUBE_SEARCH_TOOLS`.\n- **Check connection status**: Ensure the OneSignal connection is ACTIVE before executing any tools. Expired OAuth tokens require re-authentication.\n- **Respect rate limits**: If you receive rate limit errors, reduce request frequency and implement backoff.\n- **Validate schemas**: Always pass strictly schema-compliant arguments. Use `RUBE_GET_TOOL_SCHEMAS` to load full input schemas when `schemaRef` is returned instead of `input_schema`.\n\n## Quick Reference\n\n| Operation | Approach |\n|-----------|----------|\n| Find tools | `RUBE_SEARCH_TOOLS` with OneSignal-specific use case |\n| Connect | `RUBE_MANAGE_CONNECTIONS` with toolkit `onesignal_rest_api` |\n| Execute | `RUBE_MULTI_EXECUTE_TOOL` with discovered tool slugs |\n| Bulk ops | `RUBE_REMOTE_WORKBENCH` with `run_composio_tool()` |\n| Full schema | `RUBE_GET_TOOL_SCHEMAS` for tools with `schemaRef` |\n\n> **Toolkit docs**: [composio.dev\u002Ftoolkits\u002Fonesignal_rest_api](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fonesignal_rest_api)\n",{"name":5,"requires":52,"description":7},{"mcp":53},[54],"rube","main","a2e3284ed4488780397ee2f78217366e11470dfb","skills\u002Fonesignal_rest_api-automation","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright","https:\u002F\u002Fplaywright.dev","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack","2026-04-25 06:04:45",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add 7dvq6yrkgs-stack\u002Fplaywright --skill onesignal_rest_api-automation",{"tool":68,"command":69},"bunx","bunx skills add 7dvq6yrkgs-stack\u002Fplaywright --skill onesignal_rest_api-automation",{"tool":71,"command":72},"pnpm","pnpm dlx skills add 7dvq6yrkgs-stack\u002Fplaywright --skill onesignal_rest_api-automation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fonesignal_rest_api-automation\u002FSKILL.md",true,[76,82],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},".skillfish.json","REFERENCE","参考文档",277,"https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fonesignal_rest_api-automation\u002F.skillfish.json",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"README.md",589,"https:\u002F\u002Fgithub.com\u002Frunecraftai\u002Farcanum\u002Fblob\u002Fmain\u002Fpackages\u002Fspells\u002Fskills\u002Ftest-driven-development\u002FREADME.md",[87,103,113,123,138,153],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":101,"publishedAt":47},"01M6E3XK4PRPMQHM7Y98FQPTY1","zyte-api-automation","Automate Zyte API tasks via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzyte-api-automation\u002FSKILL.md",[93,94,95,96],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[102,33,29,35,46,44,40,39,38,37,34],"zyte api automation",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":111,"publishedAt":47},"01M6E3XFX6QSTR1QR59NFXJTMA","zylvie-automation","Automate Zylvie tasks via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzylvie-automation\u002FSKILL.md",[109,110],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},[112,29,38,35,46,44,40,39,37,34],"zylvie automation",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":121,"publishedAt":47},"01M6E3XCX2GDYYCHN58ZJHT37M","zoominfo-automation","Automate Zoominfo tasks via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzoominfo-automation\u002FSKILL.md",[119,120],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},[122,29,44,40,39,38,37,34,46,35],"zoominfo automation",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":131,"publishedAt":47},"01M6E3X9WJ2T73216WQHHTB9BD","zoho_mail-automation","Automate Zoho Mail tasks via Rube MCP (Composio): email sending, folders, labels, and mailbox management. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzoho_mail-automation\u002FSKILL.md",[129,130],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},[132,133,134,29,35,46,44,135,40,39,38,136,37,137,34],"mail","zoho mail automation","zoho","email","management","mailbox",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":149,"publishedAt":47},"01M6E3X719W648XZBW1EC6JQ64","zoho_invoice-automation","Automate Zoho Invoice tasks via Rube MCP (Composio): invoices, estimates, expenses, clients, and payment tracking. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzoho_invoice-automation\u002FSKILL.md",[144,145,146],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":147,"categoryName":148,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000040","财务",[150,134,29,46,44,40,39,38,151,152,37,34,35],"zoho invoice automation","tracking","payment",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":161,"publishedAt":47},"01M6E3X28JYTC3QTK32AQF7BYB","zoho_inventory-automation","Automate Zoho Inventory tasks via Rube MCP (Composio): items, orders, warehouses, shipments, and stock management. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002F7dvq6yrkgs-stack\u002Fplaywright\u002Fblob\u002Fmain\u002Fskills\u002Fzoho_inventory-automation\u002FSKILL.md",[159,160],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":26,"categoryName":27,"taxonomyType":20,"taxonomyTypeDesc":21},[29,162,134,163,39,38,40,44,46,35,37,34,164,165,136],"inventory","zoho inventory automation","stock","orders"]