{"owner":"mark3labs","repo":"mcp-go","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# Commands\n- **Test all**: `go test ./... -race`\n- **Test package**: `go test ./mcp -v` or `go test ./server -v`\n- **Test single**: `go test -run TestName ./package -v`\n- **Coverage**: `go test -coverprofile=coverage.txt -covermode=atomic $(go list ./... | grep -v '/examples/' | grep -v '/testdata' | grep -v '/mcptest' | grep -v '/server/internal/gen')`\n- **Lint**: `golangci-lint run` (uses .golangci.yml config)\n- **Generate**: `go generate ./...` (regenerates hooks and request handlers)\n\n# Git\n- **Verified commits**: When possible, make verified (signed) commits using GPG, SSH, or S/MIME signing keys\n\n# Code Style\n- **Imports**: Standard library first, then third-party, then local packages (goimports handles this)\n- **Naming**: Use Go conventions - exported names (PascalCase), unexported names (camelCase), acronyms uppercase (HTTP, JSON, MCP)\n- **Error handling**: Return sentinel errors (e.g., `ErrMethodNotFound`), wrap with `fmt.Errorf(\"context: %w\", err)`, use `errors.Is/As` for checking\n- **Types**: Use explicit types; avoid `any` except for protocol flexibility (e.g., `Arguments any`); prefer strongly-typed structs\n- **Comments**: All exported types/functions MUST have godoc comments starting with the name; no inline comments unless necessary\n- **Testing**: Use `testify/assert` and `testify/require`; table-driven tests with `tests := []struct{ name, ... }`; test files end in `_test.go`\n- **Context**: Always accept `context.Context` as first parameter in handlers and long-running functions\n- **Thread safety**: Use `sync.Mutex` for shared state; document thread-safety requirements in comments\n- **JSON**: Use json tags with `omitempty` for optional fields; use `json.RawMessage` for flexible/deferred parsing\n"},"files":{"AGENTS.md":"# Commands\n- **Test all**: `go test ./... -race`\n- **Test package**: `go test ./mcp -v` or `go test ./server -v`\n- **Test single**: `go test -run TestName ./package -v`\n- **Coverage**: `go test -coverprofile=coverage.txt -covermode=atomic $(go list ./... | grep -v '/examples/' | grep -v '/testdata' | grep -v '/mcptest' | grep -v '/server/internal/gen')`\n- **Lint**: `golangci-lint run` (uses .golangci.yml config)\n- **Generate**: `go generate ./...` (regenerates hooks and request handlers)\n\n# Git\n- **Verified commits**: When possible, make verified (signed) commits using GPG, SSH, or S/MIME signing keys\n\n# Code Style\n- **Imports**: Standard library first, then third-party, then local packages (goimports handles this)\n- **Naming**: Use Go conventions - exported names (PascalCase), unexported names (camelCase), acronyms uppercase (HTTP, JSON, MCP)\n- **Error handling**: Return sentinel errors (e.g., `ErrMethodNotFound`), wrap with `fmt.Errorf(\"context: %w\", err)`, use `errors.Is/As` for checking\n- **Types**: Use explicit types; avoid `any` except for protocol flexibility (e.g., `Arguments any`); prefer strongly-typed structs\n- **Comments**: All exported types/functions MUST have godoc comments starting with the name; no inline comments unless necessary\n- **Testing**: Use `testify/assert` and `testify/require`; table-driven tests with `tests := []struct{ name, ... }`; test files end in `_test.go`\n- **Context**: Always accept `context.Context` as first parameter in handlers and long-running functions\n- **Thread safety**: Use `sync.Mutex` for shared state; document thread-safety requirements in comments\n- **JSON**: Use json tags with `omitempty` for optional fields; use `json.RawMessage` for flexible/deferred parsing\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# Commands\n- **Test all**: `go test ./... -race`\n- **Test package**: `go test ./mcp -v` or `go test ./server -v`\n- **Test single**: `go test -run TestName ./package -v`\n- **Coverage**: `go test -coverprofile=coverage.txt -covermode=atomic $(go list ./... | grep -v '/examples/' | grep -v '/testdata' | grep -v '/mcptest' | grep -v '/server/internal/gen')`\n- **Lint**: `golangci-lint run` (uses .golangci.yml config)\n- **Generate**: `go generate ./...` (regenerates hooks and request handlers)\n\n# Git\n- **Verified commits**: When possible, make verified (signed) commits using GPG, SSH, or S/MIME signing keys\n\n# Code Style\n- **Imports**: Standard library first, then third-party, then local packages (goimports handles this)\n- **Naming**: Use Go conventions - exported names (PascalCase), unexported names (camelCase), acronyms uppercase (HTTP, JSON, MCP)\n- **Error handling**: Return sentinel errors (e.g., `ErrMethodNotFound`), wrap with `fmt.Errorf(\"context: %w\", err)`, use `errors.Is/As` for checking\n- **Types**: Use explicit types; avoid `any` except for protocol flexibility (e.g., `Arguments any`); prefer strongly-typed structs\n- **Comments**: All exported types/functions MUST have godoc comments starting with the name; no inline comments unless necessary\n- **Testing**: Use `testify/assert` and `testify/require`; table-driven tests with `tests := []struct{ name, ... }`; test files end in `_test.go`\n- **Context**: Always accept `context.Context` as first parameter in handlers and long-running functions\n- **Thread safety**: Use `sync.Mutex` for shared state; document thread-safety requirements in comments\n- **JSON**: Use json tags with `omitempty` for optional fields; use `json.RawMessage` for flexible/deferred parsing\n","category":"root","tokens":435}]}