Skip to main content
Glama

protolint-mcp

by yoheimuta
mcpReporter.go1.24 kB
package reporters import ( "encoding/json" "fmt" "io" "github.com/yoheimuta/protolint/linter/report" ) // MCPReporter prints failures in MCP friendly JSON format. type MCPReporter struct{} // Report writes failures to w in MCP friendly format. func (r MCPReporter) Report(w io.Writer, fs []report.Failure) error { // Group failures by file fileFailures := make(map[string][]map[string]interface{}) for _, failure := range fs { filePath := failure.Pos().Filename failureInfo := map[string]interface{}{ "rule_id": failure.RuleID(), "message": failure.Message(), "line": failure.Pos().Line, "column": failure.Pos().Column, "severity": failure.Severity(), } fileFailures[filePath] = append(fileFailures[filePath], failureInfo) } // Convert to array of results var fileResults []map[string]interface{} = []map[string]interface{}{} for filePath, failures := range fileFailures { fileResults = append(fileResults, map[string]interface{}{ "file_path": filePath, "failures": failures, }) } result := map[string]interface{}{ "results": fileResults, } bs, err := json.MarshalIndent(result, "", " ") if err != nil { return err } _, err = fmt.Fprintln(w, string(bs)) return err }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yoheimuta/protolint'

If you have feedback or need assistance with the MCP directory API, please join our Discord server