Repository navigation
Move the MCP server into Rust, hosted by the app and yaak mcp - #752
Merged
Merged
Conversation
… mcp` The @yaak/mcp-server plugin's tools move to crates/yaak-mcp on rmcp, written against an McpHost trait. The client app serves them over streamable HTTP on 127.0.0.1:64343 behind a new MCP server setting and a bearer token; the CLI serves them over stdio as `yaak mcp`. The plugin now shows a deprecation toast pointing at the setting.
[High impact] The PR appears safe to merge; the latest change fixes the web menu issue without introducing a new failure. SummaryMoves MCP tools into Rust, served through
|
…r the lock, model events off the runtime
… where agents aren't supported
Member
Author
|
@greptileai review |
Member
Author
|
@greptileai review |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the
@yaak/mcp-serverplugin withcrates/yaak-mcpon rmcp 3.5, PR 4 of the Yaak Proxy plan (proxy tools come in 4b).yaak-mcp: the plugin's 15 tools, same names, input schemas and output text, written against anMcpHosttrait. Stdio transport, and streamable HTTP that requiresAuthorization: Bearer <token>.yaak mcpserves stdio with the CLI's own queries and send path.-eand--cookie-jaract as the active environment and jar; toasts go to stderr.127.0.0.1:64343/mcpwhile the newmcpServerEnabledsetting is on (default off), starting and stopping when it changes. The token is generated on first start and kept in key_values. The plugin's send handler is nowsend_http_request_in_window, shared with MCP.agentsplatform capability): the Yaak CLI with status, install prompt, and agent skill; the app's MCP server toggle and token; and Connect an agent, with setup for Claude Code, Codex, Cursor, VS Code, and other MCP clients through the CLI or the app. The menu's Install CLI item opens this tab.models_ext.rsmoved to its own thread. It blocks inrecv(), so as a runtime task it parked a worker, and anything spawned from it (the settings sync) sat in that worker's LIFO slot until a later spawn pushed it out.Differences from the plugin:
list_workspacesdrops the internal_labeland lists a workspace open in two windows once;send_http_requestJSON keys come out alphabetical (it still returns metadata only, no body, as before). Oldmcp-remoteconfigs need the header now. With the plugin still installed, the built-in server can't bind 64343 and says so in a toast.Tests
cargo test -p yaak-mcp -p yaak-cli: per-tool tests on the CLI host against a temp DB through an rmcp client (the plugin's five send cases included), end-to-end tests spawningyaak mcp(including one where an MCP send's environment and cookie jar reachresponse.*andcookie.value), and an HTTP auth test (401 without or with a wrong token, 404 off/mcp).Claude Code →
yaak mcp(stdio)Claude Code → app via
mcp-remote(token redacted)In the app, one tick of the setting starts the listener and one untick stops it (app log), and the sent request shows its saved 200 in the sidebar.