MCPcopy Create free account
hub / github.com/bytebase/bytebase / formatQueryOutput

Function formatQueryOutput

backend/api/mcp/tool_query.go:117–138  ·  view source on GitHub ↗

formatQueryOutput formats a successful query result as text header + JSON body.

(statement, resourceName string, output *QueryOutput)

Source from the content-addressed store, hash-verified

115
116// formatQueryOutput formats a successful query result as text header + JSON body.
117func formatQueryOutput(statement, resourceName string, output *QueryOutput) string {
118 var sb strings.Builder
119
120 fmt.Fprintf(&sb, "Query: %s\n", statement)
121 fmt.Fprintf(&sb, "Database: %s\n", resourceName)
122
123 columnList := strings.Join(output.Columns, ", ")
124 if output.Truncated {
125 fmt.Fprintf(&sb, "Result: Showing %d of unknown total rows, %d columns (%s) | %dms\n",
126 output.RowCount, len(output.Columns), columnList, output.LatencyMs)
127 sb.WriteString("Truncated: use limit param for more (max 1000).\n")
128 } else {
129 fmt.Fprintf(&sb, "Result: %d rows, %d columns (%s) | %dms\n",
130 output.RowCount, len(output.Columns), columnList, output.LatencyMs)
131 }
132
133 sb.WriteString("\n")
134 jsonBytes, _ := json.Marshal(output)
135 sb.Write(jsonBytes)
136
137 return sb.String()
138}
139
140// formatToolError converts an error into an MCP error result.
141// If the error is a *toolError, it returns structured JSON with code/message/suggestion.

Callers 1

handleQueryDatabaseMethod · 0.85

Calls 2

JoinMethod · 0.80
StringMethod · 0.65

Tested by

no test coverage detected