Skip to content

Tools, integrations, and security

This chapter combines three concerns that are inseparable in an agent runtime:

  1. Which capabilities become model-visible tools?
  2. Which external systems contribute tools, prompts, hooks, or agents?
  3. Which trust boundaries approve, deny, redact, sandbox, or persist policy?

Read this chapter when the question is: why could the model do that, and what guarded the action?

Chapter ownership model

The chapter is organized around the lifecycle of an action, not around package names:

  1. Expose capability — decide which tools and integration-provided capabilities become visible to the model.
  2. Execute capability — run the selected tool through hooks, permissions, streaming, telemetry, and durable events.
  3. Constrain capability — apply path/URL/tool policies, redaction, content exclusion, sandboxing, and persisted configuration.
  4. Extend capability — let MCP servers, plugins, SDK extensions, IDE/LSP bridges, web access, and validation tools contribute new surfaces without bypassing the same guards.

If a page explains what is sent to the model as prompt/context, it belongs in Context and model loop. If it explains durable event replay or remote projection, it belongs in Sessions, persistence, and remote. This chapter owns the trust boundary between those two layers.

Source-anchor policy

This page is a chapter guide. Linked implementation pages carry concrete app.js anchors.

Semantic aliasMinified anchorScope
Tools/integrations/security chapterN/A — navigation pageGroups runtime tool assembly, execution, MCP/plugins/SDK/IDE/web integrations, permissions, redaction, hooks, sandboxing, and policy state.
Tool/security implementation pagesSee linked source-anchor tablesConcrete bundle anchors live in the destination pages.

Trust-boundary map

flowchart TD
Session[Session options and model config] --> Assembly[Runtime tool assembly]
MCP[MCP servers] --> Assembly
Plugins[Plugins / SDK / IDE] --> Assembly
Builtins[Built-in tools] --> Assembly
Assembly --> Model[Model-visible schemas]
Model --> Call[Tool call]
Call --> Permission[Permission service]
Permission --> Hooks[Hooks and policy]
Hooks --> Exec[Tool execution]
Exec --> Redaction[Content exclusion / redaction]
Exec --> Sandbox[Sandbox / process boundary]
Redaction --> Events[Events / telemetry / history]
Sandbox --> Events
click Assembly "./runtime-tool-assembly-and-filtering/" "Open runtime tool assembly"
click Exec "./built-in-tools-execution-events/" "Open tool execution"
click MCP "./mcp-host-transport-and-tools/" "Open MCP support"
click Permission "./tool-path-url-permissions/" "Open permission system"
click Redaction "./content-exclusion-and-redaction/" "Open content exclusion"
click Sandbox "./sandboxing/" "Open sandboxing"

Primary reading order

OrderPageTool/security question answered
1Runtime tool assembly and filteringHow are built-ins, MCP, SDK extensions, plugins, custom agents, filters, deferred search, and gates assembled into the final toolset?
2Built-in tools, execution events, and resultsHow do permission checks, hooks, execution events, streaming, telemetry, and history wrap a tool call?
3Shell command execution eventsHow do Bash/PowerShell tools choose PTY/process backends, async/detached behavior, task tracking, and large-output handling?
4MCP host, transports, and toolsHow are MCP servers discovered, transported, authorized, filtered, and mapped into tools/resources/prompts/tasks?
5Tool, path, and URL permissionsHow do tool/path/URL/MCP/hook approval rules and precedence work?
6Content exclusion and redactionHow do policy fetch/merge, filtered outputs, secret env vars, and redaction boundaries affect model-visible data?
7Sandbox implementationHow does local command sandboxing route shell sessions through MXC helpers and filesystem policies?

Boundary-by-boundary map

BoundaryPrimary pageWhat to verify there
Model-visible tool listRuntime tool assembly and filteringTool candidates, filters, selected-agent rules, deferred loading, and session.tools_updated.
Tool call executionBuilt-in tools, execution events, and resultsStart/progress/partial/complete events, request processors, hooks, permissions, and replayable results.
Shell process boundaryShell command execution eventsPTY/process backend choice, sync/async/detach semantics, output buffers, background tasks, and notifications.
MCP protocol boundaryMCP host, transports, and toolsConfig merge, local/HTTP/SSE transports, OAuth, instructions, tool flattening, and MCP task/progress events.
Approval boundaryTool, path, and URL permissionsDeny/allow precedence, path/URL managers, session/location approvals, remote/ACP prompts, and allow-all toggles.
Data policy boundaryContent exclusion and redactionExcluded paths, filtered outputs, secret env vars, and redaction layers before data becomes model-visible or support-visible.
Local sandbox boundarySandbox implementationMXC adapter invocation, filesystem/network policy, platform constraints, and sandbox setting persistence.

Integration providers

ProviderPageRuntime surface
PluginsPlugins, extensions, and capabilitiesPlugin caches, marketplaces, contributed skills/agents/hooks/MCP/LSP, and enablement state.
Programmatic SDK extensionsCopilot SDK extension bridge@github/copilot-sdk extension discovery, joinSession(), management APIs, events, and trust boundaries.
IDE/LSP/editor bridgesIDE, LSP, and editor integrationIDE tools, selections, diagnostics, diffs, title sync, LSP config, and extension state.
Web/GitHub network accessWeb search, URL fetching, and URL permissionsBuilt-in web fetch, GitHub MCP web search, URL allow/deny persistence, and web gates.
Validation/review toolsCoding-agent validation and review toolchainCode review, CodeQL, secret scanning, advisory checks, budgets, and validation telemetry.

Policy and persistence topics

Handoffs

Created and maintained by Yingting Huang.