Repository navigation
Conversation
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…ent-mcp-resources
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…creds Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
… reads Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
… capped attachments Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…e installs Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…ched off Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…ent-mcp-resources
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
There was a problem hiding this comment.
✅ Devin resolved all 8 findings on c281622
Fixed by Devin (8)
- Long marketplace install commands become unusable
- Failed reads crowd out valid resources
- Unlisted URIs lose meaningful trailing characters
- Configured connection timeouts are ignored
- Partial registry indexes stay cached for days
- Imported server names bypass marketplace duplicate checks
- Old marketplace loads overwrite new visits
- OAuth token refresh lacks request cancellation
[Medium impact] This PR appears safe to merge; no outstanding blocking issues were found. SummaryAdds MCP prompts and resource attachments, a searchable marketplace, OAuth refresh, credential hints, and per-server timeouts.
Reviews (9) · Last reviewed commit: "fix(agent): widen /mcp status column so ..." · Reviewed by Greptile |
…he request, bound resource reads, never cache partial registry indexes, reject imported names in marketplace adds Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…ed resource mentions with a note Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…nto devin/1793477450-agent-mcp-resources Co-Authored-By: Quentin Rousseau <quentin@rootly.com> # Conflicts: # internal/agent/mcp_page.go # internal/agent/tui.go
…nto devin/1793477450-agent-mcp-resources
…nto devin/1793477450-agent-mcp-resources
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…lost auth Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…iding names Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…nto devin/1793477450-agent-mcp-resources
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
|
@greptileai review |
…nto devin/1793477450-agent-mcp-resources
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…ent-mcp-resources Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
…nto devin/1793477450-agent-mcp-resources
|
@greptileai review |
…ent-mcp-resources; Ctrl+C cancels pending MCP prompt/resource loads Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
|
@greptileai review |
… palette Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
|
@greptileai review |
1 similar comment
|
@greptileai review |
…sions or bindings Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
|
@greptileai review |
1 similar comment
|
@greptileai review |
Co-Authored-By: Quentin Rousseau <quentin@rootly.com>
|
🤖 @greptileai review |
|
🤖 Completed the targeted real-terminal retest on final head Passed on c281622:
Reused evidence from ea13384—not rerun on c281622: live registry search/refresh and shell-quoted add output; exact expired-credentials hint once across two real reads; resource listing, prompt invocation, mention palette/Tab insertion; Ctrl+C cancellation of a blocked resource with no canceled turn sent; Enter not adding from preview; space enabling the server and causing its first new process. The only intervening change is status-column sizing.
Coverage boundary: OAuth/401 refresh/discovery was not E2E-tested. Whitespace/control prompt-name filtering, resource cap/skipped-note cases, project trust, skill/resume/binding-switch races, print-mode credential hint, and measured slow-tool timeout remain untested. A desktop runtime reset required service recovery and the approved tmux/X11 capture fallback; the new recording contains the fresh final-head sequence. Isolated configuration/state were restored byte-for-byte; real |
Summary
Why: rootly-ai-tui is being retired in favour of
rootly agent. This ports its MCP prompts/resources, marketplace and credential-freshness behaviour (audit rows 31, 32, 33, 58, 60, 61, 65, 66, 67, 80). Stacked on #77. CLI-only, no Rails change.What
prompts/listandresources/listare called only when the server'sinitializeadvertises that capability (max 500 each)./server:promptentries are added to the slash palette, and built-ins and skills win name collisions. New/promptsand/resourceslistings. Typing@server:uriopens a mention palette (top 8, Tab inserts). On send, up to 8 mentioned resources are read, each capped atmcp.ResourceByteCap(32 KB, UTF-8 safe), and prefixed to the message as<resource server=… uri=…>…</resource>. A visibleattached: …/skipped …note is shown./mcprows showN tools · N resources · N prompts.rootly mcp search [query] [--refresh] [--limit]reads the official registryhttps://registry.modelcontextprotocol.io/v0/servers(limit=100,metadata.nextCursor,isLatestonly). It maps npm→npx -y, pypi→uvx, oci→docker run -i --rmand remotes→http/sse, and caches the index at~/.rootly-cli/mcp-index.json. The results are merged with a curated list (Datadog, Sentry, Linear, Notion first) and env hints. In/mcp,mopens the marketplace and Enter previews the exact command or URL. Onlyyadds the server, to user scope, written off. Nothing runs until the user turns it on, and project trust approval is unchanged. Names that are already configured in any scope are rejected.Refresh local creds, e.g. `aws sso login`once per run, in the TUI and in-pmode. Errors from declined tools don't trigger it. The new optional per-server"timeout": <seconds>(1–600) applies to connecting and to tool calls.Before → after: before, there were no MCP prompts or resources, no marketplace, a 401 needed a manual
rootly mcp login, and every server had the fixed default timeout. After, all of the above.Risk:
risk:low. Therootly agentcommand is hidden and these features are additive. Marketplace installs are off by default and never auto-run.Rollback: revert this PR.
Verification (stacked PR, so no Actions CI):
go test -race ./...,make lint(0 issues),make buildandgit diff --checkall pass locally.Link to Devin session: https://rootly.devinenterprise.com/sessions/5e2e52b477b74d98b9ed9500fe7b4860
Open in Devin Desktop: https://rootly.devinenterprise.com/desktop/session/5e2e52b477b74d98b9ed9500fe7b4860?variant=devin
Requested by: @kwent