@ikuma.cloud/pix-mcp-prompt
User-selected MCP prompts for Pi's native MCP configuration
Package details
Install @ikuma.cloud/pix-mcp-prompt from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@ikuma.cloud/pix-mcp-prompt- Package
@ikuma.cloud/pix-mcp-prompt- Version
0.0.6- Published
- Oct 15, 2026
- Downloads
- 747/mo · 222/wk
- Author
- 46ki75
- License
- unknown
- Types
- extension
- Size
- 76.6 KB
- Dependencies
- 1 dependency · 3 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@ikuma.cloud/pix-mcp-prompt
User-selected MCP prompts alongside Pi's native tools and resources. Read CONTRIBUTING.md before making changes.
This version supports Pi 1.0.0, 1.0.2, 1.1.0, 1.2.0, and 1.3.0.
Installation
pi install npm:@ikuma.cloud/pix-mcp-prompt
To load it from this checkout instead:
pi -e /absolute/path/to/pix/packages/pix-mcp-prompt
Remove pix-mcp from that session to avoid duplicate /mcp-prompt commands. Keep
Pi's built-in MCP extension enabled. Tools, resources, /mcp, authentication,
and permissions remain Pi's responsibility.
Configuration
Use Pi's native MCP configuration:
<agent-dir>/mcp.json(normally~/.pi/agent/mcp.json)..pi/mcp.jsonin the session directory, only when Pi grants project trust.
There is no prompt-specific configuration file or flag. Bare .mcp.json is not
read. The extension uses Pi's shipped configuration loader, transport factory,
and authentication helpers rather than implementing another configuration format.
Registered extension servers are also considered; file definitions take
precedence, including names differing only in - and _. On supported Pi versions
since 1.0.2, project entries containing only enabled, exposure, or
toolExposure override a global server without replacing its transport or
credentials.
For example, after installing @ikuma.cloud/mcp-copilot-prompts, add this to
.pi/mcp.json and approve the project:
{
"mcpServers": {
"copilot-prompts": {
"command": "mcp-copilot-prompts",
"args": ["--root", "."]
}
}
}
Native behavior applies: enabled: false prevents connections, timeout is in
seconds (default 60, reset by progress), relative cwd resolves from the session
directory, and stdio inherits Pi's environment. env/headers use Pi's ${VAR}
and whole-value !command resolution. Review configuration before trusting it:
it can execute programs and contact remote services.
Sign in with native /mcp or pi mcp login. Prompt connections use the same
mcp-auth.json and refresh locks. OAuth accounts are keyed by server name and
URL, including Pi's migration of legacy URL-only credentials. The native
oauth.authServerMetadataUrl override also applies to prompt token refreshes.
Provider authentication uses Pi's provider credentials; project configuration
cannot request provider authentication. On supported Pi versions since 1.0.2,
prompt token refreshes also honor oauth.clientRegistration (dcr or cimd).
Embedded SDK hosts should set PI_CODING_AGENT_DIR as well as their SDK
agentDir, matching the native MCP extension's use of getAgentDir().
Commands
/mcp-prompt
/mcp-prompt list [server]
/mcp-prompt run <server> <prompt> [name=value ...]
In the TUI, the bare command opens the picker, collects arguments, and places the rendered prompt in the editor for review. Escape cancels. Required and optional arguments appear in declaration order; an empty optional input is omitted.
run submits immediately (or queues a follow-up while Pi is working). It accepts
positional arguments and shell-style quoted name=value arguments; name= passes
an intentional empty string. list reports catalogs and connection status. In
print/JSON mode, command errors carry the listing because there is no UI result
channel. RPC supports explicit list and run, not the terminal picker.
Prompt bodies are retrieved only on user selection, never exposed as tools or
automatically added to model context. Completion uses locally discovered names
and arguments; MCP completion/complete is not implemented.
Connections and compatibility
None of the supported Pi versions expose their connected MCP clients. This extension therefore opens a separate connection, including a second process for stdio servers. It waits until the first prompt command to do so; native Pi may already have connected the same servers at startup. Prompt discovery never requests tools or resource catalogs. Catalog list-change notifications invalidate stale selections.
Native file and registration changes are reconciled on prompt commands and
agent turns. A disabled or replaced connection is closed. Native /mcp reconnect
and session-only /mcp overrides of extension registrations are not shared with
the prompt client; use /reload to reset both implementations. A disconnected
prompt client reconnects when next needed.
Native configuration and authentication helpers are shipped but not public
exports. src/native.ts isolates their use and accepts only Pi 1.0.0, 1.0.2,
1.1.0, 1.2.0, and 1.3.0 rather than silently changing trust or credential behavior.
Other versions, including unverified patch releases, require explicit compatibility
validation. This is not a shared-client API or a claim of upstream support.
Content and safety
Text, supported images, and embedded text/image resources retain their order.
Multi-message prompts are flattened with [user]/[assistant] markers rather
than injected as privileged conversation roles. Resource links remain text and
are never fetched automatically. Leading command-like editor text is guarded
against slash-command or shell dispatch; direct submissions disable template
expansion.
Previews are limited to 24 KiB and 1000 text lines and four PNG/JPEG/GIF/WebP images of at most 4 MiB each. Unsupported or truncated content is retained in a private temporary JSON artifact. Editor images are private temporary files. These artifacts are removed on session shutdown/reload; they are not durable attachments for resumed sessions. They may contain sensitive server data.
Prompt metadata, pagination, arguments, and responses are bounded and validated. Transport framing and request cancellation use Pi's MCP library. Limits are not a sandbox: server content and local executables remain untrusted.
Migrating from pix-mcp
- Upgrade Pi to a supported version listed above. Keep the legacy installation available for rollback until the replacement is validated for your servers. Never load both extensions in one session.
- Move project entries from
.mcp.jsonto.pi/mcp.jsonand grant project trust. - Convert
disabled: truetoenabled: false; converttimeoutfrom milliseconds to seconds. RemovestartupTimeoutMsandcatalogTimeoutMs. - Adjust
cwdfor session-relative resolution. Pi expands environment/command values inenvandheaders, not arbitrarycommand/args/urlstrings;~expansion in stdio paths is supported. Replace${VAR:-default}. - Remove legacy
--mcp-configlaunch flags and enable Pi's built-in MCP extension, removing any-builtin:mcpsetting or--no-mcplaunch flag. Use native/mcp,codemode,tool_search, and the native resource tools instead of the oldmcptool or/mcp-resourcepicker. Tool names and schema handling now belong to Pi. - Remove the legacy package with
pi remove npm:@ikuma.cloud/pix-mcp, then install this package as shown above if you need prompts. Add--localto package commands for project installations; remove any legacy path-based extension settings or-earguments separately. Runpi mcp listto verify native connections and/mcp-prompt listto verify prompts.
Invalid project entries are handled exactly as native Pi handles them, which can leave a valid global entry effective; the legacy adapter masked that global entry. Review configurations rather than copying legacy fields unchanged.
@ikuma.cloud/pix-mcp is deprecated. Existing versions remain installable for
compatibility and rollback; they will not be unpublished.