ShortlistLens
Structured website and review evidence for AI-assisted local-business shortlisting.
Crawler Summary
AI-native performance profiling for iOS and macOS apps. Profile while you use the app — start/stop recording, simulator control, scenario automation, all through Xcode Instruments via MCP. InstrumentsMCP <p align="center"> <img src="instruments-cover.png" alt="InstrumentsMCP" width="720" /> </p> <p align="center"> <a href="https://www.npmjs.com/package/instrumentsmcp"><img src="https://img.shields.io/npm/v/instrumentsmcp" alt="npm"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a> <a href="https://nodejs.org"><img src="https://img.shields.io/bad Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
instrumentsmcp is best for mcp, instruments, xctrace workflows where MCP compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB MCP, runtime-metrics, public facts pack
AI-native performance profiling for iOS and macOS apps. Profile while you use the app — start/stop recording, simulator control, scenario automation, all through Xcode Instruments via MCP. InstrumentsMCP <p align="center"> <img src="instruments-cover.png" alt="InstrumentsMCP" width="720" /> </p> <p align="center"> <a href="https://www.npmjs.com/package/instrumentsmcp"><img src="https://img.shields.io/npm/v/instrumentsmcp" alt="npm"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a> <a href="https://nodejs.org"><img src="https://img.shields.io/bad
Public facts
4
Change events
1
Artifacts
0
Freshness
Feb 25, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 25, 2026
Vendor
Nemanjavlahovic
Artifacts
0
Benchmarks
0
Last release
0.3.0
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/nemanjavlahovic/instruments-mcp-server.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Nemanjavlahovic
Protocol compatibility
MCP
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
bash
instrumentsmcp record --process MyApp --template "Time Profiler"
text
Recording: Time Profiler
Target: MyApp
Interact with your app. Press Ctrl+C to stop.
^C
Stopping recording...
Recording stopped (23.4s)
{
"hotspots": [
{ "function": "FeedViewModel.loadItems()", "selfPercent": 18.3, "severity": "critical" }
],
"summary": "Hottest function: FeedViewModel.loadItems() (18.3% CPU)."
}
Trace saved: ~/.instruments-mcp/traces/profile-1234567890.trace
Re-analyze: Tell your AI agent "Analyze the trace at ~/.instruments-mcp/traces/..."text
You: "Start profiling my app for CPU while I test the feed"
Agent: calls start_profiling({ process: "MyApp", template: "Time Profiler" })
Agent: "Recording started. Go ahead — scroll, tap, navigate. Tell me when you're done."
... you scroll the feed, open a detail view, go back ...
You: "Done"
Agent: calls stop_profiling()
Agent: "Found 3 issues:
1. FeedViewModel.loadItems() — 18.3% CPU (critical)
2. DateFormatter created on every cell (warning)
3. CGPath recreation in card corners — 10K allocations in 15s (warning)"text
You: "Profile CPU while navigating through the onboarding flow"
Agent: calls profile_scenario({
bundle_id: "com.example.MyApp",
template: "Time Profiler",
duration: "20s",
scenario: [
{ action: "launch" },
{ action: "wait", seconds: 2 },
{ action: "open_url", url: "myapp://onboarding/step1" },
{ action: "wait", seconds: 3 },
{ action: "open_url", url: "myapp://onboarding/step2" },
{ action: "wait", seconds: 3 },
{ action: "screenshot", label: "step2" }
]
})text
You: "Check my app for memory leaks"
Agent: calls profile_leaks({ process: "MyApp", duration: "30s" })json
{
"hotspots": [
{
"function": "FeedViewModel.loadItems()",
"module": "MyApp",
"selfPercent": 18.3,
"totalPercent": 24.1,
"severity": "critical"
}
],
"severity": "critical",
"summary": "Hottest function: FeedViewModel.loadItems() (18.3% CPU). 3 user-code hotspots identified."
}Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
AI-native performance profiling for iOS and macOS apps. Profile while you use the app — start/stop recording, simulator control, scenario automation, all through Xcode Instruments via MCP. InstrumentsMCP <p align="center"> <img src="instruments-cover.png" alt="InstrumentsMCP" width="720" /> </p> <p align="center"> <a href="https://www.npmjs.com/package/instrumentsmcp"><img src="https://img.shields.io/npm/v/instrumentsmcp" alt="npm"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a> <a href="https://nodejs.org"><img src="https://img.shields.io/bad
AI-native performance profiling for iOS and macOS apps.
InstrumentsMCP gives AI agents the ability to record Instruments traces while you use your app, parse the results, and tell you exactly what's slow — without you opening Instruments once.
"Start profiling while I scroll the feed" → you scroll → "Stop" → structured findings with severity ratings → AI suggests the fix
The fastest way to profile. Open a terminal, run one command, use your app, hit Ctrl+C:
instrumentsmcp record --process MyApp --template "Time Profiler"
Recording: Time Profiler
Target: MyApp
Interact with your app. Press Ctrl+C to stop.
^C
Stopping recording...
Recording stopped (23.4s)
{
"hotspots": [
{ "function": "FeedViewModel.loadItems()", "selfPercent": 18.3, "severity": "critical" }
],
"summary": "Hottest function: FeedViewModel.loadItems() (18.3% CPU)."
}
Trace saved: ~/.instruments-mcp/traces/profile-1234567890.trace
Re-analyze: Tell your AI agent "Analyze the trace at ~/.instruments-mcp/traces/..."
No AI needed for timing — you control when to start and stop. Then feed the trace to your agent for deeper analysis and code fixes.
The agent controls the recording while you interact with the app:
You: "Start profiling my app for CPU while I test the feed"
Agent: calls start_profiling({ process: "MyApp", template: "Time Profiler" })
Agent: "Recording started. Go ahead — scroll, tap, navigate. Tell me when you're done."
... you scroll the feed, open a detail view, go back ...
You: "Done"
Agent: calls stop_profiling()
Agent: "Found 3 issues:
1. FeedViewModel.loadItems() — 18.3% CPU (critical)
2. DateFormatter created on every cell (warning)
3. CGPath recreation in card corners — 10K allocations in 15s (warning)"
The agent gets structured JSON with severity ratings and suggests code fixes — all from real usage, not an idle app sitting there doing nothing.
For repeatable tests, define a scenario with deep links and the agent drives the simulator while Instruments records:
You: "Profile CPU while navigating through the onboarding flow"
Agent: calls profile_scenario({
bundle_id: "com.example.MyApp",
template: "Time Profiler",
duration: "20s",
scenario: [
{ action: "launch" },
{ action: "wait", seconds: 2 },
{ action: "open_url", url: "myapp://onboarding/step1" },
{ action: "wait", seconds: 3 },
{ action: "open_url", url: "myapp://onboarding/step2" },
{ action: "wait", seconds: 3 },
{ action: "screenshot", label: "step2" }
]
})
Scenarios are deterministic — run the same flow before and after an optimization to measure the difference.
For quick checks, every profiling tool works standalone:
You: "Check my app for memory leaks"
Agent: calls profile_leaks({ process: "MyApp", duration: "30s" })
| Tool | What It Finds | Severity Thresholds |
|---|---|---|
| profile_cpu | CPU hotspots, per-thread utilization, severity classification | >15% self-time critical, >8% warning |
| profile_swiftui | Excessive view body re-evaluations, slow view rendering | >100 evals or >50ms critical |
| profile_memory | Memory by category, persistent vs transient, largest allocators | >50MB or >100k allocs critical |
| profile_hitches | Animation hangs with backtraces and duration classification | >1s critical, >250ms warning |
| profile_launch | App launch time, phase breakdown, cold/warm/resume detection | >1s cold critical, >500ms warm critical |
| profile_energy | Energy impact scores (0–20), per-component breakdown, thermal state | Avg ≥13 or peak ≥20 critical |
| profile_leaks | Leaked objects by type, sizes, responsible libraries | >100 leaks or >10MB total critical |
| profile_network | HTTP traffic: request counts, durations, error rates, per-domain breakdown | >10% errors or >5s response critical |
| performance_audit | Combined CPU + Hitches + Leaks + Energy + Network health check | Worst severity across all five |
| profile_raw | Any template — raw table of contents for custom analysis | — |
InstrumentsMCP can interact with iOS Simulators directly — launch apps, navigate via deep links, take screenshots, send push notifications, and more. These tools work standalone or as building blocks for profile_scenario.
| Tool | What It Does |
|---|---|
| sim_list_booted | List running simulators and their installed apps |
| sim_launch_app | Launch an app by bundle ID, returns PID |
| sim_terminate_app | Terminate a running app |
| sim_open_url | Open a URL or deep link on the simulator |
| sim_push_notification | Send a simulated push notification |
| sim_screenshot | Capture the simulator screen as PNG |
| sim_set_appearance | Toggle light/dark mode |
| sim_set_location | Set simulated GPS coordinates |
Note:
simctldoes not support tap/swipe gestures. Use deep links (sim_open_url) for navigation — your app must register URL schemes in Info.plist. For automated UI interaction, pair InstrumentsMCP with XcodeBuildMCP which handles the build and run side.
{
"hotspots": [
{
"function": "FeedViewModel.loadItems()",
"module": "MyApp",
"selfPercent": 18.3,
"totalPercent": 24.1,
"severity": "critical"
}
],
"severity": "critical",
"summary": "Hottest function: FeedViewModel.loadItems() (18.3% CPU). 3 user-code hotspots identified."
}
</details>
<details>
<summary><b>SwiftUI View Performance</b></summary>
{
"template": "SwiftUI",
"totalBodyEvaluations": 847,
"excessiveEvaluations": [
{
"viewName": "FeedCardView",
"evaluationCount": 156,
"averageDurationUs": 420,
"severity": "critical"
}
],
"summary": "847 total body evaluations across 23 views. 1 view with excessive re-evaluations: FeedCardView."
}
</details>
<details>
<summary><b>App Launch</b></summary>
{
"template": "App Launch",
"totalLaunchMs": 1340,
"launchType": "cold",
"severity": "critical",
"phases": [
{ "name": "Dynamic Library Loading", "durationMs": 580, "severity": "critical" },
{ "name": "UIKit Initialization", "durationMs": 310, "severity": "critical" },
{ "name": "Initial Frame Rendering", "durationMs": 290, "severity": "warning" }
],
"summary": "App launch (cold): 1340ms — CRITICAL. Target: <400ms cold, <200ms warm."
}
</details>
<details>
<summary><b>Animation Hitches</b></summary>
{
"template": "Animation Hitches",
"totalHangs": 3,
"criticalHangs": 1,
"warningHangs": 2,
"summary": "3 hang events detected. 1 CRITICAL hang (>1s). 2 warning hangs (250ms-1s). Worst hang: 1240ms."
}
</details>
| Tool | What It Does |
|---|---|
| start_profiling | Start recording a trace in the background — user interacts with the app manually |
| stop_profiling | Stop recording, parse the trace, return structured results |
| profile_scenario | Record a trace while executing a scripted scenario on a simulator |
| Tool | Template | What It Returns |
|---|---|---|
| profile_cpu | Time Profiler | Top CPU hotspots, per-thread utilization, severity classification |
| profile_swiftui | SwiftUI | View body evaluation counts, excessive re-renders, duration per view |
| profile_memory | Allocations | Memory usage by category, persistent vs transient, largest allocators |
| profile_hitches | Animation Hitches | Hang events by severity with backtraces |
| profile_launch | App Launch | Launch time, phases, cold/warm/resume classification |
| profile_energy | Energy Log | Energy impact scores, component breakdown, thermal state |
| profile_leaks | Leaks | Leaked objects by type, sizes, responsible libraries |
| profile_network | Network | HTTP request counts, durations, error rates, per-domain breakdown |
| profile_raw | Any | Raw table of contents for templates without a dedicated parser |
| performance_audit | 5 templates | Combined CPU + Hitches + Leaks + Energy + Network health check |
| Tool | What It Does |
|---|---|
| sim_list_booted | List running simulators and installed apps |
| sim_launch_app | Launch app by bundle ID |
| sim_terminate_app | Terminate a running app |
| sim_open_url | Open a URL or deep link |
| sim_push_notification | Send a simulated push notification |
| sim_screenshot | Capture simulator screen |
| sim_set_appearance | Toggle light/dark mode |
| sim_set_location | Set simulated GPS coordinates |
| Tool | What It Does |
|---|---|
| analyze_trace | Export specific tables from existing .trace files by xpath |
| symbolicate_trace | Add debug symbols so function names appear instead of addresses |
| performance_baseline | Save, compare, list, or delete performance baselines for regression tracking |
| performance_report | Generate shareable Markdown performance reports from profile results |
| Tool | What It Does |
|---|---|
| instruments_status | Check if xctrace is available and its version |
| instruments_list_templates | List all available profiling templates |
| instruments_list_devices | List connected devices and running simulators |
| instruments_list_instruments | List individual instruments |
xctrace CLI)npx instrumentsmcp@latest
Or add to your project's .mcp.json:
{
"mcpServers": {
"instruments": {
"command": "npx",
"args": ["-y", "instrumentsmcp@latest"]
}
}
}
Use the same npx command in your client's MCP server settings.
git clone https://github.com/nemanjavlahovic/instruments-mcp-server.git
cd instruments-mcp-server
npm install && npm run build
Then point your MCP client to dist/index.js.
Record a trace from any terminal — no AI agent required:
npx instrumentsmcp record --process MyApp
npx instrumentsmcp record --process MyApp --template Allocations
npx instrumentsmcp record --process MyApp --device booted --template "Time Profiler"
Press Ctrl+C to stop. Results print to stdout, trace is saved for later re-analysis.
src/
├── index.ts # MCP server entry point + CLI router
├── cli.ts # Interactive CLI mode (instrumentsmcp record)
├── tools/
│ ├── profile.ts # One-shot profiling tools (cpu, swiftui, memory, etc.)
│ ├── simulator.ts # Simulator control + start/stop + scenario profiling
│ ├── analyze.ts # Trace analysis + symbolication + performance audit
│ ├── baseline.ts # Baseline comparison + Markdown report generation
│ └── list.ts # Discovery tools (status, templates, devices)
├── parsers/ # Template-specific XML→JSON parsers with severity classification
│ ├── time-profiler.ts, swiftui.ts, allocations.ts, hangs.ts,
│ ├── app-launch.ts, energy.ts, leaks.ts, network.ts
└── utils/
├── xctrace.ts # xctrace CLI wrapper (record, export, spawn, symbolicate)
├── simctl.ts # simctl CLI wrapper (simulator interaction + device resolution)
├── trace-helpers.ts # Shared xpath resolution and timing helpers
├── extractors.ts # Shared XML row/field extractors
└── xml.ts # XML parsing (fast-xml-parser)
Each Instruments template has a dedicated parser with domain-specific heuristics. Severity thresholds are tuned per metric type. Traces are stored in ~/.instruments-mcp/traces/ for reuse and comparison.
time-sample fallback)booted, device name, UDID) are automatically resolved to simulator UDIDsMIT
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/contract"
curl -s "https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Structured website and review evidence for AI-assisted local-business shortlisting.
Loan & mortgage calculator, compound interest, ROI, crypto prices, FX conversion for AI agents.
Search ReliefWeb humanitarian reports, disasters, jobs, training, and country profiles via MCP.
63 production tools for AI agents — one API key, pay per call in USDC (x402) or Stripe credits.
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-10-09T07:40:00.500Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "instruments",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "xctrace",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "profiling",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ios",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "performance",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "xcode",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "simulator",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "simctl",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cli",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile capability:mcp|supported|profile capability:instruments|supported|profile capability:xctrace|supported|profile capability:profiling|supported|profile capability:ios|supported|profile capability:performance|supported|profile capability:xcode|supported|profile capability:simulator|supported|profile capability:simctl|supported|profile capability:cli|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Nemanjavlahovic",
"href": "https://github.com/nemanjavlahovic/instruments-mcp-server#readme",
"sourceUrl": "https://github.com/nemanjavlahovic/instruments-mcp-server#readme",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T02:58:27.702Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-25T02:58:27.702Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/mcp-nemanjavlahovic-instruments-mcp-server/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to instrumentsmcp and adjacent AI workflows.