Portal Community

The Octopus–MCP Bridge

Octopus agents register their tools with the platform at startup via the OctopusToolBridge. This bridge presents itself to the Flow Studio engine as a standard MCP server with server ID octopus-tools. From a workflow perspective, calling an Octopus agent tool is identical to calling any other MCP tool.


Octopus Agent (OctopusToolBridge)
    │ registers tools at startup
    ▼
IMCPServerRegistry
    └── serverId: "octopus-tools"
            ├── tool: "creditScoreAnalyzer"
            ├── tool: "fraudRiskAssessor"
            └── tool: "kycDocumentValidator"
    │
    ▼
MCPToolCallNode (serverId: "octopus-tools", toolName: "creditScoreAnalyzer")
    │
    ▼
OctopusToolBridge.DispatchAsync(toolName, parameters)
    │
    ▼
Octopus Agent — executes tool logic, returns result
  

Dynamic Tool Registration

Octopus agent tools are dynamic — they are registered at agent startup and may differ between deployments. The tool catalog for octopus-tools is fetched live from the bridge at design time. The palette in Flow Studio shows the current set of registered Octopus tools with their parameter schemas.

// Octopus agent registration (called at agent startup):
public class CreditScoreAgent : OctopusAgent
{
    protected override IEnumerable<OctopusTool> DefineTools() =>
    [
        new OctopusTool
        {
            Name        = "creditScoreAnalyzer",
            Description = "Analyses credit risk from financial data and returns a score 0–1000",
            InputSchema = new JsonSchemaBuilder()
                .Property("applicantId", JsonSchema.String().Required())
                .Property("includeExplanation", JsonSchema.Boolean())
                .Build()
        }
    ];
}

Calling an Octopus Tool from a Workflow Node

{
  "nodeType": "MCPToolCall",
  "name": "scoreCreditRisk",
  "config": {
    "serverId": "octopus-tools",
    "toolName": "creditScoreAnalyzer",
    "inputMap": {
      "applicantId":        "$json.applicantId",
      "includeExplanation": true
    },
    "timeoutSeconds": 45
  }
}

Workflow → Octopus vs. Octopus → Workflow

DirectionMechanismUse Case
Workflow calls Octopus toolMCPToolCallNode with serverId: "octopus-tools"Structured workflow step needing AI reasoning from an agent
Octopus agent starts a workflowIWorkflowOrchestrator.StartAsync() called from agent codeAgent-driven process initiation (e.g., detected anomaly triggers remediation workflow)
Octopus agent calls MCP toolAgent uses its own IMCPClientFactory directlyAgent autonomously calls another AI tool without workflow involvement
Octopus tool timeouts: Octopus agent tools that perform LLM inference can take longer than typical MCP tools. Set timeoutSeconds to at least 60 for agent-backed tools. The Octopus bridge itself enforces a 120-second maximum per tool call — beyond that, the bridge cancels the agent invocation and returns a timeout error.