Skip to content
ConsultEvo

Claude Code: Setup, Permissions, and MCP Workflows

Claude Code is an agentic coding tool for repository-centered work. It can inspect a codebase, edit files, run commands, and use development tools. Use it when a task needs repository context, changes across files, tests, or a reviewed diff. For example, ask it to fix a failing date-parser test, limit the task to the parser and its tests, inspect the resulting diff, and run the project test command before merging.

This guide covers access and billing routes, installation, permission boundaries, repository workflows, review-record design, and MCP-connected actions. The goal is not to present MCP as a ready-made automation guarantee. It is to show how a task should move from bounded input to validated output, human decision, and an accountable destination.

Claude Code is available through terminal, IDE, desktop, and web surfaces, but setup and repository capabilities can vary by surface and account. Check the current Claude Code overview before choosing one.

What Claude Code is and when to use it

Claude Code is Anthropic’s agentic coding tool. An agentic tool can work through an objective by inspecting relevant context, proposing or making changes, and using tools such as commands and tests. It is designed for repository-centered work rather than only answering a prompt in a chat.

Choose Claude Code when the work involves multiple files, a codebase, shell commands, tests, or a diff that needs review. A general conversational surface may be a better fit for primarily drafting documents, reasoning about a spreadsheet, organizing files, or explaining a concept. These are selection guidelines, not claims that one surface is incapable of the other work. Verify current capabilities for your account and chosen surface.

A useful decision rule is simple: repository context, code changes, commands, and tests point toward Claude Code. A primarily conversational task may not need a coding agent. Either way, define the intended output before starting so the tool does not expand a small request into an unbounded project.

Anthropic reported that more than 80% of code merged into its own codebase was authored by Claude as of May 2026. That is an Anthropic-reported internal statistic, not an independently audited benchmark. Anthropic’s Classmethod customer case study reports an 80% decrease in time spent reviewing code. Treat that as a vendor-published, company-specific case-study result rather than an expected gain for another team.

Choose an access route and install Claude Code

Claude Code can authenticate through a Claude subscription, Anthropic Console, or supported third-party cloud providers. These routes differ in eligibility, billing, and organizational controls. Current individual plan pages list Pro, Max, and Ultra, while prices and usage limits can change. Check the official pricing page immediately before implementation or publication.

At the research date for this guide, Anthropic’s pricing page displayed Pro at $20 per month or $200 annually, Max at $100 per month, and Ultra at $200 per month. These figures are date-sensitive and should not be treated as permanent pricing. Usage limits also vary by plan, model, feature, conversation length, and account status.

For macOS, Linux, or WSL, the current native installer command is:

curl -fsSL https://claude.ai/install.sh | bash

For Windows PowerShell, use:

irm https://claude.ai/install.ps1 | iex

Use the official overview for current Windows CMD instructions and platform prerequisites. After installation, follow the documented sign-in flow for the selected route. If you use Console or a supported cloud provider, confirm that the required account and provider configuration are in place before starting work.

Check the billing route first

Subscription usage and API billing are distinct. An active ANTHROPIC_API_KEY can route Claude Code usage to API billing instead of a subscription allocation. Before a long session, inspect the environment and confirm which account route the process will use.

Interactive personal coding sessions may fit subscription access when shared plan limits are acceptable. Console or a supported provider may be more suitable when programmatic billing, service-account governance, or application-level integration is required. Do not assume that installing the client alone determines the billing route.

Set permissions before asking for changes

Claude Code uses configurable permission rules and approval behavior. Rules can allow, ask about, or deny specific tools and operations. Settings can be managed at user, project, local, and organization-managed scopes. Project settings can establish shared boundaries, while local settings can hold an individual’s exceptions. Consult the current settings reference for the active behavior.

Before a write-capable task, deny access to secrets such as .env files, private keys, credential folders, and production configuration unless access is necessary and explicitly governed. Allow only the tools and commands needed for the stated task, such as the project’s test or lint command. Files exposed to the tool may enter its context, so repository access is also a data-handling decision.

Permission preflight
  • Checkpoint the Git working tree so changes can be reviewed or reverted.
  • Deny secret and production-configuration paths by default.
  • Allow only the commands and tools required for the stated task.
  • Decide which changes require human review before commit, merge, or deployment.

If behavior is unexpected, inspect the active settings and consult the current troubleshooting guidance. Review the actual diff and test output, not just the agent’s summary.

A safe repository workflow from task to reviewed diff

Reliable repository work gives the agent a bounded task and makes deterministic checks and human review explicit. Include the repository context, files or components in scope, areas to leave untouched, supported runtime, test commands, and an observable acceptance condition.

01Prepare the taskCheckpoint the working tree and provide repository instructions, constraints, acceptance criteria, and test commands. Output: a bounded task brief owned by the engineer.
02Inspect and changeClaude Code inspects relevant files, explains an approach when useful, and makes scoped edits when permitted. Output: a local working-tree diff.
03Run deterministic checksRun the specified tests, type checks, lint, security scans, and build steps that apply. Keep command output as evidence. A confident explanation is not a passing test.
04Review and decideThe engineer inspects the diff, resolves failures or out-of-scope edits, and decides whether to commit or merge. The destination is a reviewed branch or working tree, not an automatic production change.

For example, “Fix the failing date-parser tests” is not enough on its own. Add the expected date behavior, test command, supported runtime, files that must remain untouched, and acceptance condition. If tests fail because a dependency or environment is missing, diagnose that failure instead of treating the proposed fix as validated.

Some teams may build unattended loops that gather requirements, edit code, test it, and prepare a pull request. That is a custom orchestration pattern. Define its trigger, permissions, checkpoints, test gates, timeout handling, branch policy, and human owner. Do not assume it is a guaranteed built-in workflow.

How the workflow changes by use case

  • Repository change: The trigger is a bounded engineering task. Claude Code proposes or makes scoped edits. Tests, lint, type checks, and diff review determine whether a human can merge the branch.
  • AI-assisted review: The trigger is a pull request and head commit. Claude Code proposes discrete findings with evidence. Deterministic scanners and a human reviewer decide whether each finding is accepted.
  • MCP-connected action: The trigger is a request to inspect or update an external record. Claude Code prepares a target and payload. Deterministic validation, approval where appropriate, and destination-state reconciliation control the write.

Use Claude Code for review findings without corrupting the data

The following is a hypothetical review-record design, not an Anthropic feature or published customer template. It separates four grains that should not be collapsed into one table:

  • Review run: one execution, identified by a review_run_id, with its model, start time, and completion status.
  • Finding observation: one distinct issue for a repository, pull request, and head commit. This is the grain of the finding record.
  • Evidence location: one code location or citation supporting a finding. Multiple locations should be separate child records.
  • Aggregate metric: a summary for a repository, team, model, or reporting period. Store it separately from raw runs and findings.

A finding observation can include repository and pull-request IDs, the head commit SHA, a finding fingerprint, file path, line range, severity, category, evidence, suggested fix, creation time, model, and human disposition. Keep the run ID for provenance, but do not use it as the only identity for an issue that may appear in another run.

{
  "repository_id": "repo-42",
  "pull_request_id": "pr-318",
  "head_commit_sha": "7ac91e2",
  "review_run_id": "run-2026-11-12-04",
  "finding_fingerprint": "date-parse-timezone-boundary",
  "file_path": "src/date-parser.ts",
  "line_start": 84,
  "line_end": 89,
  "severity": "medium",
  "human_disposition": "pending"
}

The values above illustrate one finding observation; they are not a real review result. Enforce uniqueness on repository_id + pull_request_id + head_commit_sha + finding_fingerprint with a database unique constraint and transactional upsert. A lookup followed by create can race when two reviewers run concurrently. If repeated observations must be retained, store them in a separate run-to-finding record keyed by the review run and finding identity.

Use deterministic tools for formatting, type errors, secret scanning, dependency vulnerabilities, required fields, and allowed severity values. Use the model to explain unfamiliar code or propose evidence-backed findings. A human reviewer accepts, edits, or rejects a finding, while the system owner handles schema errors and uniqueness conflicts.

Design an MCP-connected action with an explicit write gate

The Model Context Protocol, or MCP, is a way for compatible AI clients to connect to external tools and data sources. Claude Code supports MCP. Zapier MCP connects compatible clients to Zapier-connected applications and advertises access to 9,000+ apps. Zapier’s current help documentation requires Streamable HTTP and says it does not support Server-Sent Events. Use the current Zapier MCP documentation and Claude Code instructions for client-specific setup. The exact setup command should be checked there rather than copied from an older guide.

MCP provides a tool connection, not inherent business-rule validation, human approval, idempotency, rollback, or guaranteed retries. For a consequential write, separate the proposed action from its execution. A practical sequence is request, selected app and tool, target and payload, deterministic validation, human approval when impact warrants it, execution, and recorded response.

For a hypothetical CRM update, the input might include a source event ID, the CRM record ID, and the requested status change. Claude Code can prepare a proposal such as:

{
  "target_id": "crm-2048",
  "action": "update_status",
  "payload": {
    "status": "qualified"
  },
  "source_event_id": "webhook-8831"
}

Before sending it, validate that the target ID resolves to the intended record, required fields are present, the status transition is allowed, and the source event has not already been applied. Those checks belong in deterministic workflow or destination logic, not in free-form model judgment. If duplicate events are possible, use a stable source ID as an idempotency key where the destination supports it. Otherwise, use an intermediary ledger with a unique constraint and atomic upsert, then reconcile uncertain outcomes with the destination.

A timeout can leave execution ambiguous: the app may have accepted the write even if the client received no response. Record the source event, proposed payload, selected tool, response where available, timestamp, actor or session identifier, and final destination state. Route ambiguous matches, partial updates, expired authentication, and uncertain timeouts to a named application or operations owner. For recurring work that needs branching, retries, and exception handling, design a workflow with those controls rather than assuming the MCP connection supplies them.

ConsultEvoZapier automation servicesRelevant when you need to define triggers, validation, destination systems, and exception ownership around an automation.

For broader work that needs an agent and its surrounding controls designed together, see AI agent design and implementation. These services are relevant support options, not evidence of a particular Claude Code or MCP outcome.

What customer examples do and do not prove

Anthropic’s Classmethod case study reports an 80% decrease in time spent reviewing code under that company’s conditions. Anthropic’s report about code merged into its own codebase is a separate internal measure. HubSpot’s case study describes use of Claude Code and MCP with internal services, but its broader reported outcomes should not be attributed to Claude Code alone. These sources document deployments and reported results. They do not establish a typical gain for another organization.

To measure your own results, choose one task class, such as small bug fixes, and record a baseline before adoption. Compare like-for-like tasks using time spent coding, reviewing, and reworking; test failures; accepted versus rejected changes; and escaped defects. Keep the same definition of “done” across the baseline and trial.

A short launch check

  • Confirm the sign-in and billing route, including whether an API key is active.
  • Set repository boundaries, permission rules, and a clean recovery point.
  • Write a bounded task with acceptance criteria and known test commands.
  • For external writes, identify the system of record, stable event or record key, validation gate, approval owner, and exception path.
  • Recheck current documentation for pricing, supported surfaces, permissions, and integration setup before implementation.

Start with one bounded task and a visible result. Expand it into automation only after the input, output contract, validation, owner, and failure handling are explicit.