Add connected MCP server tools to your agents so they can interact with external services.
Adding via the UI
- Open your agent's settings → Tools tab
- Click Add Tool → Connector Tool
- Select a connected MCP server
- 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:
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"| Field | Description |
|---|---|
integration_id | Your team's integration ID for the MCP server |
tool_name | The 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:
1belt app integrations listOr via the web UI under team settings → integrations.
How It Works at Runtime
- Agent decides to call the tool based on the conversation
- Runtime loads your team's integration credentials
- Opens a fresh MCP session to the remote server
- Calls the tool with the agent's arguments
- 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:
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:
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
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
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