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?
3Indexed repository search with tgrep and ripgrepWhen does the existing grep tool use an index server, and how does it fall back?
4Shell command execution eventsHow does the native-backed Bash/PowerShell manager handle sync/async/detached work, task tracking, and large output?
5MCP host, transports, and toolsHow are MCP servers discovered, transported, authorized, filtered, and mapped into tools/resources/prompts/tasks?
6MCP Apps and canvas bridgeHow do SDK/server clients and MCP servers expose renderable canvases, MCP Apps UI metadata, and app-originated MCP calls?
7Tool, path, and URL permissionsHow do tool/path/URL/MCP/hook approval rules and precedence work?
8Content exclusion and redactionHow do policy fetch/merge, filtered outputs, secret env vars, and redaction boundaries affect model-visible data?
9Sandbox implementationHow does native sandbox policy constrain shell, file/search, LSP, MCP, and web-fetch operations?

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.
Repository search backendIndexed repository search with tgrep and ripgrepEligibility, repository index cache, server readiness, query adaptation, telemetry, and fallback.
Shell process boundaryShell command execution eventsNative manager calls, 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.
MCP UI/app boundaryMCP Apps and canvas bridgeGated mcp-apps capability, canvas provider registration, canvas model tools, and app-originated MCP tool-call 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 implementationNative policy/spawn calls, filesystem/network enforcement, bypass approval, platform constraints, and 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.
MCP Apps / canvas providersMCP Apps and canvas bridgeSDK/server canvas registration, open_canvas tools, MCP Apps _meta.ui, and mcp_app.tool_call_complete.
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.