Inference Logoinference.sh

Agent Tools

Add connected MCP server tools to your agents so they can interact with external services.


Adding via the UI

  1. Open your agent's settings → Tools tab
  2. Click Add ToolConnector Tool
  3. Select a connected MCP server
  4. Choose which tools to expose to the agent

The agent sees each tool with its name, description, and input schema — just like any other tool.


Adding via YAML

In your agent's YAML config, add tools with type: mcp:

yaml
1tools:2  - name: list_issues3    type: mcp4    description: List Linear issues with filtering5    mcp:6      integration_id: "integ_abc123"7      tool_name: "list_issues"89  - name: create_issue10    type: mcp11    description: Create a new Linear issue12    require_approval: true13    mcp:14      integration_id: "integ_abc123"15      tool_name: "create_issue"
FieldDescription
integration_idYour team's integration ID for the MCP server
tool_nameThe tool name as listed by belt mcp tools <slug>

Finding Your Integration ID

After connecting to a server (belt mcp connect), find the integration ID:

bash
1belt app integrations list

Or via the web UI under team settings → integrations.


How It Works at Runtime

  1. Agent decides to call the tool based on the conversation
  2. Runtime loads your team's integration credentials
  3. Opens a fresh MCP session to the remote server
  4. Calls the tool with the agent's arguments
  5. Returns the result to the agent

Credentials are never exposed to the agent. Each tool call gets a fresh session — no state leaks between calls.


Require Approval

For destructive operations (creating issues, sending messages, deleting records), enable require_approval:

yaml
1- name: send_slack_message2  type: mcp3  description: Send a message to a Slack channel4  require_approval: true5  mcp:6    integration_id: "integ_xyz789"7    tool_name: "send_message"

The agent pauses and waits for user confirmation before executing.


Example: Triage Agent

An agent that reads Linear issues and posts summaries to Slack:

yaml
1name: triage-agent2description: Summarizes new Linear issues and posts to Slack3core_app:4  ref: openrouter/claude-sonnet-455system_prompt: |-6  You triage incoming Linear issues. For each new issue:7  1. Read the issue details8  2. Categorize by severity and area9  3. Post a summary to the #triage Slack channel10tools:11  - name: list_issues12    type: mcp13    description: List recent Linear issues14    mcp:15      integration_id: "integ_linear"16      tool_name: "list_issues"1718  - name: get_issue19    type: mcp20    description: Get full issue details21    mcp:22      integration_id: "integ_linear"23      tool_name: "get_issue"2425  - name: post_to_slack26    type: mcp27    description: Post a message to Slack28    require_approval: true29    mcp:30      integration_id: "integ_slack"31      tool_name: "send_message"

SDK Builders

Python

python
1from inferencesh import mcp_tool23list_issues = (4    mcp_tool("list_issues", "integ_abc123", "list_issues")5    .describe("List Linear issues with filtering")6    .build()7)89create_issue = (10    mcp_tool("create_issue", "integ_abc123", "create_issue")11    .describe("Create a new Linear issue")12    .require_approval()13    .build()14)

JavaScript

typescript
1import { mcpTool } from '@inferencesh/sdk';23const listIssues = mcpTool('list_issues', 'integ_abc123', 'list_issues')4  .describe('List Linear issues with filtering')5  .build();67const createIssue = mcpTool('create_issue', 'integ_abc123', 'create_issue')8  .describe('Create a new Linear issue')9  .requireApproval()10  .build();

Next

  • MCP Server — use inference.sh as an MCP server for Claude Code and Cursor
  • Adding Tools — all agent tool types

we use cookies

we use cookies to ensure you get the best experience on our website. for more information on how we use cookies, please see our cookie policy.

by clicking "accept", you agree to our use of cookies.
learn more.