-
-
Notifications
You must be signed in to change notification settings - Fork 32
feat(sidecar): Add stdio transport for MCP #933
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
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
betegon
left a comment
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.
looks good! thought this was going to take more time, BYK delivering
Some notes on trying the mcp locally:
- i was trying to use the
spotlightpackage at first instead ofsidecar. shouldn't we expose the--stdio-mcpargument by adding it topackages/spotlight/bin/run.jsand passing it tosetupSidecar. - We should do dynamically change the sidecar port. If it's already running and you run another server, it says that sidecar is already running. this would cause trouble if you want to connect to the mcp and alread have the electron app running. same happened to me when I was trying it on the mcp inspector and then went to cursor (without closing the inspector connection).
|
|
||
| export function createMcpInstance() { | ||
| export function createMCPInstance() { | ||
| const mcp = new McpServer({ |
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.
shouldn't we track this with our instrumentation?
WrapMcpServerWithSentry?
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.
Yes @MathurAditya724 shouldn't we track our stuff? 😀
Yes, that was actually my next step once we validated that this thing works. Will add it to this patch.
This is a great point, thanks for sharing! We cannot create multiple sidecar instances listening on random ports tho as we need to tell the SDKs which sidecar to talk to. Instead, when we detect an existing instance, I'll make the new one a proxy for the other one. Since this is gonna be a bit tricky, I'll do that in a follow up PR tho. |
461f1ff to
37b0a02
Compare
37b0a02 to
d89e980
Compare
betegon
left a comment
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.
thought it looked good from afar, far better up close. reference
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing). If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @spotlightjs/overlay@4.0.0 ### Major Changes - Remove integrations architecture in favour of fixed telemetry features and remove the ability to use the package as an overlay on top of apps. ([#917](#917)) - Remove all vite-plugins as they are deprecated ([#937](#937)) ### Minor Changes - - Implement URL-based routing in overlay with BrowserRouter for web apps and HashRouter for Electron ([#921](#921)) - Remove sentry-integration.ts and simplify telemetry implementation - Moved telemetry logic from App.tsx to dedicated Telemetry component ### Patch Changes - Remove local resource handling and vite plugin as overlay feature is not supported ([#924](#924)) - Refactor to remove object destructuring from hooks returning only one value ([#930](#930)) ## @spotlightjs/sidecar@2.0.0 ### Major Changes - Make `setupSidecar` async as it should be ([#936](#936)) - Remove all vite-plugins as they are deprecated ([#937](#937)) ### Minor Changes - Add support for multiple stdio MCP servers to run, as a proxy for the existing main sidecar ([#935](#935)) - Adds stdio based MCP server via a `--stdio-mcp` CLI argument. Also removes the context-based message buffers to be able to achieve this as there's no context-id for the stdio transport. This feature was not used anyway. ([#933](#933)) Moves all log messages to stderr as they should have been to avoid clobbering the MCP stdio transport. ### Patch Changes - - To check all items in an envelope for errors. ([#880](#880)) - restructured the sidecar server and minor improvements ([#918](#918)) - To add a soft reset buffer when its cleared. ([#895](#895)) ## @spotlightjs/spotlight@4.0.0 ### Major Changes - Make `setupSidecar` async as it should be ([#936](#936)) - Remove all vite-plugins as they are deprecated ([#937](#937)) ### Minor Changes - Add support for multiple stdio MCP servers to run, as a proxy for the existing main sidecar ([#935](#935)) - Adds stdio based MCP server via a `--stdio-mcp` CLI argument. Also removes the context-based message buffers to be able to achieve this as there's no context-id for the stdio transport. This feature was not used anyway. ([#933](#933)) Moves all log messages to stderr as they should have been to avoid clobbering the MCP stdio transport. ### Patch Changes - Remove local resource handling and vite plugin as overlay feature is not supported ([#924](#924)) - Updated dependencies \[[`2fe54bb`](2fe54bb), [`20783d0`](20783d0), [`48c6753`](48c6753), [`65f4e9f`](65f4e9f), [`bb85759`](bb85759), [`1f2096e`](1f2096e), [`cec5457`](cec5457), [`5670dd4`](5670dd4), [`605b1e1`](605b1e1), [`69bfd17`](69bfd17), [`3d56a55`](3d56a55)]: - @spotlightjs/sidecar@2.0.0 - @spotlightjs/overlay@4.0.0 ## @spotlightjs/electron@1.8.0 ### Minor Changes - Run electron app in background and add a menu tray ([#929](#929)) - Make app window draggable ([#931](#931)) - Added Auto Updater ([#922](#922)) ### Patch Changes - - Implement URL-based routing in overlay with BrowserRouter for web apps and HashRouter for Electron ([#921](#921)) - Remove sentry-integration.ts and simplify telemetry implementation - Moved telemetry logic from App.tsx to dedicated Telemetry component - Updated dependencies \[[`2fe54bb`](2fe54bb), [`20783d0`](20783d0), [`48c6753`](48c6753), [`65f4e9f`](65f4e9f), [`bb85759`](bb85759), [`1f2096e`](1f2096e), [`cec5457`](cec5457), [`5670dd4`](5670dd4), [`605b1e1`](605b1e1), [`69bfd17`](69bfd17), [`3d56a55`](3d56a55)]: - @spotlightjs/sidecar@2.0.0 - @spotlightjs/overlay@4.0.0 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
No description provided.