-
Notifications
You must be signed in to change notification settings - Fork 197
feat(mcp): refactor to use go-sdk #385
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
Conversation
e112c07 to
1e24411
Compare
9455a33 to
7c0fd25
Compare
0643f1c to
a48decd
Compare
c8ee9bf to
77d3ce7
Compare
2b821b0 to
523baff
Compare
Signed-off-by: Marc Nuri <[email protected]>
| github.com/fsnotify/fsnotify v1.9.0 | ||
| github.com/go-jose/go-jose/v4 v4.1.3 | ||
| github.com/google/jsonschema-go v0.3.0 | ||
| github.com/mark3labs/mcp-go v0.43.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
some of the tests still have reference to this. Will that clean-up follow in a separate PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The tests are still running using the Mark3Labs MCP client.
We can eventually move to just use the official go-sdk mcp client, but I find it more reliable this way though.
| // TODO: No option to perform a full replacement of tools. | ||
| // Remove tools that are no longer applicable |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is also to follow up, w/ upstream?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yup, I think we discussed this earlier today or yesterday in a different PR or chat.
Once this is in I'll open an issue upstream and see if they are receptive to a SetTools implementation (comments in their code don't suggest they might want it, so better to provide a real use-case/scenario).
| // For clients to be able to listen to tool changes, we need to set the server stateful | ||
| // https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#listening-for-messages-from-the-server |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wondering: was the old impl than not "compliant" to latest spec?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think mark3labs was more lenient in this regard.
I'm not sure that the MCP protocol states that listening for tool changes is something that requires a session id, but in the go-sdk implementation it does.
|
I want to test with w/ the checked in keycloak scripts |
tested the keycloak setup from the |
|
LGTM 🎉 |
|
Merging 🚀 |
Fixes #219