github TypeScript analyzed 9590da6

ToolingTools/SimView

github

MCP App that streams a live iOS Simulator / Android device into Codex, Cursor, and Claude Code. @Browser for mobile apps.

maintainer
ToolingTools
license
Apache-2.0
first seen
2026-09-03
last seen
2026-09-04
releases · 30d
2
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 44 tools
transport stdio · http counts 44 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • add_annotation
  • app_connect_device
  • app_enable_ui_probe
  • app_get_accessibility_tree
  • app_get_element_tree
  • app_get_element_tree_page
  • app_get_ui_context
  • app_inspect_point
  • app_list_devices
  • app_open_browser
  • app_take_screenshot
  • app_tap_element
  • clear_text
  • connect_device
  • delete_annotation
  • disable_ios_accessibility
  • enable_ios_accessibility
  • enable_ui_probe
  • find_elements
  • get_accessibility_tree
  • get_element_tree
  • get_preview_packets
  • get_simview_state
  • get_ui_context
  • inspect_point
  • list_devices
  • long_press
  • observe_screen
  • open_simview
  • perform_actions
  • perform_gesture
  • press_button
  • press_key
  • replace_text
  • save_review_images
  • search_elements
  • set_orientation
  • swipe
  • take_screenshot
  • tap
  • tap_element
  • type_text
  • update_annotation
  • wait_for_element
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 9590da6 · analyzer v33 · 20h ago

skills & prompt files 2

code evidence vv0.4.1 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 122

filesystem 39

  • fs ToolingTools-SimView-9590da6/packages/cli/src/commands.ts :2 import { writeFile } from "node:fs/promises";
  • fs ToolingTools-SimView-9590da6/packages/client/src/client.ts :2 import { chmod, mkdtemp, rm } from "node:fs/promises";
  • fs ToolingTools-SimView-9590da6/packages/client/src/daemon.ts :13 } from "node:fs/promises";
  • fs ToolingTools-SimView-9590da6/packages/client/src/mcp-daemon.ts :2 import { link, lstat, mkdir, readdir, readFile, unlink, writeFile } from "node:fs/promises";
  • fs ToolingTools-SimView-9590da6/packages/core/src/index.ts :1 import { accessSync, constants } from "node:fs";
  • fs ToolingTools-SimView-9590da6/packages/mcp/src/adapter.ts :1 import { readdir } from "node:fs/promises";
  • fs ToolingTools-SimView-9590da6/packages/mcp/src/app-assets.ts :1 import { existsSync } from "node:fs";
  • fs ToolingTools-SimView-9590da6/packages/mcp/src/daemon.ts :2 import { chmod } from "node:fs/promises";
  • fs ToolingTools-SimView-9590da6/packages/mcp/src/metro.ts :2 import { access, readFile } from "node:fs/promises";
  • fs ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2 import { readFile } from "node:fs/promises";
  • fs ToolingTools-SimView-9590da6/packages/mcp/src/session.ts :2 import { chmod, mkdtemp, rm, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/android-agent-config.ts :1 import { readFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/build-android-agent.ts :1 import { cp, mkdir, readdir, rm, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/build-probe.ts :2 import { mkdir } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/build-release.ts :1 import { cp, mkdir, rm, stat, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/build-xctest-provider.ts :1 import { cp, mkdir, mkdtemp, readdir, rm, stat, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/check-release-readiness.ts :1 import { access, readFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/check-toolchain.ts :1 import { readFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/check-version.ts :1 import { readFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/generate-sbom.ts :1 import { readFile, realpath, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/package-mcpb.ts :1 import { mkdir, rm } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/package-npm.ts :1 import { chmod, cp, mkdir, rm, stat, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/package-plugin.ts :1 import { mkdir, readFile, rm, stat, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/probe-xctest-accessibility.ts :1 import { cp, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/release-config.ts :1 import { readdir, readFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/sign-release.ts :1 import { access } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/smoke-npm-package.ts :1 import { access, copyFile, mkdir, mkdtemp, rm } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/scripts/smoke-semantic-mcp.ts :2 import { mkdtemp, rm } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/client.test.ts :2 import { mkdtemp, rm } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/daemon-registry.test.ts :3 import { chmod, lstat, mkdtemp, rm } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/distribution.test.ts :2 import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/fixtures/fake-simview-core.ts :2 import { chmod, unlink } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/mcp-daemon.test.ts :3 import { writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/mcp-tools.test.ts :2 import { stat } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/metro.test.ts :2 import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/relay-assets.test.ts :2 import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/sbom.test.ts :2 import { mkdtemp, rm } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/session-relay.test.ts :2 import { stat } from "node:fs/promises";
  • fs (weak) ToolingTools-SimView-9590da6/tests/xctest-project.test.ts :2 import { access, cp, mkdir, mkdtemp, rm } from "node:fs/promises";

shell / exec 24

  • shell ToolingTools-SimView-9590da6/packages/cli/src/commands.ts :122 const child = Bun.spawn([resolveBinary(), command], { stdout: "pipe", stderr: "pipe" });
  • shell ToolingTools-SimView-9590da6/packages/client/src/client.ts :81 const child = Bun.spawn(
  • shell ToolingTools-SimView-9590da6/packages/client/src/daemon.ts :355 const child = Bun.spawn(
  • shell ToolingTools-SimView-9590da6/packages/client/src/mcp-daemon.ts :274 child = Bun.spawn(options.command, {
  • shell ToolingTools-SimView-9590da6/packages/client/src/process-owner.ts :23 const child = Bun.spawn(
  • shell ToolingTools-SimView-9590da6/packages/client/src/runtime-directory.ts :1 import { execFileSync } from "node:child_process";
  • shell ToolingTools-SimView-9590da6/packages/mcp/src/session.ts :639 Bun.spawn(["/usr/bin/open", url], { stdout: "ignore", stderr: "ignore" });
  • shell (weak) ToolingTools-SimView-9590da6/scripts/build-android-agent.ts :114 const child = Bun.spawn(command, { stdout: "pipe", stderr: "pipe" });
  • shell (weak) ToolingTools-SimView-9590da6/scripts/build-probe.ts :35 const child = Bun.spawn(command, { stdout: "inherit", stderr: "inherit" });
  • shell (weak) ToolingTools-SimView-9590da6/scripts/build-release.ts :20 await $`bun run check`;
  • shell (weak) ToolingTools-SimView-9590da6/scripts/build-xctest-provider.ts :17 await $`xcodegen generate --spec ${join(temporaryProject, "project.yml")} --project ${temporaryProject} --quiet`;
  • shell (weak) ToolingTools-SimView-9590da6/scripts/check-toolchain.ts :23 const xcodegen = Bun.spawn(["xcodegen", "--version"], { stdout: "pipe", stderr: "pipe" });
  • shell (weak) ToolingTools-SimView-9590da6/scripts/package-mcpb.ts :12 await $`cp ${join(root, "manifest.json")} ${stage}`;
  • shell (weak) ToolingTools-SimView-9590da6/scripts/package-npm.ts :66 const pack = Bun.spawn(
  • shell (weak) ToolingTools-SimView-9590da6/scripts/package-plugin.ts :72 await $`cp -R ${join(root, ".codex-plugin")} ${join(root, ".claude-plugin")} ${stage}`;
  • shell (weak) ToolingTools-SimView-9590da6/scripts/probe-xctest-accessibility.ts :50 await $`xcodegen generate --spec ${join(temporaryProject, "project.yml")} --project ${temporaryProject} --quiet`;
  • shell (weak) ToolingTools-SimView-9590da6/scripts/sign-release.ts :28 await $`/usr/bin/codesign --force --sign ${identity} --identifier ${binary.identifier} --options runtime --timestamp ${binary.path}`;
  • shell (weak) ToolingTools-SimView-9590da6/scripts/smoke-npm-package.ts :43 const child = Bun.spawn(command, {
  • shell (weak) ToolingTools-SimView-9590da6/tests/daemon-registry.test.ts :70 const child = Bun.spawn(
  • shell (weak) ToolingTools-SimView-9590da6/tests/mcp-app.test.ts :11 const script = 'const patterns = "$& $` $\'"; const close = "</script>";';
  • shell (weak) ToolingTools-SimView-9590da6/tests/mcp-daemon.test.ts :164 const owner = Bun.spawn([process.execPath, "-e", "setInterval(() => {}, 1000)"], {
  • shell (weak) ToolingTools-SimView-9590da6/tests/mcp-lifecycle.test.ts :5 const child = Bun.spawn([process.execPath, "packages/mcp/src/index.ts"], {
  • shell (weak) ToolingTools-SimView-9590da6/tests/sbom.test.ts :11 const child = Bun.spawn([process.execPath, "scripts/generate-sbom.ts", output], {
  • shell (weak) ToolingTools-SimView-9590da6/tests/xctest-project.test.ts :30 const process = Bun.spawn(

network 9

  • net ToolingTools-SimView-9590da6/packages/app/dev.ts :6 async fetch(request) {
  • net ToolingTools-SimView-9590da6/packages/app/src/index.tsx :507 const response = await fetch("/state", {
  • net ToolingTools-SimView-9590da6/packages/client/src/mcp-daemon.ts :3 import { createConnection, type Socket } from "node:net";
  • net ToolingTools-SimView-9590da6/packages/mcp/src/adapter.ts :2 import type { Socket } from "node:net";
  • net ToolingTools-SimView-9590da6/packages/mcp/src/daemon.ts :3 import { createServer as createSocketServer, type Socket } from "node:net";
  • net ToolingTools-SimView-9590da6/packages/mcp/src/metro.ts :952 const response = await fetch(`http://${server.host}:${server.port}/symbolicate`, {
  • net ToolingTools-SimView-9590da6/packages/mcp/src/session.ts :1758 async fetch(request, server) {
  • net (weak) ToolingTools-SimView-9590da6/tests/mcp-daemon.test.ts :4 import { createConnection } from "node:net";
  • net (weak) ToolingTools-SimView-9590da6/tests/session-relay.test.ts :16 expect((await fetch(`${origin}/state`)).status).toBe(401);

tool registrations 44

  • open_simview ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1524
  • connect_device ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1561
  • enable_ios_accessibility ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1575
  • disable_ios_accessibility ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1600
  • app_connect_device ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1617
  • list_devices ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1629
  • app_list_devices ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1653
  • observe_screen ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1681
  • perform_actions ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1695
  • clear_text ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1890
  • replace_text ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1902
  • press_key ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1914
  • take_screenshot ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1935
  • app_take_screenshot ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1948
  • get_simview_state ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1960
  • set_orientation ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :1972
  • app_get_element_tree_page ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2106
  • get_element_tree ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2335
  • app_get_element_tree ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2351
  • get_accessibility_tree ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2367
  • app_get_accessibility_tree ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2383
  • find_elements ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2398
  • search_elements ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2412
  • tap_element ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2438
  • app_tap_element ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2451
  • inspect_point ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2463
  • app_inspect_point ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2478
  • get_ui_context ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2493
  • app_get_ui_context ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2506
  • enable_ui_probe ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2518
  • app_enable_ui_probe ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2539
  • wait_for_element ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2559
  • tap ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2603
  • swipe ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2613
  • perform_gesture ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2628
  • long_press ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2638
  • type_text ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2652
  • press_button ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2681
  • app_open_browser ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2700
  • save_review_images ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2716
  • get_preview_packets ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2732
  • add_annotation ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2807
  • update_annotation ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2836
  • delete_annotation ToolingTools-SimView-9590da6/packages/mcp/src/server.ts :2853

declared dependencies 10

  • @modelcontextprotocol/ext-apps@1.7.5
  • @modelcontextprotocol/sdk@1.30.0
  • preact@10.29.7
  • zod@4.4.3
  • @biomejs/biome@2.5.6
  • @testing-library/preact@3.2.4
  • @anthropic-ai/mcpb@2.1.2
  • @types/bun@1.3.14
  • happy-dom@20.11.1
  • typescript@7.0.2

cursor-plugin 1

  • opaque (low) ToolingTools-SimView-9590da6/.cursor/mcp.json bundled .cursor/ plugin descriptor (ToolingTools-SimView-9590da6/.cursor/mcp.json) — presence-detected; review the descriptor