> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superwire.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP Tools

> Import MCP tools, choose deterministic vs model-owned calls, and scope tool access safely.

Tools are callable MCP capabilities. They usually represent backend operations such as fetch, search, create, or update.

A tool import makes one MCP tool available to the workflow:

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
tool fetch_task from mcp.tasks.tool.fetch_task
```

## Tool schemas

`input {}` and `output {}` define the tool contract expected by the workflow.

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
tool fetch_task from mcp.tasks.tool.fetch_task {
    input {
        task_id: number
    }

    output {
        title: string
        description: string
        status: string
    }
}
```

## Runtime bindings

Use `bindings {}` when the workflow should supply trusted runtime values directly. This is the workflow-owned pattern.

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
dynamic {
    task: call tool.fetch_task {
        bindings {
            task_id: input.task_id
        }
    }
}
```

Use workflow-owned calls when the operation is required and should not depend on model discretion.

## Agent tool access

Agents can only call tools listed in `uses`.

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
agent researcher {
    model: model.fast
    uses: [tool.fetch_task]
    instruction: "Fetch the task and summarize it."

    output {
        summary: string
    }
}
```

This is the model-owned pattern: the model decides whether and when to call available tools.

## Choosing the pattern

* Use workflow-owned calls (`dynamic` + `call tool.*`) for deterministic steps and strict ordering.
* Use model-owned calls (`uses: [tool.*]`) when the model needs tool-choice judgment.
* Combine both when needed: prefetch core data deterministically, then expose selected tools for reasoning.

`uses` can also include prompts and resources.

## See also

* [MCP and Tools Overview](/mcp/overview)
* [MCP Servers](/mcp/mcp-servers)
* [Batch Imports](/mcp/batch-imports)
* [MCP Tools, Prompts, and Resources example](/examples/mcp-tools)
