Skip to content

Tool Governance and MCP Host Playbook

Languages: English · 中文

With three tools, passing a function list to the model may work. With dozens of tools, the failure pattern changes: capabilities are scattered, every request exposes too much, the model picks the wrong tool, permissions are rejected too late, and MCP integration leaves the Host responsibility unclear.

This playbook separates registration, activation, planning, and execution. MCP becomes a capability source; business governance stays with the Host.

Four Layers

LayerOwnsAgently capability
Capability registrationAvailable actions, argument schema, description, side-effect levelActions / Action Runtime
Scoped activationWhich capabilities the model sees in this runAgent definition, policy, runtime options
Planning and selectionWhich capability to call and what arguments to fillOutput schema, Action Runtime, TriggerFlow chunk
Normalized executionLocal function, HTTP, MCP, sandbox under one result shapeAction Executor, ExecutionEnvironment

Once these layers are separate, adding a new capability source does not require rewriting the planner.

Keep the Boundaries Separate

BoundaryBetter shapeCommon consequence when mixed
Registration != activationRegister the full catalog; expose a scoped subset per identity, scenario, and riskFull tool exposure causes wrong selection and privilege leakage
Activation != planningActivation selects candidates; planning chooses one and fills argsPolicy and model reasoning get buried in prompt text
Planning != executionPlanner does not know whether the capability is local, HTTP, MCP, or sandboxedChanging capability source rewrites planning logic
Execution != business judgmentExecutor calls capability and returns structured result/logsExecution layer secretly owns business path

Build a Capability Catalog First

Each callable capability should at least record:

FieldPurpose
id / nameStable identity for logs and audit
descriptionHelps the model decide when to use it
input schemaParameter types, required fields, business meaning
side effect levelread / write / exec; drives approval and policy
executorLocal function, MCP call, HTTP adapter, or sandbox task
owner / sourceDebugging and version ownership

Descriptions are not just human README text. They should help the model distinguish when to use the capability and when not to.

Do Not Expose Every Tool Every Time

Full exposure increases token cost, wrong selection, and audit confusion. A better route:

text
user request + identity + route
  -> candidate actions
  -> policy filter
  -> model-visible action surface
  -> action logs + audit

Read-only queries, business writes, script execution, and high-risk approval should not appear in one undifferentiated list.

MCP Has Three Roles

RoleResponsibility
ServerExpose tools, resources, or prompts; define schema; execute capability
ClientManage connection, handshake, discovery, forwarding
HostDecide which capability the model may see, how identity is injected, what is redacted, how calls are audited

Agently can mount MCP tools into Action Runtime so the model sees them like other callable capabilities. The enterprise application still owns Host governance.

Four Host Responsibilities

ResponsibilityWhy it matters
Identity propagationThe end user logged into your app, not the MCP server. Capability-side permissions and audit need that identity.
Visible capability scopingDifferent roles should see different tools. Do not expose everything and rely on server rejection.
Result redactionSensitive fields should be removed or aggregated before they enter model context.
Call auditServer audit says what resource was accessed; Host audit says why the tool was exposed and selected.

MCP and Skills

QuestionMCPSkills
How to expose external capabilities in a standard wayOwnsDoes not own
How to approach a class of tasksDoes not ownOwns
Tool args schema and result shapeOwnsCan reference
Multi-step guidance, resources, scripts, output templatesCan be a dependencyOwns
LifecycleServer / Client / HostSelect / load / map to runtime capabilities

A Skill can depend on MCP tools. The Skill describes behavior; MCP supplies executable capability. Keep the lifecycles separate.

  1. Convert one local function into an Action and inspect action logs.
  2. Centralize tool description, schema, side-effect level, and owner.
  3. Scope the action surface by scenario or identity.
  4. Add MCP server as another capability source.
  5. Use ExecutionEnvironment when the MCP server, browser, database, or sandbox needs lifecycle management.
  6. Use TriggerFlow when tool calls sit inside a multi-stage task.
  7. Put high-risk writes, batch execution, and external side effects behind approval or fail-closed paths.

Common Misuse

PatternConsequence
Tools scattered in prompts and handlersNo one can answer what capabilities the system has
Every request exposes every toolWrong selection, privilege leakage, high cost
Planner depends on whether a tool is MCP or localChanging source rewrites planning logic
Executor makes business routing decisionsCalling and process logic become hard to test
MCP integration is treated as permission completionMCP solves connection; Host still owns governance
Server-side redaction replaces Host-side redactionSensitive data may already have entered model context
Skill is treated as MCP or Tool replacementBehavior asset and capability layer get mixed

See Also