- Notifications
You must be signed in to change notification settings - Fork932
Closed
Description
Description
When running the conformance tests we saw that a lot of the tools schemas were missing minimum and maximum bounds when it came to pagination properties.
Specifically, we're looking at:
search_code
:page
andperPage
search_issues
:page
andperPage
search_users
:page
andperPage
inputSchema mismatch for tool "search_repositories": conformance_test.inputSchema{ Type: "object", Properties: map[string]any{ "page": map[string]any{"type": string("number"), ...}, - "perPage": map[string]any{ - "description": string("Number of results per page (default: 30, max: 100)"), - "type": string("number"), - }, + "per_page": map[string]any{"description": string("Results per page (max 100)"), "type": string("number")}, "query": map[string]any{"type": string("string"), ...}, }, Required: {"query"}, } inputSchema mismatch for tool "list_commits": conformance_test.inputSchema{ Type: "object", Properties: map[string]any{... - "perPage": map[string]any{ - "description": string("Number of results per page (default: 30, max: 100)"), - "type": string("number"), - }, + "per_page": map[string]any{"description": string("Number of records per page"), "type": string("number")},... } inputSchema mismatch for tool "search_code": conformance_test.inputSchema{ Type: "object", Properties: map[string]any{ "order": map[string]any{"enum": []any{string("asc"), string("desc")}, "type": string("string"), ...}, "page": map[string]any{ ... // 1 ignored entry - "minimum": float64(1), "type": string("number"), }, "per_page": map[string]any{ ... // 1 ignored entry - "maximum": float64(100), - "minimum": float64(1), "type": string("number"), }, "q": map[string]any{"type": string("string"), ...}, }, Required: {"q"}, } inputSchema mismatch for tool "search_issues": conformance_test.inputSchema{ Type: "object", Properties: map[string]any{ "order": map[string]any{"enum": []any{string("asc"), string("desc")}, "type": string("string"), ...}, "page": map[string]any{ ... // 1 ignored entry - "minimum": float64(1), "type": string("number"), }, "per_page": map[string]any{ ... // 1 ignored entry - "maximum": float64(100), - "minimum": float64(1), "type": string("number"), },... }, Required: {"q"}, } inputSchema mismatch for tool "search_users": conformance_test.inputSchema{ Type: "object", Properties: map[string]any{ "order": map[string]any{"enum": []any{string("asc"), string("desc")}, "type": string("string"), ...}, "page": map[string]any{ ... // 1 ignored entry - "minimum": float64(1), "type": string("number"), }, "per_page": map[string]any{ ... // 1 ignored entry - "maximum": float64(100), - "minimum": float64(1), "type": string("number"), }, "q": map[string]any{"type": string("string"), ...}, "sort": map[string]any{"enum": []any{string("followers"), string("repositories"), string("joined")}, "type": string("string"), ...}, }, Required: {"q"}, }
It's not clear to me whysearch_repositories
and list_commits
have no minimum bounds on page. Maybe an oversight for the anthropic server? However, they also have mismatching cases:
inputSchema mismatch for tool "search_repositories": conformance_test.inputSchema{ Type: "object", Properties: map[string]any{ "page": map[string]any{"type": string("number"), ...}, - "perPage": map[string]any{ - "description": string("Number of results per page (default: 30, max: 100)"), - "type": string("number"), - }, + "per_page": map[string]any{"description": string("Results per page (max 100)"), "type": string("number")}, "query": map[string]any{"type": string("string"), ...}, }, Required: {"query"}, } inputSchema mismatch for tool "list_commits": conformance_test.inputSchema{ Type: "object", Properties: map[string]any{... - "perPage": map[string]any{ - "description": string("Number of results per page (default: 30, max: 100)"), - "type": string("number"), - }, + "per_page": map[string]any{"description": string("Number of records per page"), "type": string("number")},... }
Metadata
Metadata
Assignees
Labels
No labels