Fuse
NUGET · FUSE · SCANNED SEP 20
Local .NET compiler verification, change impact, and typed wiring for AI agents.
Available components
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 Security88
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Install-script risk not yet assessed.Unverified
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency48
- 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
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 51 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 3318 tokens (~368/item across 9 items; 9 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 Management83
- Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
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 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 10 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
How do I install the Fuse MCP server?
Fuse runs locally as a NuGet package, launched with dnx Fuse@4.4.0 --yes. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
nuget · Fuse
claude mcp add litenova-solutions-fuse -- dnx Fuse@4.4.0 --yes
{
"mcpServers": {
"litenova-solutions-fuse": {
"command": "dnx",
"args": [
"Fuse@4.4.0",
"--yes"
]
}
}
} {
"servers": {
"litenova-solutions-fuse": {
"command": "dnx",
"args": [
"Fuse@4.4.0",
"--yes"
]
}
}
} codex mcp add litenova-solutions-fuse -- dnx Fuse@4.4.0 --yes
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"litenova-solutions-fuse": {
"type": "local",
"command": [
"dnx",
"Fuse@4.4.0",
"--yes"
],
"enabled": true
}
}
} mcp_servers:
litenova-solutions-fuse:
command: "dnx"
args: ["Fuse@4.4.0", "--yes"] {
"McpServers": {
"litenova-solutions-fuse": {
"Transport": "stdio",
"Command": "dnx",
"Arguments": [
"Fuse@4.4.0",
"--yes"
]
}
}
} {
"mcpServers": {
"litenova-solutions-fuse": {
"command": "dnx",
"args": [
"Fuse@4.4.0",
"--yes"
]
}
}
} 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.
- 19 Sept 26 −3
- Stability: pass → 0.80 functional
- 18 Sept 26 +1
- Stability: 0.97 → pass security
- 16 Sept 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.
- 14 Sept 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.
- 12 Sept 26 −3
- Stability: pass → 0.80 functional
- 11 Sept 26 +1
- Stability: 0.97 → pass security
- 9 Sept 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.
- 7 Sept 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.
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 20 Sept 2026 · Analysed nuget/Fuse@4.4.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | nuget |
| Reason | Package not fetched |
Background: How many MCP packages publish verified provenance →
Dependencies 0 packages
| Packages resolved | 0 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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 →
fuse_check ~390
Speculatively typecheck a proposed single-file edit: the compiler errors and warnings it would produce, without writing the file. Verification never shrugs (D11): oracle-grade (sub-second, no build) when the repo is captured at tier-1; otherwise build-grade, running dotnet build scoped to the owning project (tens of seconds) and parsing the same diagnostics; abstains only when even the toolchain cannot run, naming the reason. Every answer is stamped with its grade. Delta mode (S2): pass a session id with no content to get the diagnostics your on-disk edits introduced or resolved since the session baseline (needs a resident workspace; does not run a build); full:true returns the whole current set; markGreen:true resets the baseline to now. Analyzer parity (S4): when a resident workspace serves the root, analyzers:true (the default) also runs the repo's configured analyzers and nullable warnings at their editorconfig severities, so a green check matches CI.
| Name | Type | Req | Description |
|---|---|---|---|
| analyzers | boolean | – | Also run the repo's configured analyzers and nullable warnings at their editorconfig severities (CI parity), when a resident workspace serves the root. Default on. |
| content | string | – | The proposed full new content of that file. |
| file | string | – | The repo-relative path of the file being changed. |
| full | boolean | – | Delta mode: return the whole current diagnostic set instead of the delta since the baseline. |
| markGreen | boolean | – | Delta mode: reset the session baseline to the current diagnostics (mark green), so later deltas are measured from here. |
| path | string | – | Absolute or relative path to the workspace directory. |
| session | string | – | Delta mode: a session id. With no content, returns the diagnostics introduced or resolved since the session baseline (needs a resident workspace; does not run a build). |
No output schema declared.
No examples provided.
fuse_context ~248
Plan and emit context (source bodies, mixed render tiers, manifest, provenance) for a set of seeds. Feed it the file paths from fuse_find (kind=task) or the names it resolves from wiring kinds. Pass a sessionId to elide files already sent in the session.
| Name | Type | Req | Description |
|---|---|---|---|
| configs | array|null | – | Config section seeds to resolve and expand. |
| depth | integer | – | Graph expansion depth. |
| files | array|null | – | File path seeds (for example the paths returned by fuse_find kind=task). |
| format | string | – | Output format: xml (default), markdown, or json. |
| maxTokens | integer | – | Token budget; must-keep seeds are always included. |
| path | string | – | Absolute or relative path to the workspace directory. |
| requests | array|null | – | Request/command seeds to resolve and expand. |
| routes | array|null | – | Route seeds, for example "POST /api/orders/{id}". |
| seeds | array|null | – | Symbol seeds. |
| services | array|null | – | Service seeds to resolve and expand. |
| sessionId | string|null | – | Session id; files already sent unchanged in this session are elided. |
No output schema declared.
No examples provided.
fuse_find ~197
The find union: locate what a task needs by kind. Exact lookup - kind=symbol (by name), path (by fragment), text (full-text), or all. Wiring - kind=service, request, route, or config resolves the query to its implementation/handler/action/options. kind=signatures returns the query symbol's exact signature. kind=neighbors returns the query symbol's callers and implementers. kind=task ranks candidate files for the query with the graded refuse-and-route contract. Use instead of broad grep when the name, wiring, or task is known.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | – | The kind: symbol, path, text, all (exact); service, request, route, config (wiring); signatures; neighbors; task. |
| path | string | – | Absolute or relative path to the workspace directory. |
| query | string | yes | The name, path fragment, text, wiring identifier, or task to find. |
No output schema declared.
No examples provided.
fuse_impact ~283
Blast radius for a symbol before you edit it: the callers, implementers, consumers, and referencing types a change would touch, from the persisted semantic graph. No bodies. The exact signature-change break set (which call sites would no longer bind) needs an oracle-grade (tier-1) load and is reported unavailable otherwise, rather than guessed. Package-upgrade mode (F3): pass package + fromVersion + toVersion to get the public-API break set between two cached NuGet package versions (removed/changed public members), so a bump's risk is knowable before the lockfile changes; it abstains when a version is not in the local cache and names its blind spots.
| Name | Type | Req | Description |
|---|---|---|---|
| fromVersion | string | – | Package-upgrade mode: the currently referenced version. |
| limit | integer | – | Maximum impacted items to return. |
| package | string | – | Package-upgrade mode: the NuGet package id whose bump to analyze. |
| path | string | – | Absolute or relative path to the workspace directory. |
| session | string | – | Optional session id: when set, this call's graded claims are appended to the session's claim ledger (U2). |
| symbol | string | – | The symbol (simple or qualified name) whose blast radius to compute. |
| toVersion | string | – | Package-upgrade mode: the target (upgrade) version. |
No output schema declared.
No examples provided.
fuse_reduce ~180
Compact a specific set of files (or raw content) by running Fuse's reduction, without collecting a whole directory. Pass `files` or `content` (+ `extension`).
| Name | Type | Req | Description |
|---|---|---|---|
| content | string|null | – | Raw content to reduce instead of files. Provide extension to select the reducer. |
| extension | string | – | Extension that selects the reducer for content (for example .cs, .ts, .py). Defaults to .cs. |
| files | array|null | – | File paths to reduce, absolute or relative to path. |
| level | string | – | Reduction level: none, standard, aggressive, skeleton, publicApi. Defaults to standard. |
| maxTokens | integer | – | Maximum tokens the reduced output may use, or 0 for no limit. |
| path | string | – | Base directory for resolving relative file paths. Ignored in content mode. |
No output schema declared.
No examples provided.
fuse_refactor ~672
Compiler-executed, verify-gated refactors returned as a staged diff (nothing is written to disk). operation=rename (default): rename a symbol and all its references through Roslyn (a same-named unrelated symbol is not touched). operation=add-parameter: add a trailing parameter to a method and its override/interface family, threading an explicit argument (the `argument` value) into every call site. operation=add-cancellation-token: add a CancellationToken parameter and thread an in-scope token into every call site that has one, listing token-less sites as manual follow-ups. operation=remove-parameter: remove a parameter (named by parameterName) and drop its argument at every call site, abstaining when the parameter is used in a body or a call site passes a non-trivial (possibly side-effecting) argument. operation=reorder-parameters: reorder parameters into `newOrder` (comma-separated names), abstaining if any call site uses positional arguments (only named-argument call sites are safe to reorder). operation=extract-interface: generate an interface from a class's public instance methods and properties (name it with newName, else I<Class>) and make the class implement it. operation=move-type: move a top-level type (symbol) to its own new file named after it, removing it from its current file. operation=apply-codefix: apply the repo's own analyzer code fix for `diagnosticId` in `file`, driving that diagnostic to zero (discovers the analyzers and [ExportCodeFixProvider] fixes from the project's analyzer references). The signature and type operations recompile the solution and return the diff ONLY when no new diagnostic is introduced; otherwise they abstain naming the offending sites (never a mostly-right diff). Rename and the signature ops answer only when the whole solution loads cleanly; abstain otherwise. Review and apply the staged diff with normal editing tools, then run the repository's required gates.
| Name | Type | Req | Description |
|---|---|---|---|
| argument | string | – | The argument expression added at every call site (add-parameter; defaults to 'default'). |
| containingType | string | – | The declaring type's simple name, to disambiguate a method shared across types (signature operations). |
| diagnosticId | string | – | The diagnostic id to fix (apply-codefix), for example IDE0090 or a repo analyzer id. |
| file | string | – | The repo-relative file to apply the code fix in (apply-codefix). |
| newName | string | – | The new name (rename only). |
| newOrder | string | – | The parameter names in the desired order, comma-separated (reorder-parameters). |
| operation | string | – | The operation: rename (default), add-parameter, add-cancellation-token, remove-parameter, reorder-parameters, extract-interface, move-type, or apply-codefix. |
| parameterName | string | – | The new parameter's name (add-parameter; defaults to cancellationToken for add-cancellation-token). |
| parameterType | string | – | The new parameter's type, as written in source (add-parameter). |
| path | string | – | Absolute or relative path to the workspace directory. |
| symbol | string | – | The simple name of the symbol to rename, or the method name for a signature operation. |
No output schema declared.
No examples provided.
fuse_review ~266
Review the semantic impact of a change since a git base ref: changed files, the blast radius (callers, DI consumers, route/request handlers, options consumers, tests), and the packed context. The flagship tool for PR/change work.
| Name | Type | Req | Description |
|---|---|---|---|
| changedSince | string | – | The git base ref to diff against (branch, commit, or HEAD~N). |
| checkSession | string | – | For handoff: the fuse_check session id to gate on (refuses while it has unresolved introduced errors). |
| format | string | – | Output format: xml (default), markdown, or json. |
| handoff | boolean | – | Produce a paste-ready PR handoff packet instead of the review context; refuses while the check session has unresolved introduced errors (U2). |
| includeTests | boolean | – | Include related test files. |
| maxChangedFiles | integer | – | Maximum changed files before review returns a bounded partial (changed-file list only). 0 uses FUSE_REVIEW_MAX_CHANGED_FILES or the default of 150. |
| maxTokens | integer | – | Token budget; changed files are always kept. |
| path | string | – | Absolute or relative path to the workspace directory. |
| sessionId | string|null | – | Session id; files already sent unchanged in this session are elided. |
No output schema declared.
No examples provided.
fuse_test ~328
Run the covering tests for a symbol: the tests that reach it through the persisted tests edges, run at build grade (dotnet test scoped by filter to just those test types, the whole suite never run), with per-test verdicts. Selection-only when no tests edge reaches the symbol. Build-grade runs the real build; the emit fast path is future work. Candidate racing (F2): pass candidates (a JSON array of {id?, file, content} single-file edits, bounded k) to speculatively typecheck all of them over the live resident compilation and get per-candidate diagnostics plus a winner by strict dominance (a lone clean candidate beats any with errors; ties reported); each candidate reuses the shared held compilation (only its own changed file rebinds), racing needs a resident workspace (FUSE_RESIDENT=1) and never applies a candidate.
| Name | Type | Req | Description |
|---|---|---|---|
| analyzers | boolean | – | Candidate racing: also run the repo's configured analyzers against each candidate overlay (CI parity). Default on. |
| candidates | string | – | Candidate racing (F2): a JSON array of single-file edits to race, each {id?, file, content}. When set, races them through the speculative typecheck instead of running the covering tests. |
| limit | integer | – | Maximum covering test types to run. |
| maxCandidates | integer | – | Candidate racing: the maximum number of candidates accepted (the bound on k; default 4). |
| path | string | – | Absolute or relative path to the workspace directory. |
| symbol | string | – | The symbol whose covering tests to run. |
No output schema declared.
No examples provided.
fuse_workspace ~358
Workspace status and lifecycle (the loop's first stop). action=status (default): index mode, verification grade, freshness, and active job. action=index: start or join the syntax index job. action=cancel: stop the active index job. action=map: symbols, routes, and counts. action=doctor: daemon, configuration, storage, compiler-target, and job diagnostics. action=apply: write a proposed single-file edit (file + content) to the working tree; it is a dry run unless write=true and refuses paths outside the workspace root.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | The action: status, index, cancel, map, doctor, or apply. |
| content | string | – | For the apply action: the full new content to write to that file. |
| detail | string | – | For the map action: detail to include (symbols, routes, all). |
| expectedHash | string | – | For the apply action: the SHA-256 (hex) of the file content this edit was derived from. When set, apply refuses if the file changed since (a concurrent edit), rather than clobbering it. |
| file | string | – | For the apply action: the repo-relative file to write. |
| maxRows | integer | – | For the map action: maximum rows per section. |
| path | string | – | Absolute or relative path to the workspace directory. |
| refresh | boolean | – | For the doctor action: force a live MSBuild load diagnosis instead of reporting the diagnosis stamped in the warm index (R43). Default false reports from the index in sub-second time when it is prese… |
| write | boolean | – | For the apply action: actually write (otherwise a dry run reports the change without writing). |
No output schema declared.
No examples provided.
What is the Fuse MCP server?
Fuse is an MCP server listed in the public MCP registry as io.github.Litenova-Solutions/fuse. Local .NET compiler verification, change impact, and typed wiring for AI agents. This page covers its NuGet package (Fuse).
Is the Fuse MCP server safe to use?
Fuse scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. 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 Fuse MCP server expose?
Fuse exposes 9 tools: fuse_reduce, fuse_refactor, fuse_review, fuse_impact, fuse_test, and 4 more. Their descriptions and schemas cost roughly 2,922 tokens of context every time the server is loaded.
Is the Fuse MCP server still maintained?
Fuse is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Fuse MCP server under?
Fuse declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.