fix(deps): update dependency pi-mcp-adapter to v4 - #207
Closed
renovate[bot] wants to merge 1 commit into
Closed
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/pi-mcp-adapter-4.x
branch
from
September 30, 2026 21:13
7b2d28f to
d88cdfb
Compare
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.
This PR contains the following updates:
3.3.0→4.0.0Release Notes
nicobailon/pi-mcp-adapter (pi-mcp-adapter)
v4.0.0Compare Source
Highlights
/mcp-adapter setupoffers it when the app is installed and tells you how to turn its server on./mcp-adapter setupis easier to use: it keeps one size, groups actions into sections, shows details beside the list, and scrolls long previews.mcpScriptis now opt-in. When you turn it on, scripts pick the right tool when servers share tool names and remember what each tool returns across sessions.Breaking
mcpScriptis off by default. To keep using it, setsettings.scriptModetotrueinmcp-adapter.json. Its bundled skill, the pointer to it in themcptool description, and the large-result hint (see Changed) follow the same setting.tools.describeinmcpScriptnow looks tools up the same way asmcp({ describe }). Where it used to return the first server's match, it can now returnerror: { code, message }:ambiguous_toolwhen equally good matches exist on more than one server, andserver_disabledorserver_backoffwhen only a disabled or backed-off server has the tool. A clearly closer match, such as an exact name against a normalized one, is still picked without an error. Pass theserverfrom the search result when the target matters:tools.describe({ path, server }).observedOutput.targetfromtools.describeis now the full expression that reads the JSON, such as(await tools.call("github_list_issues", args)).data.structuredContent, instead ofdata.structuredContent. Models misread the short form.observedOutputno longer hascalls, anddescribeno longer says how many calls a shape came from, since saved shapes can come from earlier sessions.Added
pi-mcp-adapter:runtime-tool-call:v1on Pi's event bus. The call goes through the same tool lookup and approval asmcp({ tool }), andrequest.resultresolves to{ ok: true, result }or{ ok: false, error }. Thanks to @Djarid for PR #735./mcp-adapter setupoffers Figma (desktop) when the Figma app is installed. It adds the app's local server athttp://127.0.0.1:3845/mcpand, if nothing answers there yet, says how to turn it on in Figma. Figma's remote server only accepts clients Figma has approved, and Pi isn't one yet.tools.describeandtools.callinmcpScriptaccept theserverfrom a search result:tools.describe({ path, server })andtools.call(path, args, { server }). This makes a tool usable when two servers share its name, as withtoolPrefix: "none". Before, describe returned the first server's tool and call failed as ambiguous. The README has a new "Composable tool search" section showing search, filter, describe, and call in one script.mcpScripton, the output shapes seen from tools are saved inmcp-cache.json, so a later session can script a tool without first calling it to see its fields. Saved shapes hold field names and types only, and are dropped when the tool's description, input schema, or server config changes.mcpScriptrun throws, times out, or returns nothing useful ([],{},null,"", or no value), the result ends with the output shapes of the tools it called, so a wrong field guess can be fixed without another call.settings.scriptSkill: "model"adds themcp-scriptingskill's path to themcpScriptdescription so the model reads it before writing a script. The default,"manual", leaves the skill to/skill:mcp-scripting.Changed
/mcp-adapter setupkeeps one size as you move through it, groups actions into sections, and shows details beside the list. PgUp/PgDn scroll long details. TheCloserow is gone; press Esc to close./mcp-adapter setup; for other servers, setoauth.clientIdif the provider gave you one. Before, it only saidDynamic Client Registration rejected (HTTP 403): Forbidden.localhost,127.0.0.1, or[::1]server URL, the error now addsNothing is listening at <url>. Start the app or local process that serves this MCP server.tools.searchinmcpScriptnow behaves likemcp({ search }). An empty query with aserverlists that server's tools, and a search that can't run returnserror: { code, message }next toitems: [], with the same codes asmcp({ search }), instead of a bare empty result.mcpScripton, MCP tool results of 8 KiB or more end with a one-line hint to usemcpScriptwhen passing them to another call, so models stop retyping large results by hand.mcpScriptdescription is shorter and now explains that a tool call'sdatais the raw MCP result and how to read JSON from it.mcp-scriptingskill is about half as long, withjev.evaluatedetails moved toreferences/jev.md. It now says to write the real script first, check the first item's fields before a loop that writes, and fix the script from the listed fields when it fails or finds nothing.Fixed
builtin:mcp, so the adapter took over/mcpand warned aboutmcp.jsonon every start even though the built-in extension owns that file. Thanks to @Sebastianlopez-dev for reporting it in #736.@earendil-works/pi-aipeer range now includes^0.99.0, and the adapter is tested against Pi 0.99.1. Thanks to @fl4pj4ck for reporting it in #741.git, such asssh://git@gitlab.example.com:2235/acme/tools.git, now load. Before, they were skipped without a warning. Thanks to @shura-v for #746.https://gitlab.example.com/acme/tools.git@release/v2, now load.privateis no longer reused from the cache in a later session, including output shapes saved formcpScript. It is still used within the session that fetched it. Thanks to @quifox for #743.regex: trueinmcpScript'stools.searchwas ignored: scripts got ranked word matches, and an invalid pattern gave no error. It now runs the same checked regex search asmcp({ search }).tracker_tracker_list_issuesinmcpScript. Thecodeparameter's example now uses the tool name exactly asmcplists it:tools.call("github_search_issues", args).tools.callexamples inobservedOutput.targetand in the fields listed after a failed or empty script include the server, such astools.call("echo", args, { server: "other" }), so copying them works. A script that called the shared name on both servers now lists each server's fields, not just the last one's. Closes #751.describeno longer drop nested fields such aslabels: { name: string }[]on GitHub-style lists.mcptool description mentionsmcpScriptonly when it is available. Before, it pointed tomcpScripteven withsettings.scriptModeset tofalse.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.