Lesson 3 of 6 · 0%Review MCP and tool permissions before connectionNext
Course map

Skills, Tools, MCP and Browser Automation

0 of 6 complete0 of 6

Lesson 3.3 · 55 minutes

Review MCP and tool permissions before connection

Treat an MCP connection as a supply-chain and authority decision with a named approver, expiry, and revoke path.

Skip course map

Verifiedon 2026.7.1

Action boundary

Before you act

Expected result
A permission worksheet identifies every requested capability, its owner, test boundary, expiry, and specific revoke action.
Failure mode
An unreviewed server inherits broad runtime access, secrets, or host execution because its purpose sounded harmless.
Rollback
Do not connect the server; remove its configuration and credentials from the disposable environment, then record the rejection reason.

“Read-only” is a claim to test

A server can describe itself as read-only while still receiving broad network access, reading local files, observing environment variables, or exposing a tool that writes through a secondary API. Permission review therefore starts with capability inventory, not the README’s adjective.

The reviewed OpenClaw MCP guide is the primary receipt for the integration surface. Pair it with OpenClaw’s tool configuration reference, which is the source for configuration keys and tool exposure, and the sandbox versus tool-policy versus elevated execution guidance. These documents describe the platform’s boundaries at revision 2d2ddc43d0dcf71f31283d780f9fe9ff4cc04fe4; they do not approve an arbitrary third-party server.

Think of a connection as a supply-chain decision. You are adding code or a remote process, granting it a transport, mapping its tools into a runtime, and creating a future maintenance burden. The review must be reversible before the first connection is made.

Six gates before connecting an external capability
  1. ProvenanceName maintainer, immutable version or digest, license, release history, and source repository.
  2. PurposeDescribe one job and compare a lower-authority alternative.
  3. AuthorityInventory files, network hosts, browser profiles, commands, secrets, and writes.
  4. ContainmentUse a disposable environment, allowlist, timeout, rate limit, and cost bound.
  5. Human gateName the approver for credentials and every write or irreversible action.
  6. Expiry and revokeSet a review date and record exact configuration and credential removal steps.

Permission review worksheet showing provenance, purpose, authority, containment, human gate, and expiry or revoke evidence.

The permission worksheet

Complete one row per capability, not one row per server. A server that offers five tools needs five tool records because the authority and test evidence may differ.

Field Required evidence Reject when
Supplier and artifact Maintainer, repository, immutable version/digest, license, change history only a mutable “latest” tag or an unattributed download exists
Purpose and alternatives Specific job, output, lower-authority option considered the purpose is a vague “assistant” or “productivity” label
Inputs and outputs Schema, data classes, citations, log format, max size free-form inputs can carry instructions or secrets
Requested authority Hosts, files, browser profile, commands, credentials, writes the inventory says “all” without a job-specific reason
Containment Disposable target, allowlist, timeout, rate/cost bound the first test requires production or a personal account
Human gate Approver, confirmation wording, timing, operator identity the tool can publish or message silently
Test and monitoring Fixture cases, expected denials, log owner, alert threshold only a successful first run is offered
Expiry and revoke Review date, exact config deletion, credential revoke, denial test “we can turn it off later” is the whole rollback

Secrets are data, not configuration trivia. If the candidate needs a token, record its purpose, scope, location, expiry, test-only status, and revocation command or owner. Never paste the value into the worksheet. Redact account names and local paths from screenshots.

Worked example — a task-reading server

A fictional MCP server says it “reads project tasks” but requests unrestricted network, local filesystem, and host command execution. Review the request against the job. Reading a fixed project-task API does not require arbitrary shell commands. It may not require the whole filesystem, and it should name the exact API hosts. A minimum request could be: one immutable server version; outbound access to one test API hostname; no local files; no shell; no browser profile; a read-only token limited to fixture data; a 10-second timeout; and a human owner who can revoke the token.

The rejection should be specific: “The broad request is declined because host command execution and local filesystem access are not necessary for the stated read-only task query. Re-submit with the narrower capability map and a fixture denial test.” This is better than saying “security concerns” because the next reviewer can verify the missing boundary.

Redacted permission record
artifact: task-reader@1.4.2
transport: local disposable process
network: https://fixture.tasks.invalid/api
filesystem: none
commands: none
browserProfile: none
credentials: fixture token, read-only, expires 2026-08-15
writes: none
owner: extension-review@example.invalid
expiry: 2026-08-29
revoke: delete fixture token; remove server entry; assert next call=denied

Expected output: authority=fixture-only; unlisted capabilities=denied

Do not install the fictional server just to prove the review. The lesson artifact is a reviewable decision. If you do run a disposable local test, capture only the server name, allowlist, policy result, and non-secret run ID.

Hands-on lab — red-team the request

Write a candidate request for a “project task reader” that is intentionally overbroad. Then produce the minimum viable request and a test matrix. Your matrix must include: allowed fixture read, filesystem denial, network denial for a second host, command denial, credential scope check, and expiry or revoke verification. The expected output is a signed or timestamped worksheet in which every requested authority has an owner and a test.

Expected result: the broad design is rejected before connection. The narrow design passes only in a disposable environment, returns structured task data, and produces no writes. Failure cases include a deny test that never exercises the boundary, a token that is valid outside the fixture, a log that prints headers, or a revocation step that removes configuration but leaves the token active. Rollback is “do not connect”; if a connection already exists, disconnect it, remove the server registration, revoke the test credential, delete cached state, and run the denied-call check.

Local practice

Permission review evidence

Every step remains visible without JavaScript. When enabled, this browser stores checks on this device only.

0 of 5 checked

Checkpoint

Which evidence closes a permission review?

A. A popular package name
B. A successful first run
C. A named artifact version, requested authority inventory, containment test, owner, expiry, and revoke action
D. A promise not to use the dangerous functions

Answer: C. Popularity and intent do not establish control. The record must be reproducible when a future reviewer has to disable the integration quickly.

Learner artifact and source receipt

Submit the completed worksheet, the rejection paragraph, the minimum request, and the denial matrix. Include direct links to the pinned MCP source and tool policy source. The source receipt validates the platform concepts and revision; your worksheet must supply the supplier-specific denials, owner, expiry, and removal proof. Re-check the pinned references when the implementation surface changes; they bound platform concepts, while the worksheet remains the evidence for this decision.

Source provenanceVerification and sources

Review receipt rr_skills_mcp_permission_review

Outcome
approved
Method
source-review
Reviewer
academy-editorial
Reviewed

Evidence

Limitations

  • Approval covers the bounded instructional claims, pinned primary sources, and disposable fixture evidence; no personal profile, production account, or external write was used.

Open the public evidence snapshot

Lesson checkpoint

Ready to move on?

Mark this lesson complete when you can apply its outcome without relying on the examples above.