MCP

An MCP server lets an MCP client, such as Claude Code, use a team's collections through Porticol: search the workspace, read requests and examples, list environments, send and run requests, with secrets resolved inside Porticol and masked before they leave. Two transports serve the one tool table: standard input and output on the machine, and streamable HTTP on a server. There are no server-sent events and no server-initiated messages.

Tools

Tool Scope What it does
search Read Search collections, requests and history for a query
read Read Read a collection with its requests and examples, or one request of it
environments Read List the environments, or read one by id
send Read Send a request and return what came back
run Read Run a collection and wait for it, returning the finished run
history Read List recent sends, or read one by id
import_openapi Read Preview an OpenAPI document as a collection, without importing it
create_request Write Add a request or folder to a collection
update_request Write Replace what a request or folder holds

import_openapi only previews; bringing the collection into the workspace stays a person's decision. run starts the run, waits for it, and returns it finished; when the wait runs out it returns the run still going instead.

Scopes and guardrails

Read-only by default. The two write tools stay off until the caller holds the write scope, and a call outside the scope is refused.

Secrets resolved inside Porticol never leave it in the clear: every tool result that can carry a secret is masked with the same redaction history relies on, over every secret value the workspace holds.

An environment marked protected refuses an agent's send until a person allows it. The refused call answers needs_confirmation with the key to allow: a person allows it the way they allow any send, and the agent calls send again. An agent's send is recorded with the client's name.

Standard input and output

porticol-cli mcp serves the workspace on the machine:

porticol-cli mcp [--data-dir <path>] [--write]

It speaks MCP JSON-RPC over standard input and output: initialize, notifications/initialized, tools/list, tools/call and ping. Without --write the write tools are refused. The workspace served is --data-dir, PORTICOL_DATA_DIR, or the desktop's data folder. Secret values live in the machine's keychain under the desktop; a workspace served here resolves the secrets created through it.

Streamable HTTP

POST /api/v1/mcp serves the same tools on a server, with the API token's scope: a read-only token lists the read tools only, and collection:write adds the two write tools. It answers initialize, tools/list and tools/call as plain JSON responses. Every tools/call writes one audit entry named mcp.<tool> with the token's id. A command that only runs beside the user, such as sending, is refused over HTTP the way /api/v1/call refuses it; agents send through the standard input transport beside the workspace.