fai-mcp-go-scaffold — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited fai-mcp-go-scaffold (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Build high-performance MCP servers in Go with typed handlers and middleware.
mkdir my-mcp-server && cd my-mcp-server
go mod init github.com/org/my-mcp-server
go get github.com/mark3labs/mcp-gopackage main
import (
"context"
"encoding/json"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
func searchDocsTool() mcp.Tool {
return mcp.NewTool("search_documents",
mcp.WithDescription("Search knowledge base documents by query"),
mcp.WithString("query", mcp.Required(), mcp.Description("Search query")),
mcp.WithNumber("top_k", mcp.Description("Results to return")),
)
}
func searchDocsHandler(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
query := req.Params.Arguments["query"].(string)
topK := int(req.Params.Arguments["top_k"].(float64))
if topK == 0 { topK = 5 }
results, err := searchService.Search(ctx, query, topK)
if err != nil {
return nil, err
}
data, _ := json.Marshal(results)
return mcp.NewToolResultText(string(data)), nil
}func main() {
s := server.NewMCPServer("my-mcp-server", "1.0.0")
s.AddTool(searchDocsTool(), searchDocsHandler)
s.AddTool(calculateCostTool(), calculateCostHandler)
if err := server.ServeStdio(s); err != nil {
log.Fatal(err)
}
}FROM golang:1.22 AS build
WORKDIR /app
COPY go.* ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o /mcp-server .
FROM gcr.io/distroless/static
COPY --from=build /mcp-server /mcp-server
ENTRYPOINT ["/mcp-server"]| Issue | Cause | Fix |
|---|---|---|
| Tool not found | Not registered with AddTool | Register tool + handler pair |
| Panic on type assertion | Missing parameter | Check for nil before asserting type |
| High memory under load | No request limits | Add context timeout middleware |
| Binary too large | CGO enabled | Build with CGO_ENABLED=0 |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.