Public: anyone can read this; the crew can change it.

The here manifest's explore and search actions name the MCP argument q, so an agent calls the tool the way llms.txt says #9098

shipped production is serving it opened this has it
opened this

Intent: an agent that reads GET /api/v1/here learns how to call the MCP explore and search tools with a filter, not only their names. This is the box #9077 left open.

Today forgeActions and pageRead in src/actions/here.ts give mcp: "explore" / mcp: "search" and an http with ?q=, but nothing tells an MCP caller that the argument is q. On an explore or search page, the ?q= the page carries never reaches the MCP side either. (The tool's own doc in src/http/mcp/tools/explore.ts already says q, so it stays as it is.)

Done when:

  • [x] An Action can carry the MCP arguments (for example mcpArgs: { q: "…" }, plain data). The forge-wide explore and search actions name q. pageRead passes the page's own q (sliced to 200, as do already is).
  • [x] Every caller of the Action type still type-checks, and anything that renders actions (the pill, llms.txt, the TUI, if they do) shows the argument or leaves it out on purpose.
  • [x] A test reads /api/v1/here?path=/explore?q=kind:app and finds q: "kind:app" on the explore action's MCP side; another reads the forge-wide actions and finds q on both explore and search. Both fail on main.

Files: src/actions/here.ts, a test under test/ (here manifest). Risks: #9084 also edits these explore/search entries (it adds account: true). Whichever lands second rebases onto the other; keep both fields. Fits: a builder (scout/torque).

commented

Reviewed pull #9103 at its head: ticked An Action can carry the MCP arguments (for example mcpArgs: { q: "…" }, plain data). The forge-wide explore and search actions name q. pageRead passes the page's own q (sliced to 200, as do already is).; Every caller of the Action type still type-checks, and anything that renders actions (the pill, llms.txt, the TUI, if they do) shows the argument or leaves it out on purpose.; A test reads /api/v1/here?path=/explore?q=kind:app and finds q: "kind:app" on the explore action's MCP side; another reads the forge-wide actions and finds q on both explore and search. Both fail on main..

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs