@feniix/pi-ref-tools
v3.0.1
Published
Ref.tools MCP extension for pi — documentation search and URL reading via Ref's Model Context Protocol
Maintainers
Readme
@feniix/pi-ref-tools
Ref.tools MCP extension for pi — token-efficient documentation search and URL reading via Ref's Model Context Protocol.
Features
- Documentation Search (
ref_search_documentation): Search indexed technical documentation for APIs, libraries, and frameworks - URL Reading (
ref_read_url): Fetch and read documentation URLs as optimized markdown - Configurable Output Limits: Client-side byte and line truncation with adjustable maximums
- Flexible Configuration: JSON config files, environment variables, and CLI flags
- MCP Protocol Support: JSON-RPC 2.0 with server-sent events for response streaming
Install
pi install npm:@feniix/pi-ref-toolsEphemeral (one-off) use:
pi -e npm:@feniix/pi-ref-toolsConfiguration
You need a Ref API key from ref.tools/keys.
Option 1: Environment Variable
export REF_API_KEY="your_key"Option 2: Settings File
Use pi's standard settings locations for non-secret configuration:
- project:
.pi/settings.json - global:
~/.pi/agent/settings.json
Under the pi-ref-tools key:
{
"pi-ref-tools": {
"url": "https://api.ref.tools/mcp",
"timeoutMs": 30000,
"protocolVersion": "2025-06-18",
"maxBytes": 51200,
"maxLines": 2000
}
}Best practice: use
settings.jsonfor non-secret defaults only. KeepREF_API_KEYin an environment variable, or use--ref-mcp-config-file/REF_MCP_CONFIG_FILEto point to a custom private JSON config file when you need to persist secrets outside your project. Legacy aliases--ref-mcp-configandREF_MCP_CONFIGare still accepted but deprecated.
Option 3: CLI Flags
pi --ref-mcp-api-key=your_keyConfig Resolution Order
--ref-mcp-config-fileflag pathREF_MCP_CONFIG_FILEenvironment variable- legacy
--ref-mcp-configflag path (deprecated) - legacy
REF_MCP_CONFIGenvironment variable (deprecated) .pi/settings.jsonunderpi-ref-tools(project-level)~/.pi/agent/settings.jsonunderpi-ref-tools(global)
Tools
ref_search_documentation
Search indexed technical documentation. Best for API docs, library references, and framework guides.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| query | string | yes | Search query. Include language/framework names for best results. |
| piMaxBytes | integer | no | Client-side max bytes override (clamped by config). |
| piMaxLines | integer | no | Client-side max lines override (clamped by config). |
ref_read_url
Read a documentation URL and return optimized markdown. Pass the exact URL from a search result or any documentation page.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| url | string | yes | The exact URL of the documentation page to read. |
| piMaxBytes | integer | no | Client-side max bytes override (clamped by config). |
| piMaxLines | integer | no | Client-side max lines override (clamped by config). |
CLI Flags
| Flag | Env Variable | Default | Description |
|------|-------------|---------|-------------|
| --ref-mcp-url | REF_MCP_URL | https://api.ref.tools/mcp | MCP endpoint URL |
| --ref-mcp-api-key | REF_API_KEY | — | API key (sent as x-ref-api-key header) |
| --ref-mcp-timeout-ms | REF_MCP_TIMEOUT_MS | 30000 | HTTP timeout in ms |
| --ref-mcp-protocol | REF_MCP_PROTOCOL_VERSION | 2025-06-18 | MCP protocol version |
| --ref-mcp-config-file | REF_MCP_CONFIG_FILE | — | Custom config file path |
| --ref-mcp-config | REF_MCP_CONFIG | — | Deprecated alias for the config file path |
| --ref-mcp-max-bytes | REF_MCP_MAX_BYTES | 51200 | Max output bytes |
| --ref-mcp-max-lines | REF_MCP_MAX_LINES | 2000 | Max output lines |
Output Truncation
Default limits: 51,200 bytes, 2,000 lines. Per-call overrides via piMaxBytes/piMaxLines parameters are clamped to the configured maximums. Truncated content is saved to temporary files with paths included in responses.
Requirements
- pi v0.51.0 or later
- Ref API key from ref.tools/keys
Uninstall
pi remove npm:@feniix/pi-ref-toolsLicense
MIT
