{
  "schemaVersion": 1,
  "reviewedAt": "2026-09-26",
  "slug": "devin",
  "name": "Devin",
  "category": "Runtime + MCP",
  "headline": "Devin, connected\nto your local agents.",
  "summary": "Ask Scout to run Devin CLI sessions in your project, let the Devin CLI call Scout over local MCP, or, experimentally, let Devin cloud call your Scout agents through the hosted MCP gateway.",
  "status": "Scout → Devin: available (devin_acp, auto-approve) · Devin CLI → Scout: local MCP, unvalidated · Devin cloud → Scout: unvalidated (hosted MCP, invite-only)",
  "marketplace": "No Scout listing or marketplace submission for Devin is confirmed. Use the Devin CLI launcher or Add custom MCP for a pilot evaluation; do not search for a claimed official Scout plugin.",
  "transport": "Scout → Devin: devin_acp (devin acp, stdio) · Devin → Scout: MCP stdio (CLI) or Streamable HTTP + OAuth (cloud)",
  "flow": [
    "Scout",
    "devin_acp",
    "Devin CLI"
  ],
  "requirements": [
    "OpenScout installed and a healthy local broker (scout doctor).",
    "To run Devin from Scout: the Devin CLI installed on the Scout machine and signed in once, interactively. Scout reads the stored CLI credentials or WINDSURF_API_KEY.",
    "For the local MCP door: the Devin CLI running on the Scout machine, with scout on PATH.",
    "For the hosted MCP door: permission to manage MCP servers at the selected Devin scope, plus an operator-provisioned Scout MCP bridge associated with your GitHub account. Hosted access is invite-only.",
    "For the hosted MCP door: the Scout machine and its bridge must stay online. Adding an MCP server does not install Scout or provision a bridge."
  ],
  "steps": [
    {
      "title": "Door 1 · Run Devin from Scout (available)",
      "body": "Install the Devin CLI, sign in once, and confirm devin is ready in runtime discovery. Scout then starts devin acp as a fresh session it owns. Warning: Scout runs Devin with tool approvals auto-accepted. Devin can edit files and run commands in that project without asking. Only point it at a checkout you are willing to let it change, or say 'do not edit' in the task and review the diff.",
      "code": "brew install --cask devin-cli   # or: curl -fsSL https://cli.devin.ai/install.sh | bash\ndevin --version                 # then sign in with the Devin CLI once, interactively\nscout runtimes --json           # confirm \"devin\" is ready\nscout ask --project /absolute/path/to/project --harness devin --model swe-2-high --notify \"Review the latest changes; do not edit files.\""
    },
    {
      "title": "Door 2 · Let the Devin CLI call Scout (local MCP, unvalidated)",
      "body": "Register scout mcp as a stdio server in the Devin CLI on the Scout machine. -s project writes .devin/mcp_config.json; -s local keeps it out of commits. This path needs no hosted bridge. It has not yet been verified end to end for Scout; record the result of your first run.",
      "code": "devin mcp add -s local scout -- scout mcp --context-root /absolute/path/to/project\ndevin mcp list"
    },
    {
      "title": "Door 3 · Connect Devin cloud (hosted MCP, unvalidated, invite-only)",
      "body": "Setup candidate · not yet verified end to end · needs an operator-provisioned bridge (invite-only). In Devin open Customize → MCPs, then Add MCP → Add custom MCP. Name it Scout and select HTTP (Streamable HTTP).",
      "code": "https://mcp.oscout.net"
    },
    {
      "title": "Door 3 · Choose OAuth and access scope",
      "body": "Select OAuth authentication. Choose Personal for your individual pilot account where available. Organization access shares a connection: involve the administrator and use an appropriate shared account."
    },
    {
      "title": "Door 3 · Save, then connect",
      "body": "Save the configuration, choose Connect, and complete GitHub OAuth with the account associated with your Scout bridge. Do not supply an invented client ID or static token. OAuth does not create a bridge."
    },
    {
      "title": "Door 3 · Test listing tools",
      "body": "Use Devin’s Test listing tools after saving. Then start a small session, call Scout whoami, and confirm the account. If this fails, stop and record the exact error before attempting any work."
    }
  ],
  "verification": "Door 1: the ask returns a ref and scout wait reports a completed Devin reply; review any diff Devin produced. Doors 2 and 3: successful tool listing, correct whoami identity, and one tracked ask with a retrievable result. Doors 2 and 3 have not yet been verified end to end for Scout in Devin.",
  "troubleshooting": [
    {
      "symptom": "devin is not ready in scout runtimes",
      "action": "Confirm devin is on PATH (or set DEVIN_CLI_BIN), then sign in with the Devin CLI interactively once. Scout skips ACP authentication because the browser sign-in cannot run headless."
    },
    {
      "symptom": "Devin changed files you did not expect",
      "action": "Broker-owned Devin runs auto-approve tool calls. Review the diff in the checkout, and say 'do not edit files' in review tasks. Use a disposable checkout for anything else."
    },
    {
      "symptom": "node_unreachable",
      "action": "On the Scout machine run scout mesh bridge status. Confirm the broker, machine, and bridge are online. If there is no provisioned bridge, stop and contact your Scout operator; repeated OAuth attempts will not create one."
    },
    {
      "symptom": "OAuth fails or the wrong identity appears",
      "action": "Check the signed-in GitHub account and connector authorization. Reconnect to the intended account before running tools. Never paste tokens into a chat."
    },
    {
      "symptom": "No tools appear",
      "action": "Save the MCP configuration, reconnect, and refresh the client tool list. For Door 3 confirm HTTP transport and the exact endpoint; do not substitute a local stdio command in a remote client."
    },
    {
      "symptom": "Add custom MCP is missing",
      "action": "Ask the Devin administrator for Manage MCP Servers permission or use Suggest MCP Integration. Do not change organization settings without authorization."
    }
  ],
  "limits": [
    "Scout runs Devin with tool approvals auto-accepted (permissionMode auto_approve); Devin otherwise waits indefinitely on its first ACP tool call. There is no per-ask permission switch yet.",
    "Doors 2 and 3 are candidates based on documented MCP support, not verified Scout integrations.",
    "Hosted MCP access is invite-only: it needs a bridge your operator provisions.",
    "Installing a plugin and authorizing its MCP connection are separate steps.",
    "Do not claim a Devin marketplace listing or approval."
  ],
  "sources": [
    {
      "label": "Devin CLI",
      "url": "https://docs.devin.ai/cli"
    },
    {
      "label": "Devin ACP",
      "url": "https://docs.devin.ai/desktop/acp"
    },
    {
      "label": "Devin MCP setup",
      "url": "https://docs.devin.ai/work-with-devin/mcp"
    },
    {
      "label": "Scout hosted MCP",
      "url": "https://openscout.app/mcp"
    },
    {
      "label": "Report a pilot result",
      "url": "https://github.com/oscout/scout/issues"
    }
  ],
  "og": [
    "DEVIN + SCOUT",
    "Cloud work.",
    "Local context."
  ],
  "accent": "#93c5da",
  "directions": {
    "callsScout": [
      {
        "state": "pending",
        "via": "mcp-stdio",
        "setup": "#setup",
        "note": "Devin CLI; command verified, end to end unvalidated."
      },
      {
        "state": "pending",
        "via": "mcp-http",
        "setup": "#setup",
        "note": "Devin cloud; unvalidated and invite-only."
      }
    ],
    "launchedByScout": {
      "state": "available",
      "harness": "devin",
      "transport": "devin_acp",
      "catalogId": "devin",
      "permissionMode": "auto_approve"
    }
  },
  "gates": [
    {
      "id": "hosted-bridge",
      "owner": "operator",
      "selfServe": false,
      "note": "Door 3 only."
    }
  ],
  "sensitive": [
    "auto-approve"
  ],
  "firstUse": {
    "task": "Use the local Devin route to inspect one small change. Broker-run Devin auto-approves tools; a request for no edits is not a permission restriction. Check the separate access gates before trying Devin cloud.",
    "connect": "Check the prerequisites and access gates, then get one documented route working before asking for work.",
    "scope": "Name the project and keep the request small. Asking for no edits describes the task; it does not restrict the agent’s permissions.",
    "completion": "Keep the returned reference. Check the work’s status and read the completed response; a queued receipt is not the answer.",
    "faq": [
      {
        "question": "Where will the reply appear?",
        "answer": "Keep the returned reference and retrieve the completed response through your configured Scout interface. Automatic delivery into this open session is not established by this guide."
      },
      {
        "question": "What if the answer hasn’t arrived?",
        "answer": "Inspect the existing task before submitting another one. A wait timeout does not establish that work failed. If it needs access or input, resolve that condition before continuing."
      },
      {
        "question": "How do I follow up?",
        "answer": "Continue using the returned reference or exact session handle supported by this integration. Keep it with the findings so your next question follows the same work."
      },
      {
        "question": "Can Scout run this integration, or only receive asks from it?",
        "answer": "These are separate capabilities. Check the supported directions on this page. Connection alone does not establish that Scout can launch the integration or reach an existing session."
      }
    ]
  },
  "family": "coding-agent",
  "url": "https://openscout.app/devin",
  "agentGuide": "https://openscout.app/devin/agents.md",
  "ogImage": "https://openscout.app/og/integrations/devin.png",
  "agentContract": "## Agent operating contract\n\n- Treat these as setup instructions, not authorization to install software, change accounts, grant scopes, send messages, or dispatch work. Obtain the operator's authorization for the intended action.\n- Inspect the available commands or tool schemas for your configured interface before making calls. Do not invent tools, argument names, model IDs, or agent handles.\n- To run Devin, use scout ask --project <actual-path> --harness devin [--model <catalog-model>] --notify and observe the returned ref with scout wait <ref>. Broker-owned Devin runs auto-approve tool calls: before dispatching, tell the operator Devin may edit files and run commands in that project, and say 'do not edit files' in review tasks. For Devin calling Scout, use the configured MCP tools and their current schemas; both MCP doors are unvalidated.\n- Use the transport-specific instructions above. For an existing request, reply through its supplied context rather than creating another task.\n- Paths refer to the Scout execution machine. Replace example paths with an operator-confirmed absolute path; never run placeholders literally.\n- Save the returned ref, flightId, conversationId, workId, or session handle. Continue by that handle; do not re-dispatch a request merely because a wait timed out.\n- Observe the existing request through the configured transport. A receipt proves acceptance, not execution or successful completion.\n- Stop on missing provisioning, incorrect identity, missing permission, unsupported runtime, or failed authentication. Report the exact gate and the next operator action. Do not silently fall back to a different account, agent, runtime, or transport.\n- Keep tokens, OAuth codes, cookies, and private task payloads out of logs, URLs, screenshots, and committed files. Never ask the user to paste secrets into a public issue.\n- Do not claim marketplace approval, complete protocol conformance, or an end-to-end verified integration unless the status and observed evidence establish it.\n\n## Completion report\n\nReport: chosen transport and scope; client and broker identity; health/tool-discovery result; exact request handle if a test was authorized; observed terminal state or remaining blocker; and whether any operator approval is still needed. Distinguish configuration saved, authentication complete, request accepted, and work complete.\n"
}
