Skip to content

Commit 7c5b618

Browse files
committed
Remove cadence_lint MCP tool — available via flow cadence lint CLI
1 parent dcbb4b5 commit 7c5b618

3 files changed

Lines changed: 0 additions & 132 deletions

File tree

internal/mcp/lint_test.go

Lines changed: 0 additions & 79 deletions
This file was deleted.

internal/mcp/mcp.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ Available tools:
6262
cadence_completion Get completions at a position
6363
get_contract_source Fetch on-chain contract manifest
6464
get_contract_code Fetch contract source code from an address
65-
cadence_lint Run Cadence lint analyzers (AST-based)
6665
cadence_code_review Review Cadence code for common issues
6766
cadence_execute_script Execute a read-only Cadence script on-chain`,
6867
Run: runMCP,

internal/mcp/tools.go

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,10 @@ import (
2929
mcplib "github.com/mark3labs/mcp-go/mcp"
3030
mcpserver "github.com/mark3labs/mcp-go/server"
3131
"github.com/onflow/cadence"
32-
"github.com/onflow/cadence/tools/analysis"
3332
flow "github.com/onflow/flow-go-sdk"
3433

3534
"github.com/onflow/flowkit/v2"
3635
"github.com/onflow/flowkit/v2/arguments"
37-
38-
cadenceLinter "github.com/onflow/flow-cli/internal/cadence"
3936
)
4037

4138
// mcpContext holds shared dependencies for all MCP tool handlers.
@@ -132,14 +129,6 @@ func registerTools(s *mcpserver.MCPServer, mctx *mcpContext) {
132129
mctx.getContractCode,
133130
)
134131

135-
s.AddTool(
136-
mcplib.NewTool("cadence_lint",
137-
mcplib.WithDescription("Run Cadence lint analyzers on code. Detects common issues like unnecessary casts, deprecated patterns, unused variables, and more using AST-based analysis."),
138-
mcplib.WithString("code", mcplib.Required(), mcplib.Description("Cadence source code to lint")),
139-
),
140-
mctx.cadenceLint,
141-
)
142-
143132
s.AddTool(
144133
mcplib.NewTool("cadence_code_review",
145134
mcplib.WithDescription("Review Cadence code for common issues and anti-patterns."),
@@ -372,19 +361,6 @@ func (m *mcpContext) getContractCode(ctx context.Context, req mcplib.CallToolReq
372361
return mcplib.NewToolResultText(b.String()), nil
373362
}
374363

375-
func (m *mcpContext) cadenceLint(_ context.Context, req mcplib.CallToolRequest) (*mcplib.CallToolResult, error) {
376-
code, err := resolveCode(req)
377-
if err != nil {
378-
return mcplib.NewToolResultError(err.Error()), nil
379-
}
380-
381-
diagnostics, err := cadenceLinter.LintCode(code, m.state)
382-
if err != nil {
383-
return mcplib.NewToolResultError(fmt.Sprintf("lint failed: %v", err)), nil
384-
}
385-
return mcplib.NewToolResultText(formatLintDiagnostics(diagnostics)), nil
386-
}
387-
388364
func (m *mcpContext) cadenceCodeReview(_ context.Context, req mcplib.CallToolRequest) (*mcplib.CallToolResult, error) {
389365
code, err := resolveCode(req)
390366
if err != nil {
@@ -439,31 +415,3 @@ func (m *mcpContext) cadenceExecuteScript(ctx context.Context, req mcplib.CallTo
439415
return mcplib.NewToolResultText(val.String()), nil
440416
}
441417

442-
// formatLintDiagnostics formats analysis diagnostics as human-readable text.
443-
func formatLintDiagnostics(diagnostics []analysis.Diagnostic) string {
444-
if len(diagnostics) == 0 {
445-
return "Lint passed — no issues found."
446-
}
447-
448-
var b strings.Builder
449-
numErrors := 0
450-
numWarnings := 0
451-
for _, d := range diagnostics {
452-
sev := "warning"
453-
if d.Category == "error" || d.Category == "semantic-error" || d.Category == "syntax-error" {
454-
sev = "error"
455-
numErrors++
456-
} else {
457-
numWarnings++
458-
}
459-
fmt.Fprintf(&b, "[%s] line %d:%d (%s): %s\n",
460-
sev,
461-
d.Range.StartPos.Line,
462-
d.Range.StartPos.Column,
463-
d.Category,
464-
d.Message,
465-
)
466-
}
467-
fmt.Fprintf(&b, "\n%d error(s), %d warning(s)\n", numErrors, numWarnings)
468-
return b.String()
469-
}

0 commit comments

Comments
 (0)