1. Registry
  2. Packages
  3. DigitalOcean Provider
  4. API Docs
  5. ActionGatewayMcpServer
Viewing docs for DigitalOcean v4.85.0
published on Saturday, Nov 7, 2026 by Pulumi
digitalocean logo
Viewing docs for DigitalOcean v4.85.0
published on Saturday, Nov 7, 2026 by Pulumi

    Provides a DigitalOcean Action Gateway MCP server resource. It registers your own remote MCP server with your team, discovers its tools, and enables the ones you choose. Enabled tools are added to your team’s catalog with slugs of the form <server_ref>_<tool>.

    Example Usage

    API key sent to the server

    import * as pulumi from "@pulumi/pulumi";
    import * as digitalocean from "@pulumi/digitalocean";
    
    const docs = new digitalocean.ActionGatewayMcpServer("docs", {
        serverRef: "docs",
        endpoint: "https://mcp.example.com/mcp",
        description: "Internal documentation search.",
        credentialRefSource: "secret",
        apiKey: docsMcpApiKey,
        enabledTools: [
            "docs_search",
            "docs_get_page",
        ],
    });
    
    import pulumi
    import pulumi_digitalocean as digitalocean
    
    docs = digitalocean.ActionGatewayMcpServer("docs",
        server_ref="docs",
        endpoint="https://mcp.example.com/mcp",
        description="Internal documentation search.",
        credential_ref_source="secret",
        api_key=docs_mcp_api_key,
        enabled_tools=[
            "docs_search",
            "docs_get_page",
        ])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := digitalocean.NewActionGatewayMcpServer(ctx, "docs", &digitalocean.ActionGatewayMcpServerArgs{
    			ServerRef:           pulumi.String("docs"),
    			Endpoint:            pulumi.String("https://mcp.example.com/mcp"),
    			Description:         pulumi.String("Internal documentation search."),
    			CredentialRefSource: pulumi.String("secret"),
    			ApiKey:              pulumi.Any(docsMcpApiKey),
    			EnabledTools: pulumi.StringArray{
    				pulumi.String("docs_search"),
    				pulumi.String("docs_get_page"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using DigitalOcean = Pulumi.DigitalOcean;
    
    return await Deployment.RunAsync(() => 
    {
        var docs = new DigitalOcean.ActionGatewayMcpServer("docs", new()
        {
            ServerRef = "docs",
            Endpoint = "https://mcp.example.com/mcp",
            Description = "Internal documentation search.",
            CredentialRefSource = "secret",
            ApiKey = docsMcpApiKey,
            EnabledTools = new[]
            {
                "docs_search",
                "docs_get_page",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.digitalocean.ActionGatewayMcpServer;
    import com.pulumi.digitalocean.ActionGatewayMcpServerArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var docs = new ActionGatewayMcpServer("docs", ActionGatewayMcpServerArgs.builder()
                .serverRef("docs")
                .endpoint("https://mcp.example.com/mcp")
                .description("Internal documentation search.")
                .credentialRefSource("secret")
                .apiKey(docsMcpApiKey)
                .enabledTools(            
                    "docs_search",
                    "docs_get_page")
                .build());
    
        }
    }
    
    resources:
      docs:
        type: digitalocean:ActionGatewayMcpServer
        properties:
          serverRef: docs
          endpoint: https://mcp.example.com/mcp
          description: Internal documentation search.
          credentialRefSource: secret
          apiKey: ${docsMcpApiKey}
          enabledTools:
            - docs_search
            - docs_get_page
    
    terraform {
      required_providers {
        digitalocean = {
          source = "pulumi/digitalocean"
        }
      }
    }
    
    resource "digitalocean_action_gateway_mcp_server" "docs" {
      lifecycle {
        create_before_destroy = true
      }
      server_ref            = "docs"
      endpoint              = "https://mcp.example.com/mcp"
      description           = "Internal documentation search."
      credential_ref_source = "secret"
      api_key               = docsMcpApiKey
      enabled_tools         = ["docs_search", "docs_get_page"]
    }
    

    Per-user OAuth

    import * as pulumi from "@pulumi/pulumi";
    import * as digitalocean from "@pulumi/digitalocean";
    
    const tickets = new digitalocean.ActionGatewayMcpServer("tickets", {
        serverRef: "tickets",
        endpoint: "https://mcp.tickets.example.com/mcp",
        credentialRefSource: "connection",
        oauthClientId: ticketsOauthClientId,
        oauthClientSecret: ticketsOauthClientSecret,
        oauthAuthorizeUrl: "https://mcp.tickets.example.com/oauth/authorize",
        oauthTokenUrl: "https://mcp.tickets.example.com/oauth/token",
        oauthScopes: ["tickets:read"],
        syncUserId: "user-123",
        enabledTools: ["tickets_search"],
    });
    
    import pulumi
    import pulumi_digitalocean as digitalocean
    
    tickets = digitalocean.ActionGatewayMcpServer("tickets",
        server_ref="tickets",
        endpoint="https://mcp.tickets.example.com/mcp",
        credential_ref_source="connection",
        oauth_client_id=tickets_oauth_client_id,
        oauth_client_secret=tickets_oauth_client_secret,
        oauth_authorize_url="https://mcp.tickets.example.com/oauth/authorize",
        oauth_token_url="https://mcp.tickets.example.com/oauth/token",
        oauth_scopes=["tickets:read"],
        sync_user_id="user-123",
        enabled_tools=["tickets_search"])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := digitalocean.NewActionGatewayMcpServer(ctx, "tickets", &digitalocean.ActionGatewayMcpServerArgs{
    			ServerRef:           pulumi.String("tickets"),
    			Endpoint:            pulumi.String("https://mcp.tickets.example.com/mcp"),
    			CredentialRefSource: pulumi.String("connection"),
    			OauthClientId:       pulumi.Any(ticketsOauthClientId),
    			OauthClientSecret:   pulumi.Any(ticketsOauthClientSecret),
    			OauthAuthorizeUrl:   pulumi.String("https://mcp.tickets.example.com/oauth/authorize"),
    			OauthTokenUrl:       pulumi.String("https://mcp.tickets.example.com/oauth/token"),
    			OauthScopes: pulumi.StringArray{
    				pulumi.String("tickets:read"),
    			},
    			SyncUserId: pulumi.String("user-123"),
    			EnabledTools: pulumi.StringArray{
    				pulumi.String("tickets_search"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using DigitalOcean = Pulumi.DigitalOcean;
    
    return await Deployment.RunAsync(() => 
    {
        var tickets = new DigitalOcean.ActionGatewayMcpServer("tickets", new()
        {
            ServerRef = "tickets",
            Endpoint = "https://mcp.tickets.example.com/mcp",
            CredentialRefSource = "connection",
            OauthClientId = ticketsOauthClientId,
            OauthClientSecret = ticketsOauthClientSecret,
            OauthAuthorizeUrl = "https://mcp.tickets.example.com/oauth/authorize",
            OauthTokenUrl = "https://mcp.tickets.example.com/oauth/token",
            OauthScopes = new[]
            {
                "tickets:read",
            },
            SyncUserId = "user-123",
            EnabledTools = new[]
            {
                "tickets_search",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.digitalocean.ActionGatewayMcpServer;
    import com.pulumi.digitalocean.ActionGatewayMcpServerArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var tickets = new ActionGatewayMcpServer("tickets", ActionGatewayMcpServerArgs.builder()
                .serverRef("tickets")
                .endpoint("https://mcp.tickets.example.com/mcp")
                .credentialRefSource("connection")
                .oauthClientId(ticketsOauthClientId)
                .oauthClientSecret(ticketsOauthClientSecret)
                .oauthAuthorizeUrl("https://mcp.tickets.example.com/oauth/authorize")
                .oauthTokenUrl("https://mcp.tickets.example.com/oauth/token")
                .oauthScopes("tickets:read")
                .syncUserId("user-123")
                .enabledTools("tickets_search")
                .build());
    
        }
    }
    
    resources:
      tickets:
        type: digitalocean:ActionGatewayMcpServer
        properties:
          serverRef: tickets
          endpoint: https://mcp.tickets.example.com/mcp
          credentialRefSource: connection
          oauthClientId: ${ticketsOauthClientId}
          oauthClientSecret: ${ticketsOauthClientSecret}
          oauthAuthorizeUrl: https://mcp.tickets.example.com/oauth/authorize
          oauthTokenUrl: https://mcp.tickets.example.com/oauth/token
          oauthScopes:
            - tickets:read
          syncUserId: user-123
          enabledTools:
            - tickets_search
    
    terraform {
      required_providers {
        digitalocean = {
          source = "pulumi/digitalocean"
        }
      }
    }
    
    resource "digitalocean_action_gateway_mcp_server" "tickets" {
      lifecycle {
        create_before_destroy = true
      }
      server_ref            = "tickets"
      endpoint              = "https://mcp.tickets.example.com/mcp"
      credential_ref_source = "connection"
      oauth_client_id       = ticketsOauthClientId
      oauth_client_secret   = ticketsOauthClientSecret
      oauth_authorize_url   = "https://mcp.tickets.example.com/oauth/authorize"
      oauth_token_url       = "https://mcp.tickets.example.com/oauth/token"
      oauth_scopes          = ["tickets:read"]
      sync_user_id          = "user-123"
      enabled_tools         = ["tickets_search"]
    }
    

    Create ActionGatewayMcpServer Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new ActionGatewayMcpServer(name: string, args: ActionGatewayMcpServerArgs, opts?: CustomResourceOptions);
    @overload
    def ActionGatewayMcpServer(resource_name: str,
                               args: ActionGatewayMcpServerArgs,
                               opts: Optional[ResourceOptions] = None)
    
    @overload
    def ActionGatewayMcpServer(resource_name: str,
                               opts: Optional[ResourceOptions] = None,
                               endpoint: Optional[str] = None,
                               server_ref: Optional[str] = None,
                               oauth_authorization_ttl_seconds: Optional[int] = None,
                               description: Optional[str] = None,
                               enabled_tools: Optional[Sequence[str]] = None,
                               credential_ref_source: Optional[str] = None,
                               api_key: Optional[str] = None,
                               oauth_authorize_url: Optional[str] = None,
                               oauth_client_id: Optional[str] = None,
                               oauth_client_secret: Optional[str] = None,
                               oauth_scopes: Optional[Sequence[str]] = None,
                               oauth_token_url: Optional[str] = None,
                               credential_ref: Optional[str] = None,
                               sync_user_id: Optional[str] = None,
                               transport: Optional[str] = None)
    func NewActionGatewayMcpServer(ctx *Context, name string, args ActionGatewayMcpServerArgs, opts ...ResourceOption) (*ActionGatewayMcpServer, error)
    public ActionGatewayMcpServer(string name, ActionGatewayMcpServerArgs args, CustomResourceOptions? opts = null)
    public ActionGatewayMcpServer(String name, ActionGatewayMcpServerArgs args)
    public ActionGatewayMcpServer(String name, ActionGatewayMcpServerArgs args, CustomResourceOptions options)
    
    type: digitalocean:ActionGatewayMcpServer
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "digitalocean_action_gateway_mcp_server" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args ActionGatewayMcpServerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ActionGatewayMcpServerArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ActionGatewayMcpServerArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ActionGatewayMcpServerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ActionGatewayMcpServerArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var actionGatewayMcpServerResource = new DigitalOcean.ActionGatewayMcpServer("actionGatewayMcpServerResource", new()
    {
        Endpoint = "string",
        ServerRef = "string",
        OauthAuthorizationTtlSeconds = 0,
        Description = "string",
        EnabledTools = new[]
        {
            "string",
        },
        CredentialRefSource = "string",
        ApiKey = "string",
        OauthAuthorizeUrl = "string",
        OauthClientId = "string",
        OauthClientSecret = "string",
        OauthScopes = new[]
        {
            "string",
        },
        OauthTokenUrl = "string",
        CredentialRef = "string",
        SyncUserId = "string",
        Transport = "string",
    });
    
    example, err := digitalocean.NewActionGatewayMcpServer(ctx, "actionGatewayMcpServerResource", &digitalocean.ActionGatewayMcpServerArgs{
    	Endpoint:                     pulumi.String("string"),
    	ServerRef:                    pulumi.String("string"),
    	OauthAuthorizationTtlSeconds: pulumi.Int(0),
    	Description:                  pulumi.String("string"),
    	EnabledTools: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	CredentialRefSource: pulumi.String("string"),
    	ApiKey:              pulumi.String("string"),
    	OauthAuthorizeUrl:   pulumi.String("string"),
    	OauthClientId:       pulumi.String("string"),
    	OauthClientSecret:   pulumi.String("string"),
    	OauthScopes: pulumi.StringArray{
    		pulumi.String("string"),
    	},
    	OauthTokenUrl: pulumi.String("string"),
    	CredentialRef: pulumi.String("string"),
    	SyncUserId:    pulumi.String("string"),
    	Transport:     pulumi.String("string"),
    })
    
    resource "digitalocean_action_gateway_mcp_server" "actionGatewayMcpServerResource" {
      lifecycle {
        create_before_destroy = true
      }
      endpoint                        = "string"
      server_ref                      = "string"
      oauth_authorization_ttl_seconds = 0
      description                     = "string"
      enabled_tools                   = ["string"]
      credential_ref_source           = "string"
      api_key                         = "string"
      oauth_authorize_url             = "string"
      oauth_client_id                 = "string"
      oauth_client_secret             = "string"
      oauth_scopes                    = ["string"]
      oauth_token_url                 = "string"
      credential_ref                  = "string"
      sync_user_id                    = "string"
      transport                       = "string"
    }
    
    var actionGatewayMcpServerResource = new ActionGatewayMcpServer("actionGatewayMcpServerResource", ActionGatewayMcpServerArgs.builder()
        .endpoint("string")
        .serverRef("string")
        .oauthAuthorizationTtlSeconds(0)
        .description("string")
        .enabledTools("string")
        .credentialRefSource("string")
        .apiKey("string")
        .oauthAuthorizeUrl("string")
        .oauthClientId("string")
        .oauthClientSecret("string")
        .oauthScopes("string")
        .oauthTokenUrl("string")
        .credentialRef("string")
        .syncUserId("string")
        .transport("string")
        .build());
    
    action_gateway_mcp_server_resource = digitalocean.ActionGatewayMcpServer("actionGatewayMcpServerResource",
        endpoint="string",
        server_ref="string",
        oauth_authorization_ttl_seconds=0,
        description="string",
        enabled_tools=["string"],
        credential_ref_source="string",
        api_key="string",
        oauth_authorize_url="string",
        oauth_client_id="string",
        oauth_client_secret="string",
        oauth_scopes=["string"],
        oauth_token_url="string",
        credential_ref="string",
        sync_user_id="string",
        transport="string")
    
    const actionGatewayMcpServerResource = new digitalocean.ActionGatewayMcpServer("actionGatewayMcpServerResource", {
        endpoint: "string",
        serverRef: "string",
        oauthAuthorizationTtlSeconds: 0,
        description: "string",
        enabledTools: ["string"],
        credentialRefSource: "string",
        apiKey: "string",
        oauthAuthorizeUrl: "string",
        oauthClientId: "string",
        oauthClientSecret: "string",
        oauthScopes: ["string"],
        oauthTokenUrl: "string",
        credentialRef: "string",
        syncUserId: "string",
        transport: "string",
    });
    
    type: digitalocean:ActionGatewayMcpServer
    properties:
        apiKey: string
        credentialRef: string
        credentialRefSource: string
        description: string
        enabledTools:
            - string
        endpoint: string
        oauthAuthorizationTtlSeconds: 0
        oauthAuthorizeUrl: string
        oauthClientId: string
        oauthClientSecret: string
        oauthScopes:
            - string
        oauthTokenUrl: string
        serverRef: string
        syncUserId: string
        transport: string
    

    ActionGatewayMcpServer Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The ActionGatewayMcpServer resource accepts the following input properties:

    Endpoint string
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    ServerRef string
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    ApiKey string
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    CredentialRef string
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    CredentialRefSource string
    How requests to the server authenticate: none (the default), secret, or connection.
    Description string
    The description shown on the server's catalog card, at most 1024 characters.
    EnabledTools List<string>
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    OauthAuthorizationTtlSeconds int
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    OauthAuthorizeUrl string
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    OauthClientId string
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    OauthClientSecret string
    For connection: the client secret of your team's OAuth client. It is write-only.
    OauthScopes List<string>
    For connection: the scopes to request from each user, 1 to 64 of them.
    OauthTokenUrl string
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    SyncUserId string
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    Transport string
    The MCP transport. Only streamableHttp, the default, is supported.
    Endpoint string
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    ServerRef string
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    ApiKey string
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    CredentialRef string
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    CredentialRefSource string
    How requests to the server authenticate: none (the default), secret, or connection.
    Description string
    The description shown on the server's catalog card, at most 1024 characters.
    EnabledTools []string
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    OauthAuthorizationTtlSeconds int
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    OauthAuthorizeUrl string
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    OauthClientId string
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    OauthClientSecret string
    For connection: the client secret of your team's OAuth client. It is write-only.
    OauthScopes []string
    For connection: the scopes to request from each user, 1 to 64 of them.
    OauthTokenUrl string
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    SyncUserId string
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    Transport string
    The MCP transport. Only streamableHttp, the default, is supported.
    endpoint string
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    server_ref string
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    api_key string
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    credential_ref string
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    credential_ref_source string
    How requests to the server authenticate: none (the default), secret, or connection.
    description string
    The description shown on the server's catalog card, at most 1024 characters.
    enabled_tools list(string)
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    oauth_authorization_ttl_seconds number
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    oauth_authorize_url string
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    oauth_client_id string
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    oauth_client_secret string
    For connection: the client secret of your team's OAuth client. It is write-only.
    oauth_scopes list(string)
    For connection: the scopes to request from each user, 1 to 64 of them.
    oauth_token_url string
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    sync_user_id string
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    transport string
    The MCP transport. Only streamableHttp, the default, is supported.
    endpoint String
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    serverRef String
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    apiKey String
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    credentialRef String
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    credentialRefSource String
    How requests to the server authenticate: none (the default), secret, or connection.
    description String
    The description shown on the server's catalog card, at most 1024 characters.
    enabledTools List<String>
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    oauthAuthorizationTtlSeconds Integer
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    oauthAuthorizeUrl String
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    oauthClientId String
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    oauthClientSecret String
    For connection: the client secret of your team's OAuth client. It is write-only.
    oauthScopes List<String>
    For connection: the scopes to request from each user, 1 to 64 of them.
    oauthTokenUrl String
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    syncUserId String
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    transport String
    The MCP transport. Only streamableHttp, the default, is supported.
    endpoint string
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    serverRef string
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    apiKey string
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    credentialRef string
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    credentialRefSource string
    How requests to the server authenticate: none (the default), secret, or connection.
    description string
    The description shown on the server's catalog card, at most 1024 characters.
    enabledTools string[]
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    oauthAuthorizationTtlSeconds number
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    oauthAuthorizeUrl string
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    oauthClientId string
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    oauthClientSecret string
    For connection: the client secret of your team's OAuth client. It is write-only.
    oauthScopes string[]
    For connection: the scopes to request from each user, 1 to 64 of them.
    oauthTokenUrl string
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    syncUserId string
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    transport string
    The MCP transport. Only streamableHttp, the default, is supported.
    endpoint str
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    server_ref str
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    api_key str
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    credential_ref str
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    credential_ref_source str
    How requests to the server authenticate: none (the default), secret, or connection.
    description str
    The description shown on the server's catalog card, at most 1024 characters.
    enabled_tools Sequence[str]
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    oauth_authorization_ttl_seconds int
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    oauth_authorize_url str
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    oauth_client_id str
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    oauth_client_secret str
    For connection: the client secret of your team's OAuth client. It is write-only.
    oauth_scopes Sequence[str]
    For connection: the scopes to request from each user, 1 to 64 of them.
    oauth_token_url str
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    sync_user_id str
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    transport str
    The MCP transport. Only streamableHttp, the default, is supported.
    endpoint String
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    serverRef String
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    apiKey String
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    credentialRef String
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    credentialRefSource String
    How requests to the server authenticate: none (the default), secret, or connection.
    description String
    The description shown on the server's catalog card, at most 1024 characters.
    enabledTools List<String>
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    oauthAuthorizationTtlSeconds Number
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    oauthAuthorizeUrl String
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    oauthClientId String
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    oauthClientSecret String
    For connection: the client secret of your team's OAuth client. It is write-only.
    oauthScopes List<String>
    For connection: the scopes to request from each user, 1 to 64 of them.
    oauthTokenUrl String
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    syncUserId String
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    transport String
    The MCP transport. Only streamableHttp, the default, is supported.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ActionGatewayMcpServer resource produces the following output properties:

    CreatedAt string
    When the server was registered.
    DiscoveredTools List<Pulumi.DigitalOcean.Outputs.ActionGatewayMcpServerDiscoveredTool>
    The tools discovered on the server.
    Id string
    The provider-assigned unique ID for this managed resource.
    LastSyncedAt string
    When the server's tools were last discovered.
    ProtocolVersion string
    The MCP protocol version the server reported.
    SyncError string
    The error from the most recent tool discovery, if any.
    SyncStatus string
    The status of the most recent tool discovery.
    ToolCount int
    The number of tools discovered on the server.
    UpdatedAt string
    When the server was last modified.
    CreatedAt string
    When the server was registered.
    DiscoveredTools []ActionGatewayMcpServerDiscoveredTool
    The tools discovered on the server.
    Id string
    The provider-assigned unique ID for this managed resource.
    LastSyncedAt string
    When the server's tools were last discovered.
    ProtocolVersion string
    The MCP protocol version the server reported.
    SyncError string
    The error from the most recent tool discovery, if any.
    SyncStatus string
    The status of the most recent tool discovery.
    ToolCount int
    The number of tools discovered on the server.
    UpdatedAt string
    When the server was last modified.
    created_at string
    When the server was registered.
    discovered_tools list(object)
    The tools discovered on the server.
    id string
    The provider-assigned unique ID for this managed resource.
    last_synced_at string
    When the server's tools were last discovered.
    protocol_version string
    The MCP protocol version the server reported.
    sync_error string
    The error from the most recent tool discovery, if any.
    sync_status string
    The status of the most recent tool discovery.
    tool_count number
    The number of tools discovered on the server.
    updated_at string
    When the server was last modified.
    createdAt String
    When the server was registered.
    discoveredTools List<ActionGatewayMcpServerDiscoveredTool>
    The tools discovered on the server.
    id String
    The provider-assigned unique ID for this managed resource.
    lastSyncedAt String
    When the server's tools were last discovered.
    protocolVersion String
    The MCP protocol version the server reported.
    syncError String
    The error from the most recent tool discovery, if any.
    syncStatus String
    The status of the most recent tool discovery.
    toolCount Integer
    The number of tools discovered on the server.
    updatedAt String
    When the server was last modified.
    createdAt string
    When the server was registered.
    discoveredTools ActionGatewayMcpServerDiscoveredTool[]
    The tools discovered on the server.
    id string
    The provider-assigned unique ID for this managed resource.
    lastSyncedAt string
    When the server's tools were last discovered.
    protocolVersion string
    The MCP protocol version the server reported.
    syncError string
    The error from the most recent tool discovery, if any.
    syncStatus string
    The status of the most recent tool discovery.
    toolCount number
    The number of tools discovered on the server.
    updatedAt string
    When the server was last modified.
    created_at str
    When the server was registered.
    discovered_tools Sequence[ActionGatewayMcpServerDiscoveredTool]
    The tools discovered on the server.
    id str
    The provider-assigned unique ID for this managed resource.
    last_synced_at str
    When the server's tools were last discovered.
    protocol_version str
    The MCP protocol version the server reported.
    sync_error str
    The error from the most recent tool discovery, if any.
    sync_status str
    The status of the most recent tool discovery.
    tool_count int
    The number of tools discovered on the server.
    updated_at str
    When the server was last modified.
    createdAt String
    When the server was registered.
    discoveredTools List<Property Map>
    The tools discovered on the server.
    id String
    The provider-assigned unique ID for this managed resource.
    lastSyncedAt String
    When the server's tools were last discovered.
    protocolVersion String
    The MCP protocol version the server reported.
    syncError String
    The error from the most recent tool discovery, if any.
    syncStatus String
    The status of the most recent tool discovery.
    toolCount Number
    The number of tools discovered on the server.
    updatedAt String
    When the server was last modified.

    Look up Existing ActionGatewayMcpServer Resource

    Get an existing ActionGatewayMcpServer resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: ActionGatewayMcpServerState, opts?: CustomResourceOptions): ActionGatewayMcpServer
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            api_key: Optional[str] = None,
            created_at: Optional[str] = None,
            credential_ref: Optional[str] = None,
            credential_ref_source: Optional[str] = None,
            description: Optional[str] = None,
            discovered_tools: Optional[Sequence[ActionGatewayMcpServerDiscoveredToolArgs]] = None,
            enabled_tools: Optional[Sequence[str]] = None,
            endpoint: Optional[str] = None,
            last_synced_at: Optional[str] = None,
            oauth_authorization_ttl_seconds: Optional[int] = None,
            oauth_authorize_url: Optional[str] = None,
            oauth_client_id: Optional[str] = None,
            oauth_client_secret: Optional[str] = None,
            oauth_scopes: Optional[Sequence[str]] = None,
            oauth_token_url: Optional[str] = None,
            protocol_version: Optional[str] = None,
            server_ref: Optional[str] = None,
            sync_error: Optional[str] = None,
            sync_status: Optional[str] = None,
            sync_user_id: Optional[str] = None,
            tool_count: Optional[int] = None,
            transport: Optional[str] = None,
            updated_at: Optional[str] = None) -> ActionGatewayMcpServer
    func GetActionGatewayMcpServer(ctx *Context, name string, id IDInput, state *ActionGatewayMcpServerState, opts ...ResourceOption) (*ActionGatewayMcpServer, error)
    public static ActionGatewayMcpServer Get(string name, Input<string> id, ActionGatewayMcpServerState? state, CustomResourceOptions? opts = null)
    public static ActionGatewayMcpServer get(String name, Output<String> id, ActionGatewayMcpServerState state, CustomResourceOptions options)
    resources:  _:    type: digitalocean:ActionGatewayMcpServer    get:      id: ${id}
    import {
      to = digitalocean_action_gateway_mcp_server.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    ApiKey string
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    CreatedAt string
    When the server was registered.
    CredentialRef string
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    CredentialRefSource string
    How requests to the server authenticate: none (the default), secret, or connection.
    Description string
    The description shown on the server's catalog card, at most 1024 characters.
    DiscoveredTools List<Pulumi.DigitalOcean.Inputs.ActionGatewayMcpServerDiscoveredTool>
    The tools discovered on the server.
    EnabledTools List<string>
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    Endpoint string
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    LastSyncedAt string
    When the server's tools were last discovered.
    OauthAuthorizationTtlSeconds int
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    OauthAuthorizeUrl string
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    OauthClientId string
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    OauthClientSecret string
    For connection: the client secret of your team's OAuth client. It is write-only.
    OauthScopes List<string>
    For connection: the scopes to request from each user, 1 to 64 of them.
    OauthTokenUrl string
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    ProtocolVersion string
    The MCP protocol version the server reported.
    ServerRef string
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    SyncError string
    The error from the most recent tool discovery, if any.
    SyncStatus string
    The status of the most recent tool discovery.
    SyncUserId string
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    ToolCount int
    The number of tools discovered on the server.
    Transport string
    The MCP transport. Only streamableHttp, the default, is supported.
    UpdatedAt string
    When the server was last modified.
    ApiKey string
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    CreatedAt string
    When the server was registered.
    CredentialRef string
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    CredentialRefSource string
    How requests to the server authenticate: none (the default), secret, or connection.
    Description string
    The description shown on the server's catalog card, at most 1024 characters.
    DiscoveredTools []ActionGatewayMcpServerDiscoveredToolArgs
    The tools discovered on the server.
    EnabledTools []string
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    Endpoint string
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    LastSyncedAt string
    When the server's tools were last discovered.
    OauthAuthorizationTtlSeconds int
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    OauthAuthorizeUrl string
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    OauthClientId string
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    OauthClientSecret string
    For connection: the client secret of your team's OAuth client. It is write-only.
    OauthScopes []string
    For connection: the scopes to request from each user, 1 to 64 of them.
    OauthTokenUrl string
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    ProtocolVersion string
    The MCP protocol version the server reported.
    ServerRef string
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    SyncError string
    The error from the most recent tool discovery, if any.
    SyncStatus string
    The status of the most recent tool discovery.
    SyncUserId string
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    ToolCount int
    The number of tools discovered on the server.
    Transport string
    The MCP transport. Only streamableHttp, the default, is supported.
    UpdatedAt string
    When the server was last modified.
    api_key string
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    created_at string
    When the server was registered.
    credential_ref string
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    credential_ref_source string
    How requests to the server authenticate: none (the default), secret, or connection.
    description string
    The description shown on the server's catalog card, at most 1024 characters.
    discovered_tools list(object)
    The tools discovered on the server.
    enabled_tools list(string)
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    endpoint string
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    last_synced_at string
    When the server's tools were last discovered.
    oauth_authorization_ttl_seconds number
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    oauth_authorize_url string
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    oauth_client_id string
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    oauth_client_secret string
    For connection: the client secret of your team's OAuth client. It is write-only.
    oauth_scopes list(string)
    For connection: the scopes to request from each user, 1 to 64 of them.
    oauth_token_url string
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    protocol_version string
    The MCP protocol version the server reported.
    server_ref string
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    sync_error string
    The error from the most recent tool discovery, if any.
    sync_status string
    The status of the most recent tool discovery.
    sync_user_id string
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    tool_count number
    The number of tools discovered on the server.
    transport string
    The MCP transport. Only streamableHttp, the default, is supported.
    updated_at string
    When the server was last modified.
    apiKey String
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    createdAt String
    When the server was registered.
    credentialRef String
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    credentialRefSource String
    How requests to the server authenticate: none (the default), secret, or connection.
    description String
    The description shown on the server's catalog card, at most 1024 characters.
    discoveredTools List<ActionGatewayMcpServerDiscoveredTool>
    The tools discovered on the server.
    enabledTools List<String>
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    endpoint String
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    lastSyncedAt String
    When the server's tools were last discovered.
    oauthAuthorizationTtlSeconds Integer
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    oauthAuthorizeUrl String
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    oauthClientId String
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    oauthClientSecret String
    For connection: the client secret of your team's OAuth client. It is write-only.
    oauthScopes List<String>
    For connection: the scopes to request from each user, 1 to 64 of them.
    oauthTokenUrl String
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    protocolVersion String
    The MCP protocol version the server reported.
    serverRef String
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    syncError String
    The error from the most recent tool discovery, if any.
    syncStatus String
    The status of the most recent tool discovery.
    syncUserId String
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    toolCount Integer
    The number of tools discovered on the server.
    transport String
    The MCP transport. Only streamableHttp, the default, is supported.
    updatedAt String
    When the server was last modified.
    apiKey string
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    createdAt string
    When the server was registered.
    credentialRef string
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    credentialRefSource string
    How requests to the server authenticate: none (the default), secret, or connection.
    description string
    The description shown on the server's catalog card, at most 1024 characters.
    discoveredTools ActionGatewayMcpServerDiscoveredTool[]
    The tools discovered on the server.
    enabledTools string[]
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    endpoint string
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    lastSyncedAt string
    When the server's tools were last discovered.
    oauthAuthorizationTtlSeconds number
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    oauthAuthorizeUrl string
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    oauthClientId string
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    oauthClientSecret string
    For connection: the client secret of your team's OAuth client. It is write-only.
    oauthScopes string[]
    For connection: the scopes to request from each user, 1 to 64 of them.
    oauthTokenUrl string
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    protocolVersion string
    The MCP protocol version the server reported.
    serverRef string
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    syncError string
    The error from the most recent tool discovery, if any.
    syncStatus string
    The status of the most recent tool discovery.
    syncUserId string
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    toolCount number
    The number of tools discovered on the server.
    transport string
    The MCP transport. Only streamableHttp, the default, is supported.
    updatedAt string
    When the server was last modified.
    api_key str
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    created_at str
    When the server was registered.
    credential_ref str
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    credential_ref_source str
    How requests to the server authenticate: none (the default), secret, or connection.
    description str
    The description shown on the server's catalog card, at most 1024 characters.
    discovered_tools Sequence[ActionGatewayMcpServerDiscoveredToolArgs]
    The tools discovered on the server.
    enabled_tools Sequence[str]
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    endpoint str
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    last_synced_at str
    When the server's tools were last discovered.
    oauth_authorization_ttl_seconds int
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    oauth_authorize_url str
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    oauth_client_id str
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    oauth_client_secret str
    For connection: the client secret of your team's OAuth client. It is write-only.
    oauth_scopes Sequence[str]
    For connection: the scopes to request from each user, 1 to 64 of them.
    oauth_token_url str
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    protocol_version str
    The MCP protocol version the server reported.
    server_ref str
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    sync_error str
    The error from the most recent tool discovery, if any.
    sync_status str
    The status of the most recent tool discovery.
    sync_user_id str
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    tool_count int
    The number of tools discovered on the server.
    transport str
    The MCP transport. Only streamableHttp, the default, is supported.
    updated_at str
    When the server was last modified.
    apiKey String
    For secret: the key or token itself, sent in the Authorization header. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts with credentialRef.
    createdAt String
    When the server was registered.
    credentialRef String
    For secret: a reference to a secret your team stores with DigitalOcean. Conflicts with apiKey.
    credentialRefSource String
    How requests to the server authenticate: none (the default), secret, or connection.
    description String
    The description shown on the server's catalog card, at most 1024 characters.
    discoveredTools List<Property Map>
    The tools discovered on the server.
    enabledTools List<String>
    The slugs of the discovered tools to enable, such as docsSearch. Every other tool of the server is disabled. When omitted, Terraform does not manage which tools are enabled. Changing this discovers the server's tools again before enabling them.
    endpoint String
    The HTTPS URL of the server's MCP endpoint. Its host must resolve only to public IP addresses.
    lastSyncedAt String
    When the server's tools were last discovered.
    oauthAuthorizationTtlSeconds Number
    How long, in seconds, a user's authorization may be reused before they must consent again. 0 means 30 days.
    oauthAuthorizeUrl String
    For connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain.
    oauthClientId String
    For connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually.
    oauthClientSecret String
    For connection: the client secret of your team's OAuth client. It is write-only.
    oauthScopes List<String>
    For connection: the scopes to request from each user, 1 to 64 of them.
    oauthTokenUrl String
    For connection: the OAuth token endpoint, under the same rules as oauthAuthorizeUrl.
    protocolVersion String
    The MCP protocol version the server reported.
    serverRef String
    The identifier for the server, unique within your team. It must start with a lowercase letter and contain at most 64 characters from [a-z0-9-].
    syncError String
    The error from the most recent tool discovery, if any.
    syncStatus String
    The status of the most recent tool discovery.
    syncUserId String
    For connection: the actor ID of a user who has authorized the server. The tools of such a server are discovered and verified as this user, so enabledTools requires it. Adding or changing it discovers the server's tools again.
    toolCount Number
    The number of tools discovered on the server.
    transport String
    The MCP transport. Only streamableHttp, the default, is supported.
    updatedAt String
    When the server was last modified.

    Supporting Types

    ActionGatewayMcpServerDiscoveredTool, ActionGatewayMcpServerDiscoveredToolArgs

    Description string
    The description shown on the server's catalog card, at most 1024 characters.
    Enabled bool
    Whether the tool is enabled.
    Name string
    The tool's name on the server.
    QuarantineReason string
    Why the tool is quarantined.
    Quarantined bool
    Whether the tool is quarantined.
    ToolSlug string
    The tool's catalog slug, used in enabledTools.
    Description string
    The description shown on the server's catalog card, at most 1024 characters.
    Enabled bool
    Whether the tool is enabled.
    Name string
    The tool's name on the server.
    QuarantineReason string
    Why the tool is quarantined.
    Quarantined bool
    Whether the tool is quarantined.
    ToolSlug string
    The tool's catalog slug, used in enabledTools.
    description string
    The description shown on the server's catalog card, at most 1024 characters.
    enabled bool
    Whether the tool is enabled.
    name string
    The tool's name on the server.
    quarantine_reason string
    Why the tool is quarantined.
    quarantined bool
    Whether the tool is quarantined.
    tool_slug string
    The tool's catalog slug, used in enabledTools.
    description String
    The description shown on the server's catalog card, at most 1024 characters.
    enabled Boolean
    Whether the tool is enabled.
    name String
    The tool's name on the server.
    quarantineReason String
    Why the tool is quarantined.
    quarantined Boolean
    Whether the tool is quarantined.
    toolSlug String
    The tool's catalog slug, used in enabledTools.
    description string
    The description shown on the server's catalog card, at most 1024 characters.
    enabled boolean
    Whether the tool is enabled.
    name string
    The tool's name on the server.
    quarantineReason string
    Why the tool is quarantined.
    quarantined boolean
    Whether the tool is quarantined.
    toolSlug string
    The tool's catalog slug, used in enabledTools.
    description str
    The description shown on the server's catalog card, at most 1024 characters.
    enabled bool
    Whether the tool is enabled.
    name str
    The tool's name on the server.
    quarantine_reason str
    Why the tool is quarantined.
    quarantined bool
    Whether the tool is quarantined.
    tool_slug str
    The tool's catalog slug, used in enabledTools.
    description String
    The description shown on the server's catalog card, at most 1024 characters.
    enabled Boolean
    Whether the tool is enabled.
    name String
    The tool's name on the server.
    quarantineReason String
    Why the tool is quarantined.
    quarantined Boolean
    Whether the tool is quarantined.
    toolSlug String
    The tool's catalog slug, used in enabledTools.

    Import

    An MCP server can be imported using its serverRef, e.g.

    $ pulumi import digitalocean:index/actionGatewayMcpServer:ActionGatewayMcpServer docs docs
    

    The write-only arguments apiKey, oauthClientId, oauthClientSecret, and oauthTokenUrl are not imported. Changing any of them registers the server again, so after an import the next plan would replace a server whose configuration sets them. To keep the imported server, ignore the ones your configuration sets:

    import * as pulumi from "@pulumi/pulumi";
    import * as digitalocean from "@pulumi/digitalocean";
    
    const docs = new digitalocean.ActionGatewayMcpServer("docs", {});
    
    import pulumi
    import pulumi_digitalocean as digitalocean
    
    docs = digitalocean.ActionGatewayMcpServer("docs")
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using DigitalOcean = Pulumi.DigitalOcean;
    
    return await Deployment.RunAsync(() => 
    {
        var docs = new DigitalOcean.ActionGatewayMcpServer("docs");
    
    });
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := digitalocean.NewActionGatewayMcpServer(ctx, "docs", nil)
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    terraform {
      required_providers {
        digitalocean = {
          source = "pulumi/digitalocean"
        }
      }
    }
    
    resource "digitalocean_action_gateway_mcp_server" "docs" {
      lifecycle {
        create_before_destroy = true
      }
    }
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.digitalocean.ActionGatewayMcpServer;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var docs = new ActionGatewayMcpServer("docs");
    
        }
    }
    
    resources:
      docs:
        type: digitalocean:ActionGatewayMcpServer
    

    For a server with credentialRefSource = "connection", ignore oauthClientId, oauthClientSecret, and oauthTokenUrl instead. Terraform then ignores changes to those arguments until you remove them from ignoreChanges, which registers the server again with the configured values.

    syncUserId is not imported either. The first apply after an import sets it and discovers the server’s tools again.

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    DigitalOcean pulumi/pulumi-digitalocean
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the digitalocean Terraform Provider.
    digitalocean logo
    Viewing docs for DigitalOcean v4.85.0
    published on Saturday, Nov 7, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial