published on Saturday, Nov 7, 2026 by Pulumi
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.
- 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 theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - Credential
Ref string - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - Credential
Ref stringSource - How requests to the server authenticate:
none(the default),secret, orconnection. - 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. - int
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - string
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - Oauth
Client stringId - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - Oauth
Client stringSecret - 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 stringUrl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - Sync
User stringId - 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, soenabledToolsrequires 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 theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - Credential
Ref string - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - Credential
Ref stringSource - How requests to the server authenticate:
none(the default),secret, orconnection. - Description string
- The description shown on the server's catalog card, at most 1024 characters.
- Enabled
Tools []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. - int
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - string
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - Oauth
Client stringId - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - Oauth
Client stringSecret - For
connection: the client secret of your team's OAuth client. It is write-only. - Oauth
Scopes []string - For
connection: the scopes to request from each user, 1 to 64 of them. - Oauth
Token stringUrl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - Sync
User stringId - 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, soenabledToolsrequires 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 theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - credential_
ref string - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - credential_
ref_ stringsource - How requests to the server authenticate:
none(the default),secret, orconnection. - 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. - number
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - string
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - oauth_
client_ stringid - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - oauth_
client_ stringsecret - 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_ stringurl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - sync_
user_ stringid - 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, soenabledToolsrequires 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 theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - credential
Ref String - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - credential
Ref StringSource - How requests to the server authenticate:
none(the default),secret, orconnection. - 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. - Integer
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - String
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - oauth
Client StringId - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - oauth
Client StringSecret - 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 StringUrl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - sync
User StringId - 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, soenabledToolsrequires 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 theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - credential
Ref string - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - credential
Ref stringSource - How requests to the server authenticate:
none(the default),secret, orconnection. - description string
- The description shown on the server's catalog card, at most 1024 characters.
- enabled
Tools 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. - number
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - string
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - oauth
Client stringId - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - oauth
Client stringSecret - For
connection: the client secret of your team's OAuth client. It is write-only. - oauth
Scopes string[] - For
connection: the scopes to request from each user, 1 to 64 of them. - oauth
Token stringUrl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - sync
User stringId - 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, soenabledToolsrequires 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 theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - credential_
ref str - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - credential_
ref_ strsource - How requests to the server authenticate:
none(the default),secret, orconnection. - 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. - int
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - str
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - oauth_
client_ strid - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - oauth_
client_ strsecret - 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_ strurl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - sync_
user_ strid - 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, soenabledToolsrequires 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.
- 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 theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - credential
Ref String - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - credential
Ref StringSource - How requests to the server authenticate:
none(the default),secret, orconnection. - 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. - Number
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - String
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - oauth
Client StringId - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - oauth
Client StringSecret - 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 StringUrl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - sync
User StringId - 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, soenabledToolsrequires 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:
- Created
At string - When the server was registered.
- Discovered
Tools List<Pulumi.Digital Ocean. Outputs. Action Gateway Mcp Server Discovered Tool> - The tools discovered on the server.
- Id string
- The provider-assigned unique ID for this managed resource.
- Last
Synced stringAt - 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 int - The number of tools discovered on the server.
- Updated
At string - When the server was last modified.
- Created
At string - When the server was registered.
- Discovered
Tools []ActionGateway Mcp Server Discovered Tool - The tools discovered on the server.
- Id string
- The provider-assigned unique ID for this managed resource.
- Last
Synced stringAt - 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 int - The number of tools discovered on the server.
- Updated
At 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_ stringat - 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.
- created
At String - When the server was registered.
- discovered
Tools List<ActionGateway Mcp Server Discovered Tool> - The tools discovered on the server.
- id String
- The provider-assigned unique ID for this managed resource.
- last
Synced StringAt - 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 Integer - The number of tools discovered on the server.
- updated
At String - When the server was last modified.
- created
At string - When the server was registered.
- discovered
Tools ActionGateway Mcp Server Discovered Tool[] - The tools discovered on the server.
- id string
- The provider-assigned unique ID for this managed resource.
- last
Synced stringAt - 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.
- created_
at str - When the server was registered.
- discovered_
tools Sequence[ActionGateway Mcp Server Discovered Tool] - The tools discovered on the server.
- id str
- The provider-assigned unique ID for this managed resource.
- last_
synced_ strat - 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.
- created
At String - When the server was registered.
- discovered
Tools List<Property Map> - The tools discovered on the server.
- id String
- The provider-assigned unique ID for this managed resource.
- last
Synced StringAt - 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.
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) -> ActionGatewayMcpServerfunc 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.
- Api
Key string - For
secret: the key or token itself, sent in theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - Created
At string - When the server was registered.
- Credential
Ref string - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - Credential
Ref stringSource - How requests to the server authenticate:
none(the default),secret, orconnection. - Description string
- The description shown on the server's catalog card, at most 1024 characters.
- Discovered
Tools List<Pulumi.Digital Ocean. Inputs. Action Gateway Mcp Server Discovered Tool> - 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 stringAt - When the server's tools were last discovered.
- int
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - string
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - Oauth
Client stringId - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - Oauth
Client stringSecret - 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 stringUrl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - 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 stringId - 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, soenabledToolsrequires it. Adding or changing it discovers the server's tools again. - Tool
Count int - 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.
- Api
Key string - For
secret: the key or token itself, sent in theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - Created
At string - When the server was registered.
- Credential
Ref string - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - Credential
Ref stringSource - How requests to the server authenticate:
none(the default),secret, orconnection. - Description string
- The description shown on the server's catalog card, at most 1024 characters.
- Discovered
Tools []ActionGateway Mcp Server Discovered Tool Args - The tools discovered on the server.
- Enabled
Tools []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 stringAt - When the server's tools were last discovered.
- int
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - string
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - Oauth
Client stringId - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - Oauth
Client stringSecret - For
connection: the client secret of your team's OAuth client. It is write-only. - Oauth
Scopes []string - For
connection: the scopes to request from each user, 1 to 64 of them. - Oauth
Token stringUrl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - 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 stringId - 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, soenabledToolsrequires it. Adding or changing it discovers the server's tools again. - Tool
Count int - 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.
- api_
key string - For
secret: the key or token itself, sent in theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - created_
at string - When the server was registered.
- credential_
ref string - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - credential_
ref_ stringsource - How requests to the server authenticate:
none(the default),secret, orconnection. - 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_ stringat - When the server's tools were last discovered.
- number
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - string
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - oauth_
client_ stringid - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - oauth_
client_ stringsecret - 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_ stringurl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - 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_ stringid - 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, soenabledToolsrequires 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.
- api
Key String - For
secret: the key or token itself, sent in theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - created
At String - When the server was registered.
- credential
Ref String - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - credential
Ref StringSource - How requests to the server authenticate:
none(the default),secret, orconnection. - description String
- The description shown on the server's catalog card, at most 1024 characters.
- discovered
Tools List<ActionGateway Mcp Server Discovered Tool> - 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 StringAt - When the server's tools were last discovered.
- Integer
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - String
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - oauth
Client StringId - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - oauth
Client StringSecret - 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 StringUrl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - 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 StringId - 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, soenabledToolsrequires it. Adding or changing it discovers the server's tools again. - tool
Count Integer - 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.
- api
Key string - For
secret: the key or token itself, sent in theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - created
At string - When the server was registered.
- credential
Ref string - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - credential
Ref stringSource - How requests to the server authenticate:
none(the default),secret, orconnection. - description string
- The description shown on the server's catalog card, at most 1024 characters.
- discovered
Tools ActionGateway Mcp Server Discovered Tool[] - The tools discovered on the server.
- enabled
Tools 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 stringAt - When the server's tools were last discovered.
- number
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - string
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - oauth
Client stringId - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - oauth
Client stringSecret - For
connection: the client secret of your team's OAuth client. It is write-only. - oauth
Scopes string[] - For
connection: the scopes to request from each user, 1 to 64 of them. - oauth
Token stringUrl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - 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 stringId - 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, soenabledToolsrequires 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.
- api_
key str - For
secret: the key or token itself, sent in theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - created_
at str - When the server was registered.
- credential_
ref str - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - credential_
ref_ strsource - How requests to the server authenticate:
none(the default),secret, orconnection. - description str
- The description shown on the server's catalog card, at most 1024 characters.
- discovered_
tools Sequence[ActionGateway Mcp Server Discovered Tool Args] - 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_ strat - When the server's tools were last discovered.
- int
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - str
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - oauth_
client_ strid - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - oauth_
client_ strsecret - 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_ strurl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - 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_ strid - 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, soenabledToolsrequires 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.
- api
Key String - For
secret: the key or token itself, sent in theAuthorizationheader. It is write-only, so Terraform cannot detect changes made outside of Terraform. Conflicts withcredentialRef. - created
At String - When the server was registered.
- credential
Ref String - For
secret: a reference to a secret your team stores with DigitalOcean. Conflicts withapiKey. - credential
Ref StringSource - How requests to the server authenticate:
none(the default),secret, orconnection. - description String
- The description shown on the server's catalog card, at most 1024 characters.
- discovered
Tools List<Property Map> - 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 StringAt - When the server's tools were last discovered.
- Number
- How long, in seconds, a user's authorization may be reused before they must consent again.
0means 30 days. - String
- For
connection: the OAuth authorization endpoint, on the endpoint's host or another host under the same registrable domain. - oauth
Client StringId - For
connection: the client ID of your team's OAuth client for the server. Each user of the server then authorizes individually. - oauth
Client StringSecret - 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 StringUrl - For
connection: the OAuth token endpoint, under the same rules asoauthAuthorizeUrl. - 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 StringId - 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, soenabledToolsrequires 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.
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.
- 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 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 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.
- quarantine
Reason String - Why the tool is quarantined.
- quarantined Boolean
- 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.
- quarantine
Reason string - Why the tool is quarantined.
- quarantined boolean
- Whether the tool is quarantined.
- tool
Slug 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.
- quarantine
Reason String - Why the tool is quarantined.
- quarantined Boolean
- Whether the tool is quarantined.
- tool
Slug 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
digitaloceanTerraform Provider.
published on Saturday, Nov 7, 2026 by Pulumi