Codehelper
MCPB · CODEHELPER_3.0.3_LINUX_AMD64.MCPB · 5 COMPONENTS
Local-first code intelligence MCP: symbol graph, impact analysis, 60+ tools.
Last scanned (4 hours ago)
Scores higher than 86% of MCPB servers
Category Developer Tools
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (SEE LICENSE IN LICENSE) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 96 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability76
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4772 tokens (~397/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Nov 26 +1
- Security disclosure: unverified → pass ▲ functional
- 2 Nov 26 −1
- Security disclosure: pass → unverified ▼ functional
- 25 Oct 26 +1
- Stability: 0.97 → pass security
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 21 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed mcpb/https://github.com/VeyrForge/codehelper/releases/download/v3.0.3/codehelper_3.0.3_linux_amd64.mcpb
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | mcpb |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
apply_patch_workspace_file ~334
Apply one or more search/replace hunks to an existing file. SAFETY: prefer dry_run=true first to preview the unified diff, then re-call without dry_run to write. Preferred arg: hunks=[{old_string,new_string,replace_all?,exact?}]. Aliases accepted: edits/changes/replacements, or patch as the same array, or a small unified-diff string with context/-/+ lines. Each old_string must match the current file exactly once unless replace_all is true. If an exact match fails purely on whitespace/indentation (tabs vs spaces, trailing space) AND the snippet anchors to exactly one place, the patch is still applied — new_string is reindented to the file's real style and the response notes whitespace_adjusted. Exact matches also restyle new_string indent chars to the file's tab/space convention. Pass exact=true on a hunk to disable tolerant re-anchoring. Preserves untouched content verbatim. Returns a unified diff and revert_token.
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | If true, do not write; just return the diff that would be produced |
| hunks | array | – | Array of {old_string, new_string, replace_all?:bool, exact?:bool}. Applied in order. Aliases: edits, changes, replacements. |
| patch | string | – | Optional alias: same as hunks (JSON array) OR a small unified-diff string with context/-/+ lines |
| path | string | yes | Path relative to repo root |
| repo | string | – | Repository name (optional; defaults to current MCP workspace) |
No output schema declared.
No examples provided.
browser ~1,706
BROWSER slot — render a URL in headless Chromium and SEE it: WebP screenshot + console/JS errors/failed requests (not `web`, which is HTTP-only). Prefer this for visual/client-side verification after UI changes. Write & run a UI test: outline=true lists interactive elements, then `actions` clicks/fills/asserts. WordPress admin: recipe=wp_login|wp_admin|… + site=<connections website>. Session reuse: session=<name>. Responsive: device=mobile|tablet|desktop or devices=["all"]. Perf: metrics=true. Headed=true opens a visible browser. Lean by default — not a full-DOM dump. Loopback always allowed; allow_private for LAN. Needs managed browser (`ch browser install`); binary with -tags rod.
| Name | Type | Req | Description |
|---|---|---|---|
| actions | array | – | Interaction + test steps before the screenshot. Locators: selector CSS, testid:/role:button:Name/text:/name:/ref:e3 prefixes, or fields role/name/testid/ref. Actions: click|type|fill|select|hover|pre… |
| allow_private | boolean | – | Permit private/LAN (RFC1918) targets; loopback always allowed, cloud-metadata/link-local always blocked (default false) |
| audit | string | – | Accessibility + Core Web Vitals audit. 'lite' = fast built-in checks (missing alt/labels/accessible-names, page lang/title); 'full' = the axe-core engine (comprehensive, with impact levels — needs `c… |
| baseline | string | – | Visual regression: name a baseline. First call saves the screenshot; later calls return a diff image (changed pixels in red) + % changed. Per-device baselines. |
| clip_height | number | – | Height (CSS px) of the clipped region to capture at full width |
| clip_y | number | – | Capture only a region starting at this Y offset (CSS px); pair with clip_height |
| debug_pack_dir | string | – | On action/assert failure, write a debug pack (failure screenshot + report.json with console errors, failed network, outline/snapshot, URL, action log) to this directory. Default: ~/.codehelper/browse… |
| device | string | – | Viewport preset: desktop (1280x800, default) | tablet (768x1024) | mobile (390x844). Sets size, pixel ratio, mobile emulation, and UA. |
| devices | array | – | Capture several viewports in one call, e.g. ["mobile","desktop"] or ["all"]. Overrides `device`. Returns one image per device. |
| format | string | – | Screenshot format: webp (default, smallest) | png | jpeg |
| full_page | boolean | – | Capture the full scrollable page, not just the viewport |
| gui | boolean | – | Alias for headed=true (visible Chromium). |
| headed | boolean | – | Run a VISIBLE browser (default headless) so a human can WATCH the agent drive the page: each action flashes a labelled box on its target element and SlowMotion paces the clicks/inputs. Needs a graphi… |
| height | number | – | Override viewport height px (else from device) |
| metrics | boolean | – | Collect performance metrics: FCP, DOMContentLoaded, load, request count, transfer KB, JS heap |
| outline | boolean | – | Return a compact map of the page's INTERACTIVE elements (inputs, buttons, links, form controls) — each with a stable ref (e1,e2,…), ready-to-use CSS selector, role, accessible name, input type, place… |
| pause_on_fail | boolean | – | Headed only: keep the window open ~3s after a failed step so a human can see the failure. Env CODEHELPER_BROWSER_PAUSE_ON_FAIL=1. |
| pause_on_fail_ms | number | – | Headed + pause_on_fail: override pause duration in ms (default 3000). |
| preview_actions | boolean | – | Return a viewport screenshot after each interaction step (before the final capture). Requires `ch config browser set --action-previews on` (disabled by default). Failed steps always attach a shot eve… |
| quality | number | – | Compression quality 1-100 for webp/jpeg (default 80) |
| recipe | string | – | Named interaction recipe prepended before actions: wp_login | wp_admin | wp_plugins | wp_posts | wp_new_post | laravel_login | django_admin | drupal_login | magento_login | spa_hydrate. Requires site… |
| repo | string | – | Repository name for site/secret resolution (optional; defaults to current MCP workspace) |
| segment_height | number | – | Max height (CSS px) per piece when splitting a full-page capture (implies split+full_page) |
| selector | string | – | Screenshot only this CSS-selected element |
| session | string | – | Named in-process cookie jar. Captures sharing the same session reuse auth cookies (e.g. wp_login then open plugins without re-login). Lives for the MCP server process lifetime. |
| session_clear | boolean | – | Clear the named session cookie jar before this capture |
| site | string | – | Connections website profile name (codehelper connections add-site). Supplies base URL + user; password from env:/secret store only — never pass passwords in MCP args. |
| slow_mo | number | – | Headed only: delay in ms before each action so clicks/inputs are perceptible (default ~650ms). Ignored in headless. |
| snapshot | boolean | – | Return a bounded ARIA/role snapshot (Playwright-MCP style: role "name" lines, ≤80 nodes). Prefer over dumping HTML. Use with role/name/testid locators in actions. |
| split | boolean | – | Capture the full page split into vertical pieces (~2000px each), returned as multiple images at full resolution — read a long page without the downscaling a single tall screenshot suffers |
| timeout_sec | number | – | Overall timeout seconds (default 30) |
| trace | boolean | – | Include a compact timing trail (navigate/action/wait/heal/fail) for debugging flaky flows — not a CDP file. |
| update_baseline | boolean | – | Overwrite the named baseline with the current screenshot instead of diffing |
| upload_allow | string | – | Extra upload sandbox roots (os path-list separator). Upload paths must live under the workspace repo root and/or these dirs (also CODEHELPER_BROWSER_UPLOAD_ALLOW). Multi-file: text= path1||path2 or n… |
| url | string | – | URL to open (e.g. http://localhost:3000). Optional when site= is set — then the site login/admin URL is used. |
| wait_hydrate | boolean | – | After load, wait for network idle + DOM stable (SPA/React/Vue/Next and WP admin hydration). Pair with wait_selector for a ready landmark (#root, #wpadminbar, …). |
| wait_ms | number | – | Extra fixed wait after load, in milliseconds (with wait_hydrate: overall hydrate timeout) |
| wait_selector | string | – | Wait for this CSS selector to appear before capturing (also used as hydrate landmark when wait_hydrate=true) |
| width | number | – | Override viewport width px (else from device) |
No output schema declared.
No examples provided.
change_kit ~177
CHANGE slot — everything needed to change one symbol SAFELY: definition source, every call site, covering tests, risk tier, checklist. Prefer this over chaining context→impact→test_impact before an edit. Then apply_patch_workspace_file (or insert_at_symbol/rename_symbol by name). PARAM: target= (NOT name=). Example: change_kit target=LoginHandler. If missing symbol, query first then retry with the exact name or sym: id.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response text encoding: toon (default) | json |
| repo | string | – | Repository name |
| target | string | yes | REQUIRED key is `target` — symbol to change: name or sym: id from query/scout. Wrong: passing only name= still works via alias, but prefer target=. Not context's name=. |
No output schema declared.
No examples provided.
context ~250
UNDERSTAND slot — full report for ONE symbol: SOURCE, signature/doc, callers, callees, imports, AND blast_radius + risk. Prefer investigate (composite) when you still need to locate the symbol first. Use after query INSTEAD of raw read_workspace_file or a separate impact call (blast radius is already included). Pass name=Symbol (aliases: symbol, sym, target). Example: context name=LoginHandler. When names collide, pass path=.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | – | full = complete definition source; none = symbol graph only (no source — use for orchestration); default caps at 40 lines |
| format | string | – | Response text encoding: toon (default, token-efficient) | json |
| line | number | – | Definition line to disambiguate (optional) |
| name | string | yes | REQUIRED — symbol name or sym: id from query/scout. Aliases accepted: symbol, sym, target. Prefer name=; change_kit uses target= for the same idea. |
| path | string | – | Definition file (relative to repo root) to disambiguate when several symbols share the name |
| repo | string | – | Repository name |
No output schema declared.
No examples provided.
finish_check ~260
Hard done gate: verify hygiene + release readiness. Returns can_claim_done / completion_state + what_next / recommended_next_tools. Claim done ONLY when can_claim_done=true. Fail-closed: verify_abstained needs allow_claim_without_verify=true; also requires edit proof (diff vs base) or diagnostics_ran=true. On shallow/ephemeral beds returns completion_state=abstain (structured, not error) — do not invent a green gate.
| Name | Type | Req | Description |
|---|---|---|---|
| allow_claim_without_verify | boolean | – | Explicit allow to claim done when verify_abstained=true (fail-closed otherwise) |
| base_ref | string | – | Git ref to diff against for release readiness (default HEAD~1) |
| diagnostics_ran | boolean | – | Set true after diagnostics; counts as proof when the diff is empty (read-only QA) |
| format | string | – | Response text encoding: toon (default) | json |
| repo | string | – | Repository name |
| verify_abstained | boolean | – | Set true when verify could not run (no cmds / ephemeral bed); pair with verify_reason AND allow_claim_without_verify |
| verify_ran | boolean | – | Set true after a green argv verify run |
| verify_reason | string | – | required when abstained |
No output schema declared.
No examples provided.
impact ~275
IMPACT slot — blast radius over the call graph before change/delete/rename. Prefer investigate or context first when you also need source/callers (both already include blast radius). PARAM: target= (same key as change_kit; NOT name=). Default direction=upstream (who uses this?). Pass direction=downstream for deps. Bare names prefer non-fixture defs; pass path= on sample collisions. Sparse graphs: do not treat 0 callers as proof of isolation.
| Name | Type | Req | Description |
|---|---|---|---|
| depth | number | – | Max depth |
| direction | string | – | upstream (default: who uses this) | downstream (what this depends on) |
| format | string | – | Response text encoding: toon (default, token-efficient) | json |
| include_tests | boolean | – | Include test files in impact nodes |
| line | number | – | Definition line to disambiguate (optional) |
| max_candidates | number | – | Max must-update candidates returned |
| path | string | – | Definition file (relative to repo root) to disambiguate when several symbols share the name |
| repo | string | – | Repository name |
| target | string | yes | REQUIRED key is `target` — symbol name or sym: id (aliases: name, symbol, sym). Same key as change_kit; different from context's name=. |
No output schema declared.
No examples provided.
investigate ~219
UNDERSTAND composite (PREFERRED over chaining query→context→impact) — by default query + context + impact + test_impact in one call. Pass recipe=architecture|dead_code|security|perf for specialized audits. Returns a compact TOON bundle by default (format=json for JSON). Prefer kickoff/orchestrate for open-ended feature starts; use investigate when you already know the locate question.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | toon (default) | json |
| path | string | – | Disambiguate target by definition file path |
| query | string | – | What to find / investigate (required unless recipe=architecture|dead_code|security|perf or target is set; aliases: q, prompt) |
| recipe | string | – | Optional audit recipe: architecture | dead_code | security | perf (aliases: architect, design, unused, vuln, performance) |
| repo | string | – | Repository name |
| target | string | – | Optional symbol name or sym: id (skips query when set; aliases: name, symbol, sym) |
No output schema declared.
No examples provided.
kickoff ~332
WORKFLOW slot (PREFERRED starter) — ONE-CALL task kickoff for Cursor/Claude/Codex: orient + reuse + docs + decision_points + steps + verify + what_next + next_queries. Prefer this over chaining project_context→query→scout→plan. When local orchestration is enabled and you want a multi-tool chain + memory, prefer orchestrate instead. PARAM: task= (alias query= accepted with a correction note). role=architect|security|performance|refactor|feature. After edits: change_kit→apply_patch→verify→finish_check.
| Name | Type | Req | Description |
|---|---|---|---|
| approve_network | boolean | – | Allow inlining top library doc chunks via network (same gate as docs) |
| format | string | – | Response text encoding: toon (default) | json |
| inline_docs | boolean | – | When network is allowed, fetch top doc chunks into doc_previews (default true) |
| query | string | – | Alias for task (accepted; prefer task=) |
| repo | string | – | Repository name |
| role | string | – | Expert lens: architect (design Q&A, no edit yet) | security | performance | refactor | feature (default) |
| sections | string | – | Optional comma list to return ONLY these sections (cheaper payload): orient,reuse,docs,decisions,steps,verify,findings. Empty = all, except simple vibe feature asks auto-default to orient,reuse,docs,… |
| task | string | – | What you want to build/change/investigate, in natural language (preferred) |
No output schema declared.
No examples provided.
orchestrate ~182
WORKFLOW composite (PREFERRED when orchestration is enabled) — classify task → deterministic tool chain → slim agent_brief + what_next + next_queries + compact trace. Prefer over manually chaining query/context/impact. Prefer kickoff for simple feature starts without orchestration. Default payload is token-lean TOON; detail=true for the full pack; format=json for JSON. Requires orchestration enabled. PARAM: task=. On wrong workflow: orchestration_feedback then orchestration_rerun.
| Name | Type | Req | Description |
|---|---|---|---|
| detail | boolean | – | When true, include full answer_markdown and context_pack (default false — slim agent_brief + what_next + next_queries) |
| format | string | – | toon (default) | json |
| repo | string | – | Repository name |
| task | string | yes | What to investigate in natural language (canonical key is task=, same as kickoff) |
No output schema declared.
No examples provided.
project_context ~208
PROJECT slot — one-time BOOTSTRAP: repo identity, index freshness + stats, stack summary, MCP tool count/routing (mcp_main_tools prefers composites), matching cross-project hints, and next_step. Default verbosity=short; verbosity=detailed adds layout/deps/git/scripts; sections=tools adds grouped MCP tool names. Does NOT search code — after once, prefer kickoff (workflow) or query (search), not raw Read/Grep. Omit repo on other tools to reuse this workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response text encoding: toon (default, token-efficient) | json |
| repo | string | – | Repository name (optional; defaults to current MCP workspace) |
| sections | string | – | Optional comma list for cheaper payloads: tools (grouped MCP tool names only, skips layout) |
| verbosity | string | – | short (default: essentials + MCP catalog header) | detailed (full layout, deps, scripts, git, language stats, grouped tool names) |
No output schema declared.
No examples provided.
query ~390
SEARCH slot — locate symbols in the indexed graph (BM25/FTS + graph expand + RRF; optional vectors) — not web search. Prefer kickoff for feature/fix starts and investigate when you need query+context+impact fused. For workspace groups (sibling repos), pass group=<id> from project_context workspace_groups[] to fan-out across member graph.db files (optional path= like context/impact). Production defs beat sample/test/fixture noise; pass path= on follow-up context/impact when ambiguous. Empty hits → rephrase, ast_query (by name), or analyze.
| Name | Type | Req | Description |
|---|---|---|---|
| base_ref | string | – | Diff base for changed-symbol boosting |
| budget_tokens | number | – | When set (>0), also return token-budgeted buckets |
| format | string | – | Response text encoding: toon (default, token-efficient) | json |
| group | string | – | Workspace group id — fan-out symbol search across all member repos (from project_context workspace_groups[]); returns group_query hits with repo per match |
| include_context_pack | boolean | – | Include ranked context_pack in response |
| intent | string | – | Optional task intent: explore|debug|test|refactor |
| limit | number | – | Max items in context_pack when include_context_pack or limit>0 (default 24) |
| path | string | – | Optional path substring filter (Nest sample/…, Express lib/…) — applies to group fan-out and post-filters single-repo hits |
| query | string | yes | Symbol name, concept, or natural-language locate task |
| repo | string | – | Repository name (optional if only one indexed) |
| top_k | number | – | Max ranked hits to return (default 10). Lower = fewer tokens, sharper focus. |
| verbosity | string | – | concise (default: name/kind/loc/score) | detailed (full symbol records) |
No output schema declared.
No examples provided.
verify ~439
CHECK slot — run lint/build/test gates. Prefer this (then finish_check) over inventing a green gate. Default exec_mode=argv: plain command STRING (preferred: "go test ./...") OR a JSON array of argv tokens. No pipes/&&/; (those need exec_mode=shell, opt-in). Shell mode still allowlists EVERY pipeline/compound executable and rejects redirects/newlines — not first-token-only. Pass repo= so cmds auto-fill from project config when omitted. Empty cmds → abstain with what_next. REQUIRED before finish_check: after green set verify_ran=true; if cmds missing use verify_abstained=true + verify_reason.
| Name | Type | Req | Description |
|---|---|---|---|
| allowed_commands | string | – | Comma-separated allowlist of executable basenames (e.g. "go,npm,make"). In shell mode every pipeline/compound segment executable must be listed — not only the first token. |
| build_cmd | string | – | argv string "go build ./..." OR JSON array ["go","build","./..."] (no &&; alias: build) |
| exec_mode | string | – | argv (default: secure, no shell, no pipes/&&) | shell (requires project verify_allow_shell; every pipeline/compound exe must be allowlisted; redirects rejected; agents cannot enable) |
| format | string | – | Response text encoding: toon (default) | json |
| lint_cmd | string | – | argv string "npm run lint" OR JSON array ["npm","run","lint"] (no pipes; alias: lint). Prefer string on Windows MCP hosts. |
| patch_unified | string | – | Optional unified diff for heuristics |
| repo | string | – | Registered repository name — resolves repo_root and default verify cmds when omitted |
| repo_root | string | – | Absolute path to the repository root (aliases: cwd, path, root). Optional when repo= resolves an indexed project. |
| test_cmd | string | – | argv string "go test ./..." OR JSON array ["go","test","./..."] (no pipes; alias: test) |
| timeout_seconds | number | – | Per-command timeout cap (default 300) |
No output schema declared.
No examples provided.
How do I install the Codehelper MCP server?
Codehelper ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. The MCP registry declares no SHA-256 for this bundle, so there is no published digest to check the download against.
mcpb · codehelper_3.0.3_linux_amd64.mcpb
Download bundleThe MCP registry declares no SHA-256 for this bundle, so there is no published digest to check it against. Open it with an MCPB-capable host such as Claude Desktop.
What is the Codehelper MCP server?
Codehelper is an MCP server listed in the public MCP registry as io.github.VeyrForge/codehelper. Local-first code intelligence MCP: symbol graph, impact analysis, 60+ tools. This page covers its MCPB bundle (https://github.com/VeyrForge/codehelper/releases/download/v3.0.3/codehelper_3.0.3_linux_amd64.mcpb).
Is the Codehelper MCP server safe to use?
Codehelper scores 53 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Codehelper MCP server expose?
Codehelper exposes 12 tools: apply_patch_workspace_file, browser, change_kit, context, finish_check, and 7 more. Their descriptions and schemas cost roughly 4,772 tokens of context every time the server is loaded.