Skip to content

MCP

21 types. Import any of them from opencode.types.

McpAddConfig module-attribute

McpAddConfig: TypeAlias = Annotated[
    Annotated[McpLocalConfig, Tag("local")]
    | Annotated[McpRemoteConfig, Tag("remote")]
    | Annotated[UnknownMcpAddConfig, Tag("__unknown__")],
    Discriminator(
        discriminator("type", "type", ["local", "remote"])
    ),
]

McpListResponse

location instance-attribute

data instance-attribute

data: list[McpServer]

McpLocalConfig

type class-attribute instance-attribute

type: Literal['local'] = 'local'

command instance-attribute

command: list[str]

cwd class-attribute instance-attribute

cwd: str | None = Field(default=None, exclude_if=is_none)

environment class-attribute instance-attribute

environment: dict[str, str] | None = Field(
    default=None, exclude_if=is_none
)

disabled class-attribute instance-attribute

disabled: bool | None = Field(
    default=None, exclude_if=is_none
)

codemode class-attribute instance-attribute

codemode: bool | None = Field(
    default=None, exclude_if=is_none
)

timeout class-attribute instance-attribute

timeout: McpLocalConfigTimeout | None = Field(
    default=None, exclude_if=is_none
)

protocol class-attribute instance-attribute

protocol: McpProtocol | None = Field(
    default=None, exclude_if=is_none
)

McpLocalConfigTimeout

startup class-attribute instance-attribute

startup: int | None = Field(
    default=None, exclude_if=is_none
)

catalog class-attribute instance-attribute

catalog: int | None = Field(
    default=None, exclude_if=is_none
)

execution class-attribute instance-attribute

execution: int | None = Field(
    default=None, exclude_if=is_none
)

McpOAuthConfig

client_id class-attribute instance-attribute

client_id: str | None = Field(
    default=None, exclude_if=is_none
)

client_secret class-attribute instance-attribute

client_secret: str | None = Field(
    default=None, exclude_if=is_none
)

scope class-attribute instance-attribute

scope: str | None = Field(default=None, exclude_if=is_none)

callback_port class-attribute instance-attribute

callback_port: int | None = Field(
    default=None, exclude_if=is_none
)

redirect_uri class-attribute instance-attribute

redirect_uri: str | None = Field(
    default=None, exclude_if=is_none
)

auth_server_metadata_url class-attribute instance-attribute

auth_server_metadata_url: str | None = Field(
    default=None, exclude_if=is_none
)

McpProtocol module-attribute

McpProtocol: TypeAlias = OpenEnum[
    Literal["legacy", "auto", "2026-07-28"]
]

MCP protocol negotiation. "legacy" (default) opens with the initialize handshake and speaks protocol revisions up to 2025-11-25. "auto" probes for the 2026-07-28 revision and falls back to legacy when the server does not support it. "2026-07-28" requires that revision and fails otherwise.

McpRemoteConfig

type class-attribute instance-attribute

type: Literal['remote'] = 'remote'

url instance-attribute

url: str

headers class-attribute instance-attribute

headers: dict[str, str] | None = Field(
    default=None, exclude_if=is_none
)

oauth class-attribute instance-attribute

oauth: McpOAuthConfig | Literal[False] | None = Field(
    default=None, exclude_if=is_none
)

disabled class-attribute instance-attribute

disabled: bool | None = Field(
    default=None, exclude_if=is_none
)

codemode class-attribute instance-attribute

codemode: bool | None = Field(
    default=None, exclude_if=is_none
)

timeout class-attribute instance-attribute

timeout: McpRemoteConfigTimeout | None = Field(
    default=None, exclude_if=is_none
)

protocol class-attribute instance-attribute

protocol: McpProtocol | None = Field(
    default=None, exclude_if=is_none
)

McpRemoteConfigTimeout

startup class-attribute instance-attribute

startup: int | None = Field(
    default=None, exclude_if=is_none
)

catalog class-attribute instance-attribute

catalog: int | None = Field(
    default=None, exclude_if=is_none
)

execution class-attribute instance-attribute

execution: int | None = Field(
    default=None, exclude_if=is_none
)

McpResource

server instance-attribute

server: str

name instance-attribute

name: str

uri instance-attribute

uri: str

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

mime_type class-attribute instance-attribute

mime_type: str | None = Field(
    default=None,
    validation_alias="mimeType",
    serialization_alias="mimeType",
    exclude_if=is_none,
)

McpResourceCatalog

resources instance-attribute

resources: list[McpResource]

templates instance-attribute

McpResourceCatalogResponse

location instance-attribute

data instance-attribute

McpResourceTemplate

server instance-attribute

server: str

name instance-attribute

name: str

uri_template class-attribute instance-attribute

uri_template: str = Field(
    validation_alias="uriTemplate",
    serialization_alias="uriTemplate",
)

description class-attribute instance-attribute

description: str | None = Field(
    default=None, exclude_if=is_none
)

mime_type class-attribute instance-attribute

mime_type: str | None = Field(
    default=None,
    validation_alias="mimeType",
    serialization_alias="mimeType",
    exclude_if=is_none,
)

McpResourcesChangedEventData

server instance-attribute

server: str

McpServer

name instance-attribute

name: str

status instance-attribute

integration_id class-attribute instance-attribute

integration_id: IntegrationID | None = Field(
    default=None,
    validation_alias="integrationID",
    serialization_alias="integrationID",
    exclude_if=is_none,
)

McpServerStatus module-attribute

McpServerStatus: TypeAlias = Annotated[
    Annotated[McpStatusConnected, Tag("connected")]
    | Annotated[McpStatusPending, Tag("pending")]
    | Annotated[McpStatusDisabled, Tag("disabled")]
    | Annotated[McpStatusFailed, Tag("failed")]
    | Annotated[McpStatusNeedsAuth, Tag("needs_auth")]
    | Annotated[UnknownMcpServerStatus, Tag("__unknown__")],
    Discriminator(
        discriminator(
            "status",
            "status",
            [
                "connected",
                "pending",
                "disabled",
                "failed",
                "needs_auth",
            ],
        )
    ),
]

McpStatusChangedEventData

server instance-attribute

server: str

McpStatusConnected

status class-attribute instance-attribute

status: Literal['connected'] = 'connected'

McpStatusDisabled

status class-attribute instance-attribute

status: Literal['disabled'] = 'disabled'

McpStatusFailed

status class-attribute instance-attribute

status: Literal['failed'] = 'failed'

error instance-attribute

error: str

McpStatusNeedsAuth

status class-attribute instance-attribute

status: Literal['needs_auth'] = 'needs_auth'

error instance-attribute

error: str

McpStatusPending

status class-attribute instance-attribute

status: Literal['pending'] = 'pending'