Skip to content

MCP Tools

The fyrn MCP server exposes 41 tools for AI agents to manage the integration platform. It follows the Model Context Protocol specification and works with Claude Desktop, custom agents, and any MCP-compatible client.

TierLabelDescription
1UseRead-only + trigger. List, search, inspect, and send payloads through existing flows.
2BuildRead + create. Create instances, flows, adapters, published APIs, and lookup tables.
3ManageFull access. Edit flows, pause/resume, retry messages, manage healing, update schedules.

Tools that require approval use a two-step pattern:

  1. Agent calls the tool without approval_id → server creates a pending action and returns approval_required
  2. Human approves in the web UI
  3. Agent re-calls with approval_id set to the action ID

List all integration flows with status, health, and message counts.

ParameterTypeRequiredDescription
statusstringNoFilter: draft, active, paused, error
{ "name": "list_flows", "arguments": { "status": "active" } }

Search flows by name or description.

ParameterTypeRequiredDescription
querystringYesName or description to search for
{ "name": "search_flows", "arguments": { "query": "order-webhook" } }

Get detailed status of a flow including recent metrics and health.

ParameterTypeRequiredDescription
flow_idstring (uuid)YesFlow ID
{ "name": "get_flow_status", "arguments": { "flow_id": "..." } }

Send a payload through a flow. Accepts UUID or flow name (resolved via search).

ParameterTypeRequiredDescription
flow_idstringYesFlow ID (UUID) or flow name
payloadobjectYesJSON payload to process
{
"name": "trigger_flow",
"arguments": {
"flow_id": "order-webhook-to-erp",
"payload": { "order_id": "ORD-123", "total": 99.99 }
}
}

List available published API endpoints with their schemas.

No parameters.

Send data to a published API endpoint.

ParameterTypeRequiredDescription
api_pathstringYesAPI path (e.g., "partner-orders")
payloadobjectYesJSON payload
{
"name": "call_published_api",
"arguments": { "api_path": "partner-orders", "payload": { "order_id": "PO-001" } }
}

List scheduled flows with cron expression, next run, last status, and enabled state.

ParameterTypeRequiredDescription
flow_idstring (uuid)NoFilter by flow ID

Get status and progress of a batch job.

ParameterTypeRequiredDescription
batch_job_idstring (uuid)YesBatch job ID

List recent batch jobs with status and progress.

ParameterTypeRequiredDescription
flow_idstring (uuid)NoFilter by flow ID

List custom code adapters with type, test status, and AI-generated flag.

No parameters.

Test an adapter in a sandboxed V8 isolate with sample input.

ParameterTypeRequiredDescription
adapter_idstring (uuid)YesAdapter ID
inputobjectYesSample input payload
{
"name": "test_adapter",
"arguments": {
"adapter_id": "...",
"input": { "order_id": "ORD-123", "line_items": [{"sku": "A", "qty": 2}] }
}
}

List all lookup tables for value translation in mappings.

No parameters.

Get a lookup table by ID with metadata and entries.

ParameterTypeRequiredDescription
table_idstring (uuid)YesLookup table ID
searchstringNoSearch entries by key or value
limitnumber (1-100)NoMax entries (default: 20)

Export error details for a batch job — failed records with error messages and original payloads.

ParameterTypeRequiredDescription
batch_job_idstring (uuid)YesBatch job ID

Retrieve the OpenAPI specification for a published API endpoint.

ParameterTypeRequiredDescription
api_idstring (uuid)YesPublished API ID
formatstringNo"json" or "yaml" (default: json)
{ "name": "get_api_spec", "arguments": { "api_id": "...", "format": "yaml" } }

View recent message logs for a flow. Requires tier 3 permission at runtime.

ParameterTypeRequiredDescription
flow_idstring (uuid)YesFlow ID
statusstringNoFilter: received, success, failed, retrying, dead_lettered
limitnumber (1-100)NoMax messages (default: 20)

List available connector types from the catalog with config schemas.

No parameters.

Create a new connector instance. Requires approval.

ParameterTypeRequiredDescription
catalog_idstring (uuid)NoCatalog entry ID
namestringYesUnique instance name
display_namestringNoHuman-readable name
configobjectYesConfiguration with credentials
rate_limit_configobjectNoRate limiting settings
rate_limit_config.requestsPerSecondnumberNoMax req/s
rate_limit_config.requestsPerMinutenumberNoMax req/min
rate_limit_config.dailyQuotanumberNoMax req/day
rate_limit_config.burstnumberNoBurst size
rate_limit_config.onLimitstringConditional"queue", "reject", or "backoff"
approval_idstring (uuid)NoApproval ID if pre-approved

Test a connector instance connection.

ParameterTypeRequiredDescription
instance_idstring (uuid)YesInstance ID

Generate a flow from natural language using AI, then create it. Requires approval. Tracked as AI tool for rate limiting.

ParameterTypeRequiredDescription
descriptionstringYesNatural language description
source_hintstringNoHint about source system
target_hintstringNoHint about target system
approval_idstring (uuid)NoApproval ID if pre-approved
{
"name": "create_flow",
"arguments": {
"description": "Sync orders from Shopify to NetSuite whenever a new order is placed",
"source_hint": "Shopify webhook",
"target_hint": "NetSuite REST API"
}
}

Preview how a flow transforms a sample payload without delivering.

ParameterTypeRequiredDescription
flow_idstring (uuid)YesFlow ID
sample_payloadobjectYesSample payload to transform

Clone a flow to another environment for promotion. Requires approval.

ParameterTypeRequiredDescription
flow_idstring (uuid)YesFlow ID to clone
target_environment_idstring (uuid)YesTarget environment ID
approval_idstring (uuid)NoApproval ID if pre-approved
{
"name": "clone_flow",
"arguments": {
"flow_id": "...",
"target_environment_id": "..."
}
}

Deploy a draft flow — validates, compiles, activates. Requires approval. Blocked in sandbox mode.

ParameterTypeRequiredDescription
flow_idstring (uuid)YesFlow ID
approval_idstring (uuid)NoApproval ID if pre-approved

Manually trigger a scheduled flow. Requires approval.

ParameterTypeRequiredDescription
schedule_idstring (uuid)YesSchedule ID
approval_idstring (uuid)NoApproval ID

Start a batch processing job. Requires approval.

ParameterTypeRequiredDescription
flow_idstring (uuid)YesFlow ID
recordsarrayYesArray of record objects
concurrencynumber (1-50)NoMax concurrent records (default: 5)
approval_idstring (uuid)NoApproval ID

Create a custom code adapter. AI generates code from description if code is omitted. Requires approval.

ParameterTypeRequiredDescription
namestringYesUnique adapter name
descriptionstringYesDescription / AI prompt
adapter_typestringYesrequest_transform, response_transform, auth, enrichment, full
codestringNoJavaScript code (AI generates if omitted)
sample_inputobjectNoSample input for testing
approval_idstring (uuid)NoApproval ID

Create a new lookup table. Requires approval.

ParameterTypeRequiredDescription
namestringYesKebab-case name (e.g., "country-warehouses")
descriptionstringNoDescription
approval_idstring (uuid)NoApproval ID

Add or update an entry in a lookup table. Requires approval.

ParameterTypeRequiredDescription
table_idstring (uuid)YesTable ID
keystringYesLookup key
valuestringYesLookup value
approval_idstring (uuid)NoApproval ID

Bulk import entries from CSV content. Requires key and value columns. Requires approval.

ParameterTypeRequiredDescription
table_idstring (uuid)YesTable ID
csvstringYesCSV content
approval_idstring (uuid)NoApproval ID

Retry all failed records in a batch job at lower concurrency. Requires approval.

ParameterTypeRequiredDescription
batch_job_idstring (uuid)YesBatch job ID
approval_idstring (uuid)NoApproval ID

Generate a published API endpoint from a description using AI. Requires approval.

ParameterTypeRequiredDescription
descriptionstringYesAPI endpoint description
example_payloadobjectNoExample request payload
approval_idstring (uuid)NoApproval ID

Edit an existing flow — YAML config, name, description, or status. Requires approval.

ParameterTypeRequiredDescription
flow_idstring (uuid)YesFlow ID
yaml_configstringNoNew YAML configuration
descriptionstringNoNew description
namestringNoNew name
change_summarystringNoSummary of changes
approval_idstring (uuid)NoApproval ID

Pause an active flow — stops processing new messages.

ParameterTypeRequiredDescription
flow_idstring (uuid)YesFlow ID

Resume a paused flow.

ParameterTypeRequiredDescription
flow_idstring (uuid)YesFlow ID

Retry delivery of a failed message.

ParameterTypeRequiredDescription
message_idstringYesMessage ID

List self-healing events, optionally filtered by flow.

ParameterTypeRequiredDescription
flow_idstring (uuid)NoFilter by flow ID

Update a schedule — cron expression, timezone, or enable/disable. Requires approval.

ParameterTypeRequiredDescription
schedule_idstring (uuid)YesSchedule ID
cron_expressionstringNoNew cron (e.g., "0 9 * * 1-5")
timezonestringNoNew timezone
enabledbooleanNoEnable or disable
approval_idstring (uuid)NoApproval ID

Update an existing adapter. Requires approval.

ParameterTypeRequiredDescription
adapter_idstring (uuid)YesAdapter ID
namestringNoNew name
descriptionstringNoNew description
codestringNoNew JavaScript code
adapter_typestringNoNew type
approval_idstring (uuid)NoApproval ID

Soft-delete a lookup table (entries preserved but table deactivated). Requires approval.

ParameterTypeRequiredDescription
table_idstring (uuid)YesTable ID
approval_idstring (uuid)NoApproval ID

Remove a single entry from a lookup table. Requires approval.

ParameterTypeRequiredDescription
table_idstring (uuid)YesTable ID
keystringYesKey to delete
approval_idstring (uuid)NoApproval ID

Approve a pending self-healing fix to be applied. Requires approval.

ParameterTypeRequiredDescription
healing_event_idstring (uuid)YesHealing event ID
approval_idstring (uuid)NoApproval ID

Responses are filtered before returning to the agent:

  • Sensitive config fields (api_key, token, password, secret, etc.) → ***REDACTED***
  • PII fields (email, phone, SSN, address, etc.) → ***PII*** in message-related tools, unless pii_access is enabled
  • Per-second rate limit per agent key
  • Daily quota per agent key
  • AI tool calls (create_flow, create_published_api, create_adapter) tracked separately

Repeated identical calls (same tool + same arguments) from the same agent key are detected and blocked.

Every tool call is recorded with: agent key ID, tool name, input, output, duration, and status (success, error, denied, approval_required, loop_detected).