Oplink delegates all communication with external MCP servers to mcporter. mcporter handles process orchestration (stdio) and HTTP connectors, tool discovery, schema caching, and basic retries.
.mcp-workflows/servers.json.list/tools/list) and populate an in-memory cache of tool schemas per alias.describe_tools reads from that cache and can optionally include or omit JSON Schemas (includeSchemas flag).externalServers can route calls to any tool from those aliases without copying schemas into your repo.${ENV_VAR} placeholders in servers.json; Oplink expands them from process.env (after auto‑loading .env files from your --config directory) before creating the mcporter runtime.auth: "oauth" and run via npx mcp-remote <endpoint>. mcporter handles browser/device flow and stores tokens in tokenCacheDir.Special thanks to @steipete for advocacy and early feedback around MCP developer tooling and interop.
Use mcporter directly to inspect a server alias without running the full Oplink server:
npx mcporter list linear --config examples/linear-discord-demo/.mcp-workflows
If authentication is required, mcporter guides you through the flow.
Note: All examples in this documentation are illustrative. You can wire in any MCP server (stdio or HTTP), whether it requires OAuth, an API key, or no authentication at all. The mechanics remain the same: declare the server in
servers.json, supply any required environment variables, and let mcporter handle transport and discovery.