Skip to main content

pi-mcp-adapter

Token-efficient MCP adapter for Pi coding agent that enables MCP server integration without burning context window

설치로 이동

소스 정보

저장소
reason-machines/mcp-skills
최근 소스 활동
2026년 5월 17일 17:25
감지된 SKILL.md 언어
영어
스타
7
포크
2

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
pi-mcp-adapter
description
Token-efficient MCP adapter for Pi coding agent that enables MCP server integration without burning context window
triggers
["how do I use MCP servers with Pi","configure pi-mcp-adapter for my project","add MCP server to Pi agent","set up direct tools in MCP","connect chrome devtools MCP to Pi","troubleshoot MCP server connection","configure lazy loading for MCP servers","use OAuth with MCP servers in Pi"]
# pi-mcp-adapter > Skill by [ara.so](https://ara.so) — MCP Skills collection. ## Overview pi-mcp-adapter is a token-efficient proxy for Model Context Protocol (MCP) servers in the Pi coding agent. Instead of exposing hundreds of tool definitions (10k+ tokens per server), it provides a single ~200 token proxy tool that discovers MCP capabilities on-demand. Servers lazy-load when needed, keeping your context window clean. **Key benefits:** - **One proxy tool** instead of hundreds cluttering context - **Lazy server loading** — only connect when tools are called - **Direct tool registration** for high-priority tools - **Standard MCP file support** — reads `.mcp.json` and `~/.config/mcp/mcp.json` - **Interactive configuration** via `/mcp` overlay ## Installation ```bash pi install npm:pi-mcp-adapter ``` Restart Pi after installation. The adapter auto-detects standard MCP config files on first run. ## Configuration Files ### File Precedence Pi reads MCP configs in this order (later overrides earlier): 1. `~/.config/mcp/mcp.json` — User-global shared config 2. `~/.pi/agent/mcp.json` — Pi global override (or `$PI_CODING_AGENT_DIR/mcp.json`) 3. `.mcp.json` — Project-local shared config 4. `.pi/mcp.json` — Pi project override ### Basic Server Configuration Create `.mcp.json` in your project root: ```json { "mcpServers": { "chrome-devtools": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest"] }, "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}" } }, "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"] } } } ``` ### HTTP/SSE Servers For servers with HTTP endpoints: ```json { "mcpServers": { "figma": { "url": "http://localhost:3845/mcp", "headers": { "Authorization": "Bearer ${FIGMA_TOKEN}" } } } } ``` ### OAuth Configuration For servers requiring OAuth: ```json { "mcpServers": { "google-drive": { "command": "npx", "args": ["-y", "gdrive-mcp"], "auth": "oauth", "oauth": { "grantType": "authorization_code" } }, "api-service": { "url": "https://api.example.com/mcp", "auth": "oauth", "oauth": { "grantType": "client_credentials" }, "env": { "CLIENT_ID": "${API_CLIENT_ID}", "CLIENT_SECRET": "${API_CLIENT_SECRET}" } } }, "settings": { "autoAuth": true } } ``` **OAuth flow:** - With `autoAuth: true`, adapter runs OAuth automatically on first tool call - Without `autoAuth`, run `/mcp` and press Enter on the server or use `ctrl+a` - `client_credentials` grant skips interactive prompts for machine-to-machine auth ## Using MCP Tools ### Proxy Mode (Default) All MCP tools are accessed through the `mcp` proxy tool: ```typescript // Search for available tools mcp({ search: "screenshot" }) // Returns: chrome_devtools_take_screenshot - Take a screenshot of the page... // Describe a specific tool mcp({ describe: "chrome_devtools_take_screenshot" }) // Returns: Full parameter schema // Call a tool (args must be JSON string) mcp({ tool: "chrome_devtools_take_screenshot", args: '{"format": "png", "fullPage": true}' }) ``` **Available proxy actions:** - `{ search: "query" }` — Find tools by keyword - `{ list: true }` — List all available tools - `{ describe: "tool_name" }` — Get tool details - `{ tool: "name", args: "json" }` — Execute a tool - `{ action: "resources", server: "name" }` — List server resources - `{ action: "read-resource", server: "name", uri: "file://..." }` — Read resource content - `{ action: "ui-messages" }` — Get pending UI messages ### Direct Tools Register specific tools individually for immediate LLM visibility: ```json { "mcpServers": { "chrome-devtools": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest"], "directTools": true }, "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "directTools": ["search_repositories", "get_file_contents"] } } } ``` **Direct tool options:** - `true` — Register all tools from this server - `["tool_a", "tool_b"]` — Register only specified tools - `false` or omitted — Proxy only (default) **Token cost:** Each direct tool adds ~150-300 tokens to system prompt. Good for 5-20 high-priority tools. ### Global Direct Tool Default ```json { "settings": { "directTools": true }, "mcpServers": { "huge-server": { "command": "npx", "args": ["-y", "mega-mcp@latest"], "directTools": false } } } ``` ### Excluding Tools Hide specific tools from proxy and direct registration: ```json { "mcpServers": { "figma": { "url": "http://localhost:3845/mcp", "directTools": true, "excludeTools": ["get_figjam", "figma_get_code_connect_map"] } } } ``` ## Lifecycle Management ### Lifecycle Modes ```json { "mcpServers": { "lazy-server": { "command": "npx", "args": ["-y", "some-mcp"], "lifecycle": "lazy", "idleTimeout": 10 }, "eager-server": { "command": "npx", "args": ["-y", "another-mcp"], "lifecycle": "eager" }, "critical-server": { "command": "npx", "args": ["-y", "important-mcp"], "lifecycle": "keep-alive" } } } ``` **Lifecycle options:** - **`lazy`** (default) — Connect on first use, disconnect after idle timeout. Cached metadata keeps search working without connections. - **`eager`** — Connect at startup, no auto-reconnect. No idle timeout unless explicitly set. - **`keep-alive`** — Connect at startup, auto-reconnect, never timeout. For always-available servers. ### Idle Timeout ```json { "settings": { "idleTimeout": 10 }, "mcpServers": { "keep-warm": { "command": "npx", "args": ["-y", "warm-mcp"], "idleTimeout": 0 } } } ``` Global `idleTimeout` (default 10 minutes) applies to all servers. Set to `0` to disable. Per-server overrides global setting. ## Tool Prefixing Control how tool names are prefixed: ```json { "settings": { "toolPrefix": "server" } } ``` **Prefix modes:** - `"server"` (default) — `chrome_devtools_take_screenshot` - `"short"` — Strips `-mcp` suffix: `chrome_devtools_take_screenshot` - `"none"` — No prefix: `take_screenshot` ## Interactive Configuration ### `/mcp` Overlay Run `/mcp` in Pi to open interactive panel: - View all configured servers with connection status - See tool counts and lifecycle modes - Toggle tools between direct and proxy registration - Reconnect servers manually - Trigger OAuth authentication (Enter on server or `ctrl+a`) ### `/mcp setup` Guided Setup Run `/mcp setup` for first-time configuration: 1. **Detect existing configs** — Scans for `.mcp.json`, `~/.config/mcp/mcp.json`, and host-specific configs (Cursor, Claude Code, etc.) 2. **Import compatibility** — Adopt host configs into Pi with preview before writing 3. **Scaffold minimal config** — Create basic `.mcp.json` with prompts 4. **Quick-add RepoPrompt** — One-shot add popular MCP servers 5. **Preview file changes** — Shows exact before/after diffs before any writes ### CLI Tool After installation, `pi-mcp-adapter` CLI is available: ```bash # Scan for host configs and create compatibility imports pi-mcp-adapter init # Show detected config files pi-mcp-adapter info ``` ## Environment Variables ### Variable Interpolation Supports `${VAR}` and `$env:VAR` syntax: ```json { "mcpServers": { "db": { "command": "npx", "args": ["-y", "db-mcp"], "env": { "DATABASE_URL": "${DB_URL}", "API_KEY": "$env:SECRET_KEY" }, "cwd": "${PROJECT_ROOT}/data" } } } ``` **Home directory expansion:** ```json { "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "~/Documents"] } } } ``` ## Advanced Settings ### Complete Settings Reference ```json { "settings": { "toolPrefix": "server", "idleTimeout": 10, "directTools": false, "disableProxyTool": false, "autoAuth": false, "sampling": true, "samplingAutoApprove": false } } ``` **Settings:** - `toolPrefix` — `"server"`, `"short"`, or `"none"` - `idleTimeout` — Minutes before disconnect (0 to disable) - `directTools` — Global default for all servers - `disableProxyTool` — Hide `mcp` proxy once direct tools are cached - `autoAuth` — Auto-run OAuth on tool calls - `sampling` — Allow MCP servers to sample through Pi models - `samplingAutoApprove` — Skip sampling confirmation prompts (required for non-UI sessions) ### Debugging Enable server stderr output: ```json { "mcpServers": { "problematic": { "command": "npx", "args": ["-y", "debug-mcp"], "debug": true } } } ``` ## MCP UI Integration Servers can ship interactive UIs via [MCP UI standard](https://github.com/MCP-UI-Org/mcp-ui). When a tool returns UI metadata, pi-mcp-adapter opens it in a native window (macOS with Glimpse) or browser. ### Installing Glimpse (macOS) ```bash pi install npm:glimpseui ``` **Force browser rendering:** ```bash export MCP_UI_VIEWER=browser ``` **Require native rendering:** ```bash export MCP_UI_VIEWER=glimpse ``` ### UI Communication Flow
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기