Skip to content

Revisit use of comma-separated lists #31

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
juruen opened this issue Mar 20, 2025 · 2 comments · Fixed by #82
Closed

Revisit use of comma-separated lists #31

juruen opened this issue Mar 20, 2025 · 2 comments · Fixed by #82
Assignees

Comments

@juruen
Copy link
Collaborator

juruen commented Mar 20, 2025

Context

In #18 and other PRs where parameters can be expressed through arrays, we are using comma-separated lists instead as they seemed to cause issues in the clients.

As things are moving quite fast, let's revisit its use.

@juruen
Copy link
Collaborator Author

juruen commented Mar 27, 2025

The issue was related to the array schemas not being compliant. This has been resolved, and we already have a couple of tools using arrays.

We can now migrate the existing comma-separated lists at our earliest convenience.

@williammartin
Copy link
Collaborator

Here are the places this is an issue:

conformance_test.go:254:
                Error Trace:    /Users/williammartin/workspace/github-mcp-server/conformance/conformance_test.go:254
                Error:          Received unexpected error:
                                inputSchema mismatch for tool "create_issue":
                                  conformance_test.inputSchema{
                                        Type: "object",
                                        Properties: map[string]any{
                                                "assignees": map[string]any{
                                                        ... // 1 ignored entry
                                -                       "items": map[string]any{"type": string("string")},
                                -                       "type":  string("array"),
                                +                       "type":  string("string"),
                                                },
                                                "body": map[string]any{"type": string("string"), ...},
                                                "labels": map[string]any{
                                                        ... // 1 ignored entry
                                -                       "items": map[string]any{"type": string("string")},
                                -                       "type":  string("array"),
                                +                       "type":  string("string"),
                                                },
                                -               "milestone": map[string]any{"description": string("Milestone number to assign"), "type": string("number")},
                                                "owner":     map[string]any{"type": string("string"), ...},
                                                "repo":      map[string]any{"type": string("string"), ...},
                                                "title":     map[string]any{"type": string("string"), ...},
                                        },
                                        Required: {"owner", "repo", "title"},
                                  }

                                inputSchema mismatch for tool "list_issues":
                                  conformance_test.inputSchema{
                                        Type: "object",
                                        Properties: map[string]any{
                                                "direction": map[string]any{"enum": []any{string("asc"), string("desc")}, "type": string("string"), ...},
                                                "labels": map[string]any{
                                                        ... // 1 ignored entry
                                -                       "items": map[string]any{"type": string("string")},
                                -                       "type":  string("array"),
                                +                       "type":  string("string"),
                                                },
                                                "owner": map[string]any{"type": string("string"), ...},
                                                "page":  map[string]any{"type": string("number"), ...},
                                                ... // 5 identical entries
                                        },
                                        Required: {"owner", "repo"},
                                  }

                                inputSchema mismatch for tool "update_issue":
                                  conformance_test.inputSchema{
                                        Type: "object",
                                        Properties: map[string]any{
                                                "assignees": map[string]any{
                                                        ... // 1 ignored entry
                                -                       "items": map[string]any{"type": string("string")},
                                -                       "type":  string("array"),
                                +                       "type":  string("string"),
                                                },
                                                "body":         map[string]any{"type": string("string"), ...},
                                                "issue_number": map[string]any{"type": string("number"), ...},
                                                "labels": map[string]any{
                                                        ... // 1 ignored entry
                                -                       "items": map[string]any{"type": string("string")},
                                -                       "type":  string("array"),
                                +                       "type":  string("string"),
                                                },
                                                "milestone": map[string]any{"type": string("number"), ...},
                                                "owner":     map[string]any{"type": string("string"), ...},
                                                ... // 3 identical entries
                                        },
                                        Required: {"owner", "repo", "issue_number"},
                                  }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants