mcp-portallisted
Install: claude install-skill apollion69/mcp-portal
# mcp-portal
The files go to a Cursor model; only a short answer comes back into this context. Local means the routing and the scripts are local — the selected text still leaves the machine for Cursor, so never delegate credentials or secret-bearing files.
## Reading
```
mcp__mcp-portal__bulk_read(paths=["src/service.py", "docs/config.md"],
question="Which failures are retried, and where?")
```
`root` is optional (defaults to the common parent). Omit `model` to use the server policy default: a Cursor-native model with the largest limits (`composer-2.5` first); `-fast` variants are never chosen. Name another vendor's model only when you need it and it appears in your Cursor CLI roster.
A PASS result carries `findings[]` with `file`, `start`, `end`, `quote`, `fact`; `gaps[]`; a
`run_id`; and `metrics` in characters. The server has already checked every quote against the source
text, so a quote proves the citation, not the interpretation.
**Read directly instead when** you are about to edit the file, the file is under about 50 lines, you
need an exact byte or a line number for a patch, or you already know the offset you want. A targeted
read with `offset`/`limit` is never gated.
Each call is independent: the files are not kept between calls, so ask a follow-up with the same
`paths` rather than replaying a conversation. Limits are 16 files, 128 KiB combined, 90 seconds.
A refused oversized corpus is split, not retried whole.
## Generating
```
mc