Tools & Capabilities
Svantic has three ways to give agents tools: capabilities (your code, running on your machine), MCP servers (tool processes running alongside Svantic), and builtin tools (pre-built integrations shipped with the SDK).Capabilities
A capability is a function your agent exposes to the AI. You define it withdefine_capability and it becomes invocable by the mesh — just like any built-in tool.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Unique capability name (snake_case) |
description | string | Yes | What this capability does — the AI reads this |
parameters | object | Yes | JSON Schema defining expected inputs |
tags | string[] | No | Tags for categorization |
handler | function | Yes | Async function that executes locally |
How Capabilities Become AI-Callable
- Svantic reads your agent card (including skills with parameters)
- For each skill, Svantic creates a capability proxy
- When the AI invokes the capability, the proxy sends an A2A task to your agent
- Your handler receives the arguments and returns the result
Bidirectional Execution
Capabilities execute on your machine, not on the server. This is a foundational architectural decision.- Data sovereignty — data never leaves your environment
- Security — credentials stay on the machine that owns them
- Network topology — works behind firewalls, VPNs, air-gapped environments (outbound only)
- Scale — execution is distributed across your agents; Svantic handles reasoning
Design Guidelines
Do:- Be atomic — one capability, one action
- Write descriptions the AI can understand
- Use JSON Schema with descriptions on every property
- Return structured data with clear field names
- Handle errors gracefully with clear messages
- Bundle multiple operations into one capability
- Expose raw SQL — wrap queries in specific capabilities
- Return HTML — return structured data
- Skip descriptions on parameters
MCP Servers
MCP (Model Context Protocol) servers are tool processes that Svantic spawns and manages. They’re ideal for general-purpose utilities like browser automation, filesystem access, or code search.MCP vs. Capabilities
| Capabilities (A2A) | MCP Servers | |
|---|---|---|
| Where code runs | Your machine, your process | Svantic’s machine, child process |
| Protocol | A2A JSON-RPC 2.0 over HTTP | MCP over stdio |
| Data sovereignty | Full | None — tools run inside Svantic’s env |
| Best for | Business logic, databases, internal APIs | Browser automation, filesystem, dev tools |
Adding MCP Servers
settings.json (permanent):
/mcp add for an interactive wizard, /mcp list to see all servers, /mcp sync to re-push after a server restart.
Common MCP Servers
| Server | Package | Purpose |
|---|---|---|
| Chrome DevTools | chrome-devtools-mcp | Browser automation via CDP |
| Filesystem | @modelcontextprotocol/server-filesystem | Read/write files |
| Ripgrep | mcp-ripgrep | Fast regex search across codebases |
| Playwright | @anthropic/mcp-playwright | Full browser automation |
| GitHub | @modelcontextprotocol/server-github | GitHub API |
settings.json.
Writing a Custom MCP Server
Builtin Tools
The SDK ships with 25 production-ready tools across 7 domains. Enable them insettings.json:
Available Domains
| Domain | Tools | Credentials |
|---|---|---|
| GitHub | 6 (list PRs, get PR, diff, create, review, merge) | GITHUB_TOKEN |
| Bitbucket | 6 (list PRs, get PR, diff, create, comment, merge) | BITBUCKET_USERNAME, BITBUCKET_APP_PASSWORD |
| Jira | 4 (get issue, create, transition, comment) | JIRA_BASE_URL, JIRA_EMAIL, JIRA_API_TOKEN |
| Zendesk | 5 (list tickets, get, create, update, comment) | ZENDESK_SUBDOMAIN, ZENDESK_EMAIL, ZENDESK_API_TOKEN |
| Slack | 1 (send message) | SLACK_BOT_TOKEN |
| Shell | 1 (execute any command) | None — guarded by policies |
| Datadog | 2 (get alerts, query metrics) | DATADOG_API_KEY, DATADOG_APP_KEY |
Shell Tool
A general-purpose command execution tool that replaces the need for individualgit, kubectl, docker, or terraform wrappers. The agent constructs the command; shell_exec runs it locally.
{ "stdout": "...", "stderr": "...", "exit_code": 0 }.
Programmatic Usage
HttpHelper for building custom tools that call HTTP APIs.