Boosthis

Read-only performance insights for your Boosthis projects: speed, crashes, traces, and fixes.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
80%
이름 품질
79%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'boosthis_what_should_i_look_at_next' name length outside 3-30 rangeboosthis_what_should_i_look_at_next에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~5,223토큰 (도구 정의)
~902 B일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 4.08%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "boosthis": {
      "url": "https://www.boosthis.com/mcp"
    }
  }
}

원격 엔드포인트

https://www.boosthis.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (29)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢boosthis_list_rules

Every Boosthis performance rule available to this runtime, as ids and titles. The index for boosthis_get_rule.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟢boosthis_get_rule(id, route_label, skip, skip_decided_by)

Full detail for one rule: title, when_to_apply, evidence, and - for a registered project - the fix_template. fix_available: false means no fix text is served here; fix_note says what would change that. `counterparts` names the same idea's rule in other languages; also_applies_here names the other places in THIS project it applies, with a count.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Rule id, e.g. 'split-driver-jitter'"
    },
    "route_label": {
      "type": "string",
      "description": "The route or screen being worked on, so the places listed leave out the one already open."
    },
    "skip": {
      "type": "string",
      "description": "The `part` id of one also_applies_here entry that does not need doing. Recorded permanently: never raised again for this project."
    },
    "skip_decided_by": {
      "type": "string",
      "enum": [
        "assistant",
        "developer"
      ],
      "description": "Who decided to skip it. Use 'developer' when the person said so."
    }
  },
  "required": [
    "id"
  ]
}
🟢boosthis_get_integration_kit(runtime, runtimes, install_command, include_files, files_page, ...)

A Boosthis kit for THIS project - no upload; the single-use address needs no key, include_files no shell. Withheld reply? Same kit at GET https://www.boosthis.com/api/kit/<runtime> (project key as bearer). runtimes: every runtime this project has in ONE call, same key; runtime picks one, see enum. The reply carries file_list (path + sha256), version, kit_download_once_url; install_command adds typed commands. Writing the files is not the install: the kit is wired in, reporting switched on, and the app confirmed checked in.

입력 스키마

{
  "type": "object",
  "properties": {
    "runtime": {
      "type": "string",
      "enum": [
        "rn",
        "web",
        "node",
        "bun",
        "python",
        "java",
        "go",
        "php",
        "dotnet",
        "ruby",
        "flutter",
        "swift",
        "kotlin",
        "rust",
        "elixir",
        "edge"
      ],
      "description": "Required. Which runtime kit to deliver. Boosthis names every runtime a project spans at https://www.boosthis.com/scan."
    },
    "runtimes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The normal route: every runtime this project has in one call - an address each, not a kit's files."
    },
    "install_command": {
      "type": "boolean",
      "description": "Adds the typed download commands."
    },
    "include_files": {
      "type": "boolean",
      "description": "Send every kit file by value instead of the manifest, a page at a time. Only when no shell can be run."
    },
    "files_page": {
      "type": "number",
      "description": "Page of the by-value walk (guide parts, then files). Default 1; files_next_page names the next if any."
    },
    "project_code": {
      "type": "string",
      "description": "The 8-character code from this description's lead, not the name two projects can share. Account token only."
    }
  }
}
🟢boosthis_get_removal_kit(runtime, project_code)

Removing Boosthis from this project: the ordered sequence, every kit file, the package entries, the config, the calls to strip, and the Boosthis entries in an AI tool's config. Order is load-bearing - forget(), where a kit has one, only reaches the server while the key is set.

입력 스키마

{
  "type": "object",
  "properties": {
    "runtime": {
      "type": "string",
      "enum": [
        "rn",
        "web",
        "node",
        "bun",
        "python",
        "java",
        "go",
        "php",
        "dotnet",
        "ruby",
        "flutter",
        "swift",
        "kotlin",
        "rust",
        "elixir",
        "edge"
      ],
      "description": "Which runtime's install to remove; one per call. Naming none is refused, never defaulted."
    },
    "project_code": {
      "type": "string",
      "description": "The 8-character code from this description's lead, not the name two projects can share. Account token only."
    }
  }
}
🟢boosthis_match_rules_for_code(code)

Ranks Boosthis rules against a code snippet on each rule's id tokens and when_to_apply text, up to 8 candidates. Ranked guesses from a text match, not findings: each rule's when_to_apply settles whether it really applies.

입력 스키마

{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    }
  },
  "required": [
    "code"
  ]
}
🟢boosthis_check_for_update(runtime, installed_version, repair_steps)

Whether a newer Boosthis kit exists for this project, without fetching it: latest_version, update_available, comparison (behind/current/ahead/unknown), the changelog for every release behind, a severity (cosmetic/recommended/important/security) and a recommendation. kit_download_url serves the whole kit. latest_version is authoritative only on the hosted MCP; a local stdio server answers with its own. Withheld reply? Same answer at GET https://www.boosthis.com/api/kit/<runtime>/update (project key as bearer).

입력 스키마

{
  "type": "object",
  "properties": {
    "runtime": {
      "type": "string",
      "enum": [
        "rn",
        "web",
        "node",
        "bun",
        "python",
        "java",
        "go",
        "php",
        "dotnet",
        "ruby",
        "flutter",
        "swift",
        "kotlin",
        "rust",
        "elixir",
        "edge"
      ],
      "description": "Required. Which runtime's kit to check; each kit has its own release line, so it is never guessed."
    },
    "installed_version": {
      "type": "string",
      "description": "The kit version installed here."
    },
    "repair_steps": {
      "type": "boolean",
      "description": "Adds step-by-step repair text. Default false."
    }
  }
}
🟢boosthis_session_summary(install_id, read_token, project)

Per-screen p50/p75/p95 and worst rating, worst screens first, with p99, spike ratio and stdev spread where the server has them. No read credentials: a dashboard pointer, never empty. Read-only. More projects: `your_projects`.

입력 스키마

{
  "type": "object",
  "properties": {
    "install_id": {
      "type": "string",
      "description": "Install id (Connect AI card)."
    },
    "read_token": {
      "type": "string",
      "description": "Read-only token, same card."
    },
    "project": {
      "type": "string",
      "description": "Dashboard name, 'name (runtime)' or install id; needs account_token. Default: newest reporter."
    }
  }
}
🟢boosthis_what_should_i_look_at_next(limit, install_id, read_token, project)

A triage ordering: the worst-rated and slowest screens first, each with a one-line reason. No read credentials: a dashboard pointer, never empty. Read-only. More projects: `your_projects`.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 5,
      "minimum": 1,
      "maximum": 50
    },
    "install_id": {
      "type": "string",
      "description": "Install id (Connect AI card)."
    },
    "read_token": {
      "type": "string",
      "description": "Read-only token, same card."
    },
    "project": {
      "type": "string",
      "description": "Dashboard name, 'name (runtime)' or install id; needs account_token. Default: newest reporter."
    }
  }
}
🟢boosthis_snapshot(install_id, read_token, section, project)

The latest upload from one install: per-route rows, per-screen diagnosis, summary and budgets where present. `section` takes a page section (incl. coverage) or `all`; an empty one names its silence, not a clean result. No credentials or none uploaded: a dashboard pointer. Read-only. More projects: `your_projects`.

입력 스키마

{
  "type": "object",
  "properties": {
    "install_id": {
      "type": "string",
      "description": "Install id (Connect AI card)."
    },
    "read_token": {
      "type": "string",
      "description": "Read-only token, same card."
    },
    "section": {
      "type": "string"
    },
    "project": {
      "type": "string",
      "description": "Dashboard name, 'name (runtime)' or install id; needs account_token. Default: newest reporter."
    }
  }
}
🟢boosthis_crash_risk(install_id, read_token)

Crash classes this app recorded - uncaught errors, unhandled rejections and caught render near-misses - newest first, each with an error name, a redacted top frame, an occurrence bucket and relatedRules, joined with the JS-thread Stability summary and stabilityRules. Signatures are code-derived, never the raw message: no user value is exposed. No credentials, or no crash recorded yet: a note. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {
    "install_id": {
      "type": "string",
      "description": "Install id (Connect AI card)."
    },
    "read_token": {
      "type": "string",
      "description": "Read-only token, same card."
    }
  }
}
🟢boosthis_full_stack_trace(install_id, read_token, trace_id)

One user action across the stack as a nested waterfall of spans (layer, route label, duration, start offset, rating), each under the call that caused it; criticalHop names the hop responsible for the end-to-end time, not just the longest. Relative timings, code-defined labels only. A read token sees one install, account_token the whole chain. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {
    "install_id": {
      "type": "string",
      "description": "Install id (Connect AI card)."
    },
    "read_token": {
      "type": "string",
      "description": "Read-only token, same card."
    },
    "trace_id": {
      "type": "string",
      "description": "One trace by id (32 hex, from the trace page). Absent: the latest."
    }
  }
}
🟢boosthis_connection_status(repair_steps)

What Boosthis knows about this account's installs (same check over plain HTTPS: GET /api/connection-status, project key as bearer): for each, the runtime, its state, when it was last heard from, and what that state means. It answers "is it working?" without guessing - an install that registered but never measured anything reads differently from one that is quiet because the app is. Read-only; returns no credentials.

입력 스키마

{
  "type": "object",
  "properties": {
    "repair_steps": {
      "type": "boolean",
      "description": "Adds step-by-step repair text. Default false."
    }
  }
}
🟢boosthis_which_kits(files)

Which Boosthis kits this project needs, from manifest file names visible in it - nothing downloaded or executed. The inventory step before boosthis_get_integration_kit, whose `runtimes` list takes them all at once. Names the kit each file implies, what is already registered under this key, and the files whose contents decide one. With no arguments: the signal table.

입력 스키마

{
  "type": "object",
  "properties": {
    "files": {
      "type": "array",
      "description": "Manifest files visible in the project: path (project-relative, e.g. apps/api/package.json) and dependencies (names read out of it, where contents decide the kit - empty means none found, omitted means not read).",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "dependencies": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "path"
        ]
      }
    }
  }
}
🟢boosthis_verify_kit_install(runtime, files, installed_version, repair_steps)

Check a Boosthis kit's FILES ON DISK are byte-perfect (same check over plain HTTPS: POST https://www.boosthis.com/api/kit/<runtime>/verify) - a pass proves the files, never that anything is measured yet. The verdict names the exact missing, modified and unexpected paths, each with expected sha256. Read-only; returns no credentials.

입력 스키마

{
  "type": "object",
  "properties": {
    "runtime": {
      "type": "string",
      "enum": [
        "rn",
        "web",
        "node",
        "bun",
        "python",
        "java",
        "go",
        "php",
        "dotnet",
        "ruby",
        "flutter",
        "swift",
        "kotlin",
        "rust",
        "elixir",
        "edge"
      ],
      "description": "Which runtime's kit to verify against. Required, never guessed."
    },
    "files": {
      "type": "array",
      "description": "Each written kit file, sha256 lowercase-hex of its exact contents.",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "sha256": {
            "type": "string"
          }
        },
        "required": [
          "path",
          "sha256"
        ]
      }
    },
    "installed_version": {
      "type": "string",
      "description": "The kit version installed here."
    },
    "repair_steps": {
      "type": "boolean",
      "description": "Adds step-by-step repair text. Default false."
    }
  },
  "required": [
    "files"
  ]
}
🟢boosthis_maintenance_mix(account_token, window_days)

The Maintenance Mix: of the issues a project actually fixed, how many were fixed before users felt them (flagged by a Boosthis rule, app still healthy) versus after a crash or a poor rating. A project with too few fixed issues reports null rather than a made-up ratio. Read-only; returns no credentials.

입력 스키마

{
  "type": "object",
  "properties": {
    "account_token": {
      "type": "string",
      "description": "Durable account token: dashboard \"Connect AI once\" card."
    },
    "window_days": {
      "type": "number",
      "description": "Only count fixes first seen in the last N days (default 90; 0 or 'all' = all time)."
    }
  },
  "required": [
    "account_token"
  ]
}
🟢boosthis_trend(install_id, read_token)

One project's last 30 days: for each finished day, how many measurements arrived, typical and worst-case screen time, how many were rated poor, new crashes, and alerts opened and closed - plus a verdict comparing the last 7 days with the 7 before. Days that reported nothing are no_data: unknown, never zero, never healthy. Too few measurements gives not-enough-data, not a guess. Read-only; returns no credentials.

입력 스키마

{
  "type": "object",
  "properties": {
    "install_id": {
      "type": "string",
      "description": "Install id (Connect AI card)."
    },
    "read_token": {
      "type": "string",
      "description": "Read-only token, same card."
    }
  },
  "required": [
    "install_id",
    "read_token"
  ]
}
🟢boosthis_vigilance(install_id, read_token)

One project's Vigilance verdict and every watch behind it, worst first: what each watches, what it says now, and its evidence. Also what it cannot watch and why - nothing declared yet, no history, reporting off, kit too old, part never named - unknowns, never good news, each with its way out: a rhythm is declared by expectEvery() or on the project's page, never from here. No score. Read-only, no credentials, never counted as an AI read.

입력 스키마

{
  "type": "object",
  "properties": {
    "install_id": {
      "type": "string",
      "description": "Install id (Connect AI card)."
    },
    "read_token": {
      "type": "string",
      "description": "Read-only token, same card."
    }
  },
  "required": [
    "install_id",
    "read_token"
  ]
}
🟢boosthis_jobs(install_id, read_token)

Every scheduled job this runtime reports, each in one state: on time; late; app unheard (the app, not the job, went quiet); never reported a run; or no rhythm declared, so it is remembered, not watched. A rhythm is declared on the project's page, or by a kit that offers expectEvery(). Each carries its rhythm, the lateness allowed and its last run. Only names and timings, never arguments or data; Boosthis never runs or schedules a job. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {
    "install_id": {
      "type": "string",
      "description": "Install id (Connect AI card)."
    },
    "read_token": {
      "type": "string",
      "description": "Read-only token, same card."
    }
  },
  "required": [
    "install_id",
    "read_token"
  ]
}
🟢boosthis_exposure

What this app was OBSERVED exposing: leaks, cookie flags, dev settings left on, turned-away traffic, build age, swallowed errors. Each carries its limits; never a safety claim. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟢boosthis_structure(route, view)

What is structurally wrong with this app, from the actions it traced: the route to fix first, single points of failure, pairs bouncing back and forth, call bursts, unexplained waits. Name a `route` (as recorded, e.g. GET /orders/:id) for that route's neighbourhood: what ran inside it, what ran it, which flows include it, is it a single point of failure. Each finding reads measured (real call links) or inferred (timing alone). `view`:"map" instead lists the parts observed running, their states and the calls between them, worst first. Every answer states how many traced actions it read, over what window; too few says so, never a clean bill of health. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {
    "route": {
      "type": "string"
    },
    "view": {
      "type": "string"
    }
  }
}
🟢boosthis_alerts(account_token, status, search, limit)

This account's Boosthis alerts, in the dashboard's words: Open, Read, Fixed, Returned (marked fixed, then happened again) or Dismissed, each saying whether its screen or check is Muted. The reply states how many matched, so a trimmed list is never mistaken for the whole. Read-only: it cannot mark anything fixed, muted or dismissed, and returns no credentials.

입력 스키마

{
  "type": "object",
  "properties": {
    "account_token": {
      "type": "string",
      "description": "Durable account token: dashboard \"Connect AI once\" card."
    },
    "status": {
      "type": "string",
      "description": "open | read | fixed | returned | dismissed | all. Default: the open list (includes returned)."
    },
    "search": {
      "type": "string",
      "description": "Plain-text match on the alert wording, screen or check."
    },
    "limit": {
      "type": "number",
      "description": "Rows to return (default 20, maximum 50)."
    }
  },
  "required": [
    "account_token"
  ]
}
🟢boosthis_promises

The standing promises this project's developer has recorded - what they want kept as the project changes, surviving earlier sessions and assistants. Each says whether Boosthis can measure it: 'watched' names the exact line it is held to, 'remembered only' is a standing instruction with nothing measuring it. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {}
}
⚪boosthis_remember_promise(promise, account_token)

Saves what the developer wants kept true from now on as a promise on the project, in their words, surviving later sessions and other assistants. Restating one replaces it rather than duplicating it. Boosthis says what it reads the sentence to mean; nothing counts as measured until the developer confirms it on their project page. Passwords, keys and personal details are refused, not stored. This one writes.

입력 스키마

{
  "type": "object",
  "properties": {
    "promise": {
      "type": "string",
      "description": "The standing instruction, in the developer's own plain words (up to 240 characters). E.g. the list screen stays under one second."
    },
    "account_token": {
      "type": "string",
      "description": "Durable account token: dashboard \"Connect AI once\" card."
    }
  },
  "required": [
    "promise",
    "account_token"
  ]
}
🟢boosthis_check_claim(claim, account_token)

Holds a sentence an assistant is about to say against what the running app actually did. Exactly one of four answers: supported, not supported by the measurements, cannot tell yet, or outside what Boosthis measures. Boosthis picks the comparison window; one named in the sentence is not used. It catches only a minority of wrong claims - the best measured result in this field is about one in six - and a vague claim is never caught at all. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {
    "claim": {
      "type": "string",
      "description": "The sentence to check, up to 240 characters. One carrying a credential or personal details is refused."
    },
    "account_token": {
      "type": "string",
      "description": "Optional, the developer's account token: a sentence the word match cannot place then gets a one-shot AI reading, which spends AI allowance."
    }
  },
  "required": [
    "claim"
  ]
}
🟢boosthis_release_check(runtime, install_id)

How the last release held up, from the running app after it shipped, against the version this project's own measurements reported. Six answers: did served fixes stop the problems, did anything get slower, did new problems appear, did an old one come back, did a recorded promise pass its line, did the changes Boosthis witnessed hold up. Each carries its numbers and window; a part without enough evidence says so, and when it could answer. No combined score. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {
    "runtime": {
      "type": "string",
      "description": "Which runtime to read, e.g. node, web, rn or py. Omit: whichever reported most recently."
    },
    "install_id": {
      "type": "string",
      "description": "Install id (Connect AI card)."
    }
  }
}
🟢boosthis_ai_changes

What happened after the changes Boosthis witnessed here - only those that passed through it: a fix it served, or a sentence it was asked to check. Each reads kept, broken or cant_tell, in the promise vocabulary and refused for the same named reasons. cant_tell is the ordinary answer: thin evidence, never that the change was fine. No score for any assistant, and none derivable. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟢boosthis_platform_allowances

What this project's hosting platform allows, confirmed on real installs. One answer per fact: the time and memory limits a run can read, a live countdown, a processor clock that moves, whether work after the reply runs, each with its source and when it was confirmed. An unconfirmed fact says so and carries no answer - never a limit, never a zero. Read from this project's own installs. A phone or browser reads as a device family with no allowance facts yet; an unrecognised host reads unknown, never production. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟢boosthis_project_diary

This project's life in order, joined from what Boosthis already keeps: fixes served, claims checked, promises and their verdicts, history moves, and changes assistants filed. Each entry says whether Boosthis measured it or was told it; a told one stays a claim however old. An empty stretch means nothing was recorded, never that all was well. Read-only.

입력 스키마

{
  "type": "object",
  "properties": {}
}
🟡boosthis_record_change(summary, subject, intend, done, account_token)

File a change you made here, so the next assistant knows - Boosthis cannot see code or commits. Kept as YOUR claim, never evidence. Passwords, keys and personal details are refused. This one writes.

입력 스키마

{
  "type": "object",
  "properties": {
    "summary": {
      "type": "string",
      "description": "What you changed, in one or two sentences (max 300 characters)."
    },
    "subject": {
      "type": "string",
      "description": "The screen, endpoint or job it touched."
    },
    "intend": {
      "type": "string",
      "description": "One thing you are starting - a route as the app registers it, or a migration, a fix."
    },
    "done": {
      "type": "string",
      "description": "The name from intend, now finished."
    },
    "account_token": {
      "type": "string",
      "description": "Durable account token: dashboard \"Connect AI once\" card."
    }
  },
  "required": [
    "account_token"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 29개
검증됨버전이 기록되지 않음도구 29개