Skip to content

[TS] Add usvm-mcp: MCP server exposing symbolic execution tools#340

Draft
CaelmBleidd wants to merge 2 commits into
mainfrom
caelmbleidd/usvm_agent
Draft

[TS] Add usvm-mcp: MCP server exposing symbolic execution tools#340
CaelmBleidd wants to merge 2 commits into
mainfrom
caelmbleidd/usvm_agent

[CI] Pin TypeScript toolchain for the ArkAnalyzer build

bba060f
Select commit
Loading
Failed to load commit list.
GitHub Advanced Security / detekt succeeded Jul 5, 2026 in 3s

13 new alerts

New alerts in code changed by this pull request

  • 13 warnings

See annotations below for details.

View all branch alerts.

Annotations

Check warning on line 11 in usvm-mcp/src/main/kotlin/org/usvm/mcp/McpErrors.kt

See this annotation in the file changed.

Code scanning / detekt

If a source file contains only a single non-private top-level class or object, the file name should reflect the case-sensitive name plus the .kt extension. Warning

The file name 'McpErrors' does not match the name of the single top-level declaration 'McpToolException'.

Check warning on line 30 in usvm-mcp/src/main/kotlin/org/usvm/mcp/McpErrors.kt

See this annotation in the file changed.

Code scanning / detekt

Report magic numbers. Magic number is a numeric literal that is not defined as a constant and hence it's unclear what the purpose of this number is. It's better to declare such numbers as constants and give them a proper name. By default, -1, 0, 1, and 2 are not considered to be magic numbers. Warning

This expression contains a magic number. Consider defining it to a well named constant.

Check warning on line 100 in usvm-mcp/src/main/kotlin/org/usvm/mcp/exec/TsAnalysisRunner.kt

See this annotation in the file changed.

Code scanning / detekt

The `suspend` modifier is only needed for functions that contain suspending calls. Warning

Function has redundant suspend modifier.

Check warning on line 102 in usvm-mcp/src/main/kotlin/org/usvm/mcp/exec/TsAnalysisRunner.kt

See this annotation in the file changed.

Code scanning / detekt

Don't hardcode dispatchers when creating new coroutines or calling `withContext`. Use dependency injection for dispatchers to make testing easier. Warning

Dispatcher IO is used without dependency injection.

Check warning on line 32 in usvm-mcp/src/main/kotlin/org/usvm/mcp/scene/MethodLookup.kt

See this annotation in the file changed.

Code scanning / detekt

Restrict the number of throw statements in methods. Warning

Too many throw statements in the function findMethod. The maximum number of allowed throw statements is 2.

Check warning on line 40 in usvm-mcp/src/main/kotlin/org/usvm/mcp/scene/MethodLookup.kt

See this annotation in the file changed.

Code scanning / detekt

Braces do not comply with the specified policy Warning

Inconsistent braces, make sure all branches either have or don't have braces.

Check warning on line 41 in usvm-mcp/src/main/kotlin/org/usvm/mcp/scene/SceneCache.kt

See this annotation in the file changed.

Code scanning / detekt

The caught exception is swallowed. The original exception could be lost. Warning

The caught exception is swallowed. The original exception could be lost.

Check warning on line 48 in usvm-mcp/src/main/kotlin/org/usvm/mcp/scene/SceneCache.kt

See this annotation in the file changed.

Code scanning / detekt

Unreachable code detected. This code should be removed. Warning

This expression is unreachable code which should either be used or removed.

Check warning on line 49 in usvm-mcp/src/main/kotlin/org/usvm/mcp/scene/SceneCache.kt

See this annotation in the file changed.

Code scanning / detekt

Unreachable code detected. This code should be removed. Warning

This expression is unreachable code which should either be used or removed.

Check warning on line 50 in usvm-mcp/src/main/kotlin/org/usvm/mcp/scene/SceneCache.kt

See this annotation in the file changed.

Code scanning / detekt

Unreachable code detected. This code should be removed. Warning

This expression is unreachable code which should either be used or removed.

Check warning on line 53 in usvm-mcp/src/main/kotlin/org/usvm/mcp/scene/SceneCache.kt

See this annotation in the file changed.

Code scanning / detekt

Restrict the number of throw statements in methods. Warning

Too many throw statements in the function resolveTsFile. The maximum number of allowed throw statements is 2.

Check warning on line 74 in usvm-mcp/src/main/kotlin/org/usvm/mcp/scene/SceneCache.kt

See this annotation in the file changed.

Code scanning / detekt

Restrict the number of throw statements in methods. Warning

Too many throw statements in the function checkArkAnalyzerAvailable. The maximum number of allowed throw statements is 2.

Check warning on line 19 in usvm-mcp/src/main/kotlin/org/usvm/mcp/tools/ToolDefinitions.kt

See this annotation in the file changed.

Code scanning / detekt

If a source file contains only a single non-private top-level class or object, the file name should reflect the case-sensitive name plus the .kt extension. Warning

The file name 'ToolDefinitions' does not match the name of the single top-level declaration 'UsvmToolContext'.