How to Connect Seedance MCP to OpenCode for Terminal-Based Video Workflows A developer-focused guide details how to connect a remote Seedance MCP server to the OpenCode terminal coding agent, exposing two tools—seedance_generate_video for text-to-video and seedance_generate_video_from_image for image-to-video—so short clips can be generated from natural-language prompts without leaving the editor. The setup uses a remote MCP endpoint with Bearer token authentication configured in opencode.json, requiring oauth set to false and the API key supplied via an exported environment variable rather than committed to the file. When a video task starts in a terminal, the awkward part is often context switching: leave the editor, open a separate tool, upload an image, copy the result back, and repeat. This guide shows how to connect a remote Seedance MCP server to OpenCode so a terminal session can request short videos through natural-language instructions. The integration exposes two documented tools: seedance generate video for text-to-video generation seedance generate video from image for image-to-video generation That covers vertical short clips, product-demo animations, technical opening clips, and other cases where the first draft starts as either a description or an existing image. OpenCode connects to the remote MCP endpoint below; no local MCP server is required. https://seedance.mcp.acedata.cloud/mcp Authentication uses a Bearer token in the Authorization header. Keep the real token outside the configuration file and let OpenCode resolve it from an exported environment variable. OpenCode reads MCP definitions from opencode.json . Use ~/.config/opencode/opencode.json for a global setup, or opencode.json in a project root for a project-specific setup. The project-level file overrides the global one, so it is a useful place to test the integration first. { "$schema": "https://opencode.ai/config.json", "mcp": { "seedance": { "type": "remote", "url": "https://seedance.mcp.acedata.cloud/mcp", "enabled": true, "oauth": false, "headers": { "Authorization": "Bearer {env:ACEDATACLOUD API KEY}" } } } } type declares a remote MCP connection, url selects the Seedance server, and enabled controls whether OpenCode loads it. The oauth field must explicitly be false : this server expects Bearer authentication, not an OAuth challenge. The headers.Authorization value supplies the token without putting the secret in JSON. Export the token before starting OpenCode: export ACEDATACLOUD API KEY="replace with your real token" Do not commit the real value to Git. If you keep it in a .env file, exporting matters. One documented way to load exported variables into the OpenCode process is: set -a && source .env && set +a Otherwise the placeholder may resolve to an empty value. The configuration can look correct while the request still carries an incomplete header. Start with: opencode mcp list opencode mcp debug seedance A successful setup should show the Seedance connection as connected . If you see HTTP 401 or an SSE non-200 error, check these items in order: ACEDATACLOUD API KEY is exported in the shell that launches OpenCode. Bearer prefix. oauth is present and set to false . This separates an environment-variable problem from an authentication-mode problem and avoids putting a real secret into debug output. After the handshake succeeds, stay in the OpenCode session and describe the output. For example: Generate a vertical short video: a girl turns under a cherry blossom tree, slow motion, beautiful light and shadow Specify orientation, subject, movement, and lighting rather than asking for a vague “cool video.” OpenCode can then use seedance generate video through MCP while remaining the interface for the request. A developer-focused smoke test is: Generate a 3-second video intro: a glowing code symbol