
Model Not Found: When Config References Don't Match
OpenCode failed with ‘ProviderModelNotFoundError.’ The model ID existed—just not spelled the way my config spelled it.

OpenCode failed with ‘ProviderModelNotFoundError.’ The model ID existed—just not spelled the way my config spelled it.

My MCP server config worked in Claude Desktop. It failed validation in OpenCode. Same protocol, different schemas.

Stop invoking AI skills manually. Configure them to auto-load, turning one-off commands into persistent background behaviors.

How a simple naming mismatch in an example file during a project rebrand led to a critical authentication failure.

How assuming shell-like tilde expansion in a JSON config led to a plugin loading failure and what it taught me about path handling.

How to configure skills to auto-load for specific AI agents, turning one-off invocations into persistent behaviors.

MCP config that works in Claude Desktop fails in OpenCode. Same protocol, different schema. A tale of subtle incompatibilities.
Configure skills to auto-load for specific agents via oh-my-opencode.json.
Wanted content-seed harvesting to be always active, not requiring manual /content-seed invocation each session.
Solution: Add skills array to agent config.
// ~/.config/opencode/oh-my-opencode.json
{
"agents": {
"sisyphus": {
"model": "...",
"skills": ["content-seed"] // ← auto-loads
}
}
}
OpenCode config validation failed with “Invalid input mcp.mcp-image” error. The MCP server configuration used wrong schema format.
"mcp-image": {
"type": "stdio", // WRONG
"command": "npx", // WRONG
"args": ["-y", "mcp-image"], // WRONG
"env": { // WRONG field name
"GEMINI_API_KEY": "...",
"IMAGE_OUTPUT_DIR": "..."
}
}
"type": "stdio" - still failed"mcp-image": {
"type": "local", // local, not stdio
"command": ["npx", "-y", "mcp-image"], // array, not separate args
"environment": { // environment, not env
"GEMINI_API_KEY": "...",
"IMAGE_OUTPUT_DIR": "..."
}
}
Key differences:
type: "local" not "stdio" (OpenCode terminology)command is a single array including args, no separate args fieldenvironment not env for env varsOpenCode MCP schema differs from Claude Desktop’s MCP schema. Always check vendor docs - don’t assume schema compatibility between different MCP hosts.
ProviderModelNotFoundError when starting OpenCode. The oh-my-opencode.json config referenced model IDs that don’t exist in the provider definitions.
ProviderModelNotFoundError
providerID: "google"
modelID: "gemini-3-flash"
suggestions: ["gemini-3-flash-preview", "antigravity-gemini-3-flash"]
~/.config/opencode/oh-my-opencode.json:multimodal-looker agentvisual-engineering categoryartistry categorywriting categoryChanged all occurrences to use valid model IDs:
// Before (invalid)
"model": "google/gemini-3-flash"
"model": "google/gemini-3-pro"
// After (valid - using antigravity provider)
"model": "google/antigravity-gemini-3-flash"
"model": "google/antigravity-gemini-3-pro"
Model IDs in oh-my-opencode.json must exactly match the model IDs defined in opencode.json provider config. The error’s suggestions field shows valid alternatives - use those exact strings.