Boosthis
Read-only performance insights for your Boosthis projects: speed, crashes, traces, and fixes.
使うべきか
品質と安全性
検出事項(1)
- LOWboosthis_what_should_i_look_at_next 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `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"
]
}コミュニティ
エビデンス