MODEL CONTEXT PROTOCOL · STDIO · LOCAL PROCESS
Eighteen strict tools. One local localisation harness for coding agents.
The STDIO server runs beside your repository and exposes project inspection, locale validation, crawling, extraction, translation checks, persisted evidence and reports. The complete scan-to-repair loop shipped in this MVP is the canonical AtlasPay fixture workflow; arbitrary repository repair is not implemented or implied here.
Setup
pnpm install pnpm build:packages
Then register the server with your client. Transport: spawned STDIO process. Server entry: packages/mcp/dist/bin.js.
{
"mcpServers": {
"bhashafix": {
"command": "node",
"args": ["packages/mcp/dist/bin.js"]
}
}
}The surface
18 tools, 4 resources and 5 prompts, listed from the recorded tools/list response.
Scope is explicit. Project utilities operate on validated input; scan creation, deterministic repair and identical-predicate verification are fixture-scoped in this release. The labels below separate those capabilities.
bhashafix_inspect_project | project utility · Inspect framework and localisation infrastructure without executing project scripts. |
|---|---|
bhashafix_list_locales | project utility · Validate and describe BCP 47 locales using platform standards. |
bhashafix_crawl_routes | project utility · Crawl a URL under the BhashaFix URL and SSRF policy. |
bhashafix_extract_strings | project utility · Extract visible strings and context from supplied HTML. |
bhashafix_create_scan | AtlasPay fixture · Create a validated request for the bundled atlaspay-demo target. Arbitrary project targets are not accepted by this MVP tool. |
bhashafix_run_scan | AtlasPay fixture · Execute a previously created AtlasPay fixture request and persist its deterministic evidence. |
bhashafix_scan_project | AtlasPay fixture · Run the canonical AtlasPay fixture matrix. This is not a generic repository scan implementation. |
bhashafix_get_scan | persisted demo evidence · Read a locally persisted scan by explicit ID. The current end-to-end producer is the AtlasPay fixture workflow. |
bhashafix_list_issues | persisted demo evidence · List evidence-backed issues from an explicit persisted scan produced by the fixture workflow. |
bhashafix_get_issue | persisted demo evidence · Read one issue from an explicit persisted fixture scan and scan ID. |
bhashafix_check_translation | project utility · Run deterministic placeholder and optional glossary checks. |
bhashafix_generate_virtual_preview | project utility · Generate a protected deterministic specimen for a sandboxed synthetic localisation preview. |
bhashafix_suggest_translation | project utility · Provider-routed linguistic operation. Returns an honest unavailable result when no provider is configured. |
bhashafix_generate_translation | project utility · Provider-routed linguistic operation. Returns an honest unavailable result when no provider is configured. |
bhashafix_prepare_repair | AtlasPay fixture · Prepare a diff for selected AtlasPay fixture issue IDs. The repair planner is confined to the demo data allowlist. |
bhashafix_apply_repair | AtlasPay fixture · Apply a reviewed AtlasPay fixture diff. Dry run is the default; mutation requires the exact prepared diff hash. |
bhashafix_verify_repair | AtlasPay fixture · Rerun the canonical AtlasPay predicates after a fixture repair and return the recorded verification status. |
bhashafix_generate_report | persisted demo evidence · Generate portable reports for an explicit persisted scan. Current recorded end-to-end evidence is fixture-scoped. |
bhashafix://project/config | BhashaFix project config · text/plain |
|---|---|
bhashafix://project/glossary | BhashaFix project glossary · text/plain |
bhashafix://project/brand-voice | BhashaFix brand voice · text/plain |
bhashafix://project/translation-memory | BhashaFix translation memory · text/plain |
localise_project | Inspect the project, identify source and target locales, extract strings, then generate only provider-backed translations and verify the rendered result. |
|---|---|
audit_localisation | Run deterministic localisation checks first, then separate model-assisted findings by confidence and human-review requirement. |
repair_verified_issues | Prepare a repair for explicit verified issue IDs, inspect the unified diff, apply only after confirmation, then rerun identical predicates. |
review_translation_quality | Review meaning, formality, brand voice and context. Treat subjective findings as recommendations with confidence, not facts. |
prepare_release_report | Verify blocking issues, source-locale regression, accessibility and diff policy before generating the release report. |
A recorded session
8 calls against a spawned server and the bundledatlaspay-demo target, published under /evidence/mcp/. This is fixture evidence, not evidence that the repair tools can patch an arbitrary repository. Each file holds the result payload that call returned; request arguments that were not recorded are not reconstructed below.
- 01
tools/listList the tools the server exposes- Result payload
- tools18resources4prompts5
- Verification status
- this call does not report a verification
- Recorded file
- /evidence/mcp/00-tools.json
- 02
bhashafix_inspect_projectInspect the project- Recorded parameters
- projectRoot<PROJECT_ROOT>
- Result payload
- frameworknextjssupportsupportedscripts discovered41commandsRequireApprovaltrue
- Verification status
- this call does not report a verification
- Recorded file
- /evidence/mcp/01-inspect-project.json
- 03
bhashafix_create_scanCreate a scan- Recorded parameters
- targetatlaspay-demomodeliverequestedLocalesar-SA · de-DE · ja-JP · hi-INrequestedRoutes/ · /pricing · /dashboard · /checkout · /settings
- Result payload
- scanIdscan_8e2be01b06024151bad13509f8af04aacreatedAt2026-08-03T13:33:57.516ZstatuscreatedexecutionStartedfalsecoveragePolicyThe bundled deterministic run executes the complete canonical AtlasPay matrix.
- Verification status
- this call does not report a verification
- Recorded file
- /evidence/mcp/02-create-scan.json
- 04
bhashafix_run_scanRun it- Recorded parameters
- scanIdscan_8e2be01b06024151bad13509f8af04aa
- Result payload
- originGUIDED_DEMOstatuscompleted_with_warningsstartedAt → completedAt2026-08-03T13:33:57.573Z → 2026-08-03T13:33:57.710ZroutesDiscovered/ · /pricing · /dashboard · /checkout · /settingslocalesTestedhi-IN · de-DE · ar-SA · he-IL · ja-JP · zh-Hans-CN · th-TH · fr-FR · es-MX · en-GBviewportsmobile 390×844 · tablet 768×1024 · desktop 1440×900themeslight · darkissues10engineVersion0.2.0
- Issue IDs returned
BF-VIS-HI-001BF-VIS-DE-002BF-LOC-AR-003BF-RTL-HE-004BF-I18N-JA-005BF-FONT-ZH-006BF-VIS-TH-007BF-I18N-FR-008BF-LING-ES-009BF-META-EN-010- Verification status
- this call does not report a verification
- Recorded file
- /evidence/mcp/03-run-scan.json
- 05
bhashafix_list_issuesRead the verified issues- Result payload
- issues10blocking10rulesvertical-clipping · cta-overflow · wrong-direction · rtl-icon-order · raw-translation-key · font-coverage · line-breaking · placeholder-mismatch · glossary-violation · wrong-page-lang
- Issue IDs returned
BF-VIS-HI-001BF-VIS-DE-002BF-LOC-AR-003BF-RTL-HE-004BF-I18N-JA-005BF-FONT-ZH-006BF-VIS-TH-007BF-I18N-FR-008BF-LING-ES-009BF-META-EN-010- Verification status
- this call does not report a verification
- Recorded file
- /evidence/mcp/04-list-issues.json
- 06
bhashafix_prepare_repairPrepare a repair (dry run)- Recorded parameters
- filesapps/demo-target/data/layout.json · apps/demo-target/data/locale-state.json · apps/demo-target/data/translations.json
- Result payload
- dryRuntrueappliedfalseunifiedDiff64 diff lines recorded
- Artifacts touched
apps/demo-target/data/layout.jsonapps/demo-target/data/locale-state.jsonapps/demo-target/data/translations.json- Verification status
- this call does not report a verification
- Recorded file
- /evidence/mcp/06-repair-dry-run.json
- 07
bhashafix_apply_repairApply the approved issue IDs- Recorded parameters
- filesapps/demo-target/data/layout.json · apps/demo-target/data/locale-state.json · apps/demo-target/data/translations.json
- Result payload
- dryRunfalseappliedtruerollbackRoot<PROJECT_ROOT>\.bhashafix\rollback\scan_8e2be01b06024151bad13509f8af04aaunifiedDiff64 diff lines recorded
- Artifacts touched
apps/demo-target/data/layout.jsonapps/demo-target/data/locale-state.jsonapps/demo-target/data/translations.json<PROJECT_ROOT>\.bhashafix\rollback\scan_8e2be01b06024151bad13509f8af04aa- Verification status
- this call does not report a verification
- Recorded file
- /evidence/mcp/07-apply-repair.json
- 08
bhashafix_verify_repairRerun the identical predicates- Recorded parameters
- scanIdscan_8e2be01b06024151bad13509f8af04aa
- Result payload
- verifiedAt2026-08-03T13:33:57.827ZbaselineBlocking10finalBlocking0sourceLocaleRegressionPASSnewBlockingIssues0notMeasuredconsoleErrorDelta · accessibilityRegression · diffWithinPolicy
- Verification status
- verified with warnings
- Recorded file
- /evidence/mcp/08-verify-repair.json
Guardrails
- STDIO is the supported transport. There is no remote MCP endpoint.
- Scan creation, scan execution, prepare, apply and verify currently operate on the bundled AtlasPay fixture and its demo-data allowlist. Generic source repair is not supported by this MCP release.
- Fixture repair still requires an explicit scan ID and issue IDs. Dry run is the default, mutation requires the reviewed diff hash, and an applied call records a rollback root.
- Project scripts are never executed without approval — the inspect call reports
commandsRequireApprovalas recorded. - Model output never overrides a browser predicate. A verification field the run did not measure is published as not measured, not as a pass.