Complete reference of every operation, grouped by resource. See the README for usage and configuration.
RegistrySchemasLoginPortalsAccessGroupsRulesThemesTeamsScalarDocsNamespacesAuthenticationSdksMcp
require "scalar_api_ruby"
client = Scalar::Client.new(
bearer_auth: ENV["BEARER_AUTH"], # defaults to the BEARER_AUTH env var
)Registry
List all API documents across every namespace the caller can access.
| Direction | Type |
|---|---|
| Request | RegistryListAllAPIDocumentsParams |
| Response | APIDocument |
response = client.registry.list_all_api_documents
puts response.inspectList API documents in a namespace.
| Direction | Type |
|---|---|
| Request | RegistryListAPIDocumentsParams |
| Response | APIDocument |
response = client.registry.list_api_documents("acme")
puts response.inspectCreate an API document.
| Direction | Type |
|---|---|
| Request | RegistryCreateAPIDocumentParams |
| Response | RegistryCreateAPIDocumentResponse |
response = client.registry.create_api_document("acme", { document: "{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Acme API\",\"version\":\"1.2.0\"},\"paths\":{}}", slug: "acme-api", title: "Acme API", version: "1.2.0", description: "API for managing Acme products and orders.", is_private: false, ruleset: "extends: [\"spectral:oas\"]" })
puts response.inspectUpdate metadata for an API document.
| Direction | Type |
|---|---|
| Request | RegistryUpdateAPIDocumentParams |
response = client.registry.update_api_document("acme-api", { namespace: "acme", description: "API for managing Acme products and orders.", is_private: false, ruleset: "extends: [\"spectral:oas\"]", title: "Acme API" })
puts response.inspectDelete an API document and all versions.
| Direction | Type |
|---|---|
| Request | RegistryDeleteAPIDocumentParams |
response = client.registry.delete_api_document("acme-api", { namespace: "acme" })
puts response.inspectGet a specific API document version.
| Direction | Type |
|---|---|
| Request | RegistryRetrieveAPIDocumentVersionParams |
response = client.registry.retrieve_api_document_version("1.2.0", { namespace: "acme", slug: "acme-api" })
puts response.inspectUpdate the registry file content for an API document version.
| Direction | Type |
|---|---|
| Request | RegistryUpdateAPIDocumentVersionParams |
| Response | RegistryUpdateAPIDocumentVersionResponse |
response = client.registry.update_api_document_version("1.2.0", { namespace: "acme", slug: "acme-api", document: "{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Acme API\",\"version\":\"1.2.0\"},\"paths\":{}}" })
puts response.inspectDelete a specific API document version.
| Direction | Type |
|---|---|
| Request | RegistryDeleteAPIDocumentVersionParams |
response = client.registry.delete_api_document_version("1.2.0", { namespace: "acme", slug: "acme-api" })
puts response.inspectGet metadata (uid, content shas, version sha, tags) for a specific API document version.
| Direction | Type |
|---|---|
| Request | RegistryListAPIDocumentVersionMetadataParams |
| Response | ManagedDocVersion |
response = client.registry.list_api_document_version_metadata("1.2.0", { namespace: "acme", slug: "acme-api" })
puts response.inspectCreate a new API document version.
| Direction | Type |
|---|---|
| Request | RegistryCreateAPIDocumentVersionParams |
| Response | ManagedDocVersion |
response = client.registry.create_api_document_version("acme-api", { namespace: "acme", document: "{\"openapi\":\"3.1.0\",\"info\":{\"title\":\"Acme API\",\"version\":\"1.2.0\"},\"paths\":{}}", version: "1.2.0", force: false })
puts response.inspectAdd an access group to an API document.
| Direction | Type |
|---|---|
| Request | RegistryCreateAPIDocumentAccessGroupParams |
response = client.registry.create_api_document_access_group("acme-api", { access_group_slug: "acme-api", namespace: "acme" })
puts response.inspectRemove an access group from an API document.
| Direction | Type |
|---|---|
| Request | RegistryDeleteAPIDocumentAccessGroupParams |
response = client.registry.delete_api_document_access_group("acme-api", { access_group_slug: "acme-api", namespace: "acme" })
puts response.inspectSchemas
List schemas in a namespace.
| Direction | Type |
|---|---|
| Request | SchemaListParams |
| Response | Schema |
response = client.schemas.list("acme")
puts response.inspectCreate a schema in a namespace.
| Direction | Type |
|---|---|
| Request | SchemaCreateParams |
| Response | UID |
response = client.schemas.create("acme", { document: "{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\",\"examples\":[\"Acme\"]}}}", slug: "customer", title: "Customer", version: "1.2.0", description: "API for managing Acme products and orders.", is_private: false })
puts response.inspectUpdate schema metadata.
| Direction | Type |
|---|---|
| Request | SchemaUpdateParams |
response = client.schemas.update("customer", { namespace: "acme", description: "API for managing Acme products and orders.", is_private: false, title: "Customer" })
puts response.inspectDelete a schema and all related versions.
| Direction | Type |
|---|---|
| Request | SchemaDeleteParams |
response = client.schemas.delete("customer", { namespace: "acme" })
puts response.inspectSchemas
Get a specific schema version document.
| Direction | Type |
|---|---|
| Request | VersionRetrieveParams |
response = client.schemas.version.retrieve("1.2.0", { namespace: "acme", slug: "customer" })
puts response.inspectDelete a schema version.
| Direction | Type |
|---|---|
| Request | VersionDeleteParams |
response = client.schemas.version.delete("1.2.0", { namespace: "acme", slug: "customer" })
puts response.inspectCreate a schema version.
| Direction | Type |
|---|---|
| Request | VersionCreateParams |
| Response | Schemas::VersionCreateResponse |
response = client.schemas.version.create("customer", { namespace: "acme", document: "{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\",\"examples\":[\"Acme\"]}}}", version: "1.2.0", force: false })
puts response.inspectSchemas
Add an access group to a schema.
| Direction | Type |
|---|---|
| Request | AccessGroupCreateParams |
response = client.schemas.access_group.create("customer", { access_group_slug: "acme-api", namespace: "acme" })
puts response.inspectRemove an access group from a schema.
| Direction | Type |
|---|---|
| Request | AccessGroupDeleteParams |
response = client.schemas.access_group.delete("customer", { access_group_slug: "acme-api", namespace: "acme" })
puts response.inspectLogin Portals
Get a login portal by slug.
| Direction | Type |
|---|---|
| Request | LoginPortalRetrieveParams |
| Response | LoginPortalRetrieveResponse |
response = client.login_portals.retrieve("acme-login")
puts response.inspectUpdate metadata for a login portal.
| Direction | Type |
|---|---|
| Request | LoginPortalUpdateParams |
response = client.login_portals.update("acme-login", { title: "Acme Private Documentation" })
puts response.inspectDelete a login portal.
| Direction | Type |
|---|---|
| Request | LoginPortalDeleteParams |
response = client.login_portals.delete("acme-login")
puts response.inspectCreate a login portal for the current team.
| Direction | Type |
|---|---|
| Request | LoginPortalCreateParams |
| Response | UID |
response = client.login_portals.create({ email: { "logo" => "", "logoSize" => "100", "buttonText" => "Login", "message" => "Click to access private documentation hosted by scalar.com", "title" => "Private Docs", "mainColor" => "\#2a2f45", "mainBackground" => "\#f6f6f6", "cardColor" => "\#2a2f45", "cardBackground" => "\#fff", "buttonColor" => "\#fff", "buttonBackground" => "\#0f0f0f" }, page: { "title" => "Scalar Private Docs", "description" => "Login to access your documentation", "head" => "", "script" => "", "theme" => "", "companyName" => "", "logo" => "", "logoURL" => "", "favicon" => "", "termsLink" => "", "privacyLink" => "", "formTitle" => "Scalar Private Docs", "formDescription" => "Login to access your documentation", "formImage" => "" }, slug: "acme-login", title: "Acme Private Documentation" })
puts response.inspectList all login portals for the current team.
| Direction | Type |
|---|---|
| Request | LoginPortalListParams |
| Response | LoginPortal |
response = client.login_portals.list
puts response.inspectAccess Groups
Create a group for the current team. Requires docs edit permission and the access groups billing feature. Domains are exact email domains, without wildcards or implicit subdomain matching.
| Direction | Type |
|---|---|
| Request | AccessGroupCreateParams |
| Response | AccessGroupCreateResponse |
response = client.access_groups.create({ allowed_domains: "example.com", name: "Engineering", slug: "acme-api" })
puts response.inspectGet a group and its email and domain allowlists by slug.
| Direction | Type |
|---|---|
| Request | AccessGroupRetrieveParams |
| Response | AccessGroupRetrieveResponse |
response = client.access_groups.retrieve("acme-api")
puts response.inspectUpdate group metadata. Requires docs edit permission. After changing the slug, use the new slug in subsequent requests.
| Direction | Type |
|---|---|
| Request | AccessGroupUpdateParams |
response = client.access_groups.update("acme-api", { name: "Engineering", body_slug: "acme-api" })
puts response.inspectDelete a group and remove its project assignments. Requires docs edit permission.
| Direction | Type |
|---|---|
| Request | AccessGroupDeleteParams |
response = client.access_groups.delete("acme-api")
puts response.inspectAccess Groups
Allow an exact email domain in a group. Requires docs edit permission. A group supports up to 1000 domains.
| Direction | Type |
|---|---|
| Request | DomainCreateParams |
response = client.access_groups.domains.create("acme-api", { domain: "example.com" })
puts response.inspectRemove an exact email domain from a group. Requires docs edit permission. Other allowed domains and emails are preserved.
| Direction | Type |
|---|---|
| Request | DomainDeleteParams |
response = client.access_groups.domains.delete("acme-api", { domain: "example.com" })
puts response.inspectRules
List all rulesets in a namespace.
| Direction | Type |
|---|---|
| Request | RuleListRulesetsParams |
| Response | Rule |
response = client.rules.list_rulesets("acme")
puts response.inspectCreate a rule in a namespace.
| Direction | Type |
|---|---|
| Request | RuleCreateRulesetParams |
| Response | UID |
response = client.rules.create_ruleset("acme", { document: "extends: [\"spectral:oas\"]\nrules:\n info-contact: warn\n", slug: "acme-rules", title: "Acme API Rules", description: "API for managing Acme products and orders.", is_private: false })
puts response.inspectUpdate rule metadata by slug.
| Direction | Type |
|---|---|
| Request | RuleUpdateRulesetParams |
response = client.rules.update_ruleset("acme-rules", { path_namespace: "acme", description: "API for managing Acme products and orders.", is_private: false, body_namespace: "acme", body_slug: "acme-rules", title: "Acme API Rules" })
puts response.inspectDelete a rule by slug.
| Direction | Type |
|---|---|
| Request | RuleDeleteRulesetParams |
response = client.rules.delete_ruleset("acme-rules", { namespace: "acme" })
puts response.inspectGet a rule document by slug.
| Direction | Type |
|---|---|
| Request | RuleRetrieveRulesetDocumentParams |
response = client.rules.retrieve_ruleset_document("acme-rules", { namespace: "acme" })
puts response.inspectGrant an access group to a rule.
| Direction | Type |
|---|---|
| Request | RuleCreateRulesetAccessGroupParams |
response = client.rules.create_ruleset_access_group("acme-rules", { access_group_slug: "acme-api", namespace: "acme" })
puts response.inspectRemove an access group from a rule.
| Direction | Type |
|---|---|
| Request | RuleDeleteRulesetAccessGroupParams |
response = client.rules.delete_ruleset_access_group("acme-rules", { access_group_slug: "acme-api", namespace: "acme" })
puts response.inspectThemes
List all team themes.
| Direction | Type |
|---|---|
| Request | ThemeListParams |
| Response | Theme |
response = client.themes.list
puts response.inspectCreate a team theme.
| Direction | Type |
|---|---|
| Request | ThemeCreateParams |
| Response | UID |
response = client.themes.create({ document: ":root { --scalar-color-1: \#1f2937; }", name: "Acme Theme", slug: "acme-theme", description: "API for managing Acme products and orders." })
puts response.inspectUpdate theme metadata.
| Direction | Type |
|---|---|
| Request | ThemeUpdateParams |
response = client.themes.update("acme-theme", { description: "API for managing Acme products and orders.", name: "Acme Theme" })
puts response.inspectReplace the theme document.
| Direction | Type |
|---|---|
| Request | ThemeReplaceDocumentParams |
response = client.themes.replace_document("acme-theme", { document: ":root { --scalar-color-1: \#1f2937; }" })
puts response.inspectDelete a theme by slug.
| Direction | Type |
|---|---|
| Request | ThemeDeleteParams |
response = client.themes.delete("acme-theme")
puts response.inspectGet the theme document by slug.
| Direction | Type |
|---|---|
| Request | ThemeRetrieveParams |
response = client.themes.retrieve("acme-theme")
puts response.inspectTeams
List all available teams
| Direction | Type |
|---|---|
| Request | TeamListParams |
| Response | Team |
response = client.teams.list
puts response.inspectTeams
List the members of the current team, along with the invites still outstanding.
| Direction | Type |
|---|---|
| Request | MemberListParams |
| Response | Teams::MemberListResponse |
response = client.teams.members.list
puts response.inspectChange what a member of the current team is allowed to do.
| Direction | Type |
|---|---|
| Request | MemberUpdateParams |
response = client.teams.members.update("UakgbKJ5m9gl0JDMbcJqL", { role: "owner" })
puts response.inspectRemove someone from the current team.
| Direction | Type |
|---|---|
| Request | MemberDeleteParams |
response = client.teams.members.delete("UakgbKJ5m9gl0JDMbcJqL")
puts response.inspectTeams
Invite someone to the current team by email.
| Direction | Type |
|---|---|
| Request | InviteMemberParams |
response = client.teams.invites.member({ email: "alex@example.com", role: "owner" })
puts response.inspectSend the invite email again.
| Direction | Type |
|---|---|
| Request | InviteResendParams |
response = client.teams.invites.resend("UakgbKJ5m9gl0JDMbcJqL")
puts response.inspectWithdraw an invite that has not been accepted.
| Direction | Type |
|---|---|
| Request | InviteCancelParams |
response = client.teams.invites.cancel("UakgbKJ5m9gl0JDMbcJqL")
puts response.inspectScalar Docs
List all guide projects.
| Direction | Type |
|---|---|
| Request | ScalarDocListGuidesParams |
| Response | GithubProject |
response = client.scalar_docs.list_guides
puts response.inspectCreate a guide project.
| Direction | Type |
|---|---|
| Request | ScalarDocCreateGuideParams |
| Response | ScalarDocCreateGuideResponse |
response = client.scalar_docs.create_guide({ allowed_domains: [], allowed_users: [], is_private: false, name: "Acme Documentation", slug: "acme-api" })
puts response.inspectStart a new publish process.
| Direction | Type |
|---|---|
| Request | ScalarDocPublishGuideParams |
| Response | ScalarDocPublishGuideResponse |
response = client.scalar_docs.publish_guide("acme-docs")
puts response.inspectList every docs project on the team.
| Direction | Type |
|---|---|
| Request | ScalarDocListProjectsParams |
| Response | ScalarDocListProjectsResponse |
response = client.scalar_docs.list_projects
puts response.inspectCreate a docs project. Omit provider to have Scalar host the repository.
| Direction | Type |
|---|---|
| Request | ScalarDocCreateProjectParams |
| Response | DocsProject |
response = client.scalar_docs.create_project({ name: "Acme Documentation", provider: "forgejo", bitbucket_repository: { "workspaceUuid" => "{12345678-1234-4234-8234-123456789abc}", "repoUuid" => "{abcdef01-1234-4234-8234-123456789abc}" }, blank: true, github_repository: { "installationId" => 84, "repoId" => 123456789 }, is_private: false, slug: "acme-api" })
puts response.inspectGet a single docs project by its slug.
| Direction | Type |
|---|---|
| Request | ScalarDocRetrieveProjectParams |
| Response | DocsProject |
response = client.scalar_docs.retrieve_project("acme-docs")
puts response.inspectUpdate project settings. Set isPrivate with accessGroups to put the site behind a login.
| Direction | Type |
|---|---|
| Request | ScalarDocUpdateProjectParams |
response = client.scalar_docs.update_project("acme-docs", { access_groups: ["xxxxx"], active_theme_id: "UakgbKJ5m9gl0JDMbcJqL", agent_enabled: true, analytics_enabled: true, is_private: false, login_portal_uid: "xxxxx", name: "Acme Documentation" })
puts response.inspectDelete a docs project, its deploys, its publish records and its cached builds.
| Direction | Type |
|---|---|
| Request | ScalarDocDeleteProjectParams |
response = client.scalar_docs.delete_project("acme-docs")
puts response.inspectStart a build and deploy. The returned publishUid identifies the publish record.
| Direction | Type |
|---|---|
| Request | ScalarDocPublishProjectParams |
| Response | ScalarDocPublishProjectResponse |
response = client.scalar_docs.publish_project("acme-docs", { commit_sha: "0123456789abcdef0123456789abcdef01234567", config_path: "scalar.config.json", preview: false })
puts response.inspectRead scalar.config.json straight from the project repository, without cloning it. baseToken is the compare-and-swap handle for a later write.
| Direction | Type |
|---|---|
| Request | ScalarDocListProjectConfigParams |
| Response | ScalarDocListProjectConfigResponse |
response = client.scalar_docs.list_project_config("acme-docs")
puts response.inspectCommit scalar.config.json straight to the project repository. Pass the baseToken from the read this edit was based on; a conflict means the file moved underneath it.
| Direction | Type |
|---|---|
| Request | ScalarDocUpdateProjectConfigParams |
| Response | ScalarDocUpdateProjectConfigResponse |
response = client.scalar_docs.update_project_config("acme-docs", { content: "{\"name\":\"Acme Documentation\"}", base_token: "example-edit-token", message: "Update documentation configuration", path: "scalar.config.json", ref: "main" })
puts response.inspectThe domains the project serves on — the Scalar-hosted one and the custom one, when set.
| Direction | Type |
|---|---|
| Request | ScalarDocListProjectDomainParams |
| Response | ScalarDocListProjectDomainResponse |
response = client.scalar_docs.list_project_domain("acme-docs")
puts response.inspectWhether the project custom domain points at Scalar yet. expected is the CNAME record to create; found is what resolves today. A project with no custom domain reports verified with no expected record, because Scalar serves its own subdomain directly.
| Direction | Type |
|---|---|
| Request | ScalarDocListProjectDomainStatusParams |
| Response | ScalarDocListProjectDomainStatusResponse |
response = client.scalar_docs.list_project_domain_status("acme-docs")
puts response.inspectNamespaces
Get all namespaces for the current team
| Direction | Type |
|---|---|
| Request | NamespaceListParams |
response = client.namespaces.list
puts response.inspectAuthentication
Exchange an API key for an access token.
| Direction | Type |
|---|---|
| Request | AuthenticationExchangePersonalTokenParams |
| Response | AuthenticationExchangePersonalTokenResponse |
response = client.authentication.exchange_personal_token({ personal_token: "scalar_example_personal_token" })
puts response.inspectGet the authenticated user, including their available teams and theme.
| Direction | Type |
|---|---|
| Request | AuthenticationListCurrentUserParams |
| Response | User |
response = client.authentication.list_current_user
puts response.inspectSDKs
List every SDK on the team.
| Direction | Type |
|---|---|
| Request | SdkListParams |
| Response | SdkListResponse |
response = client.sdks.list
puts response.inspectCreate an SDK from an API document, targeting one or more languages.
| Direction | Type |
|---|---|
| Request | SdkCreateParams |
| Response | UID |
response = client.sdks.create({ api_uid: "UakgbKJ5m9gl0JDMbcJqL", languages: ["typescript"], class_name: "Acme", config: "{\"targets\":{\"typescript\":{\"packageName\":\"@acme/sdk\"}}}", slug: "acme-api", title: "Acme SDK" })
puts response.inspectGet a single SDK by its uid.
| Direction | Type |
|---|---|
| Request | SdkRetrieveParams |
| Response | Sdk |
response = client.sdks.retrieve("UakgbKJ5m9gl0JDMbcJqL")
puts response.inspectUpdate SDK metadata, its linked API, or its config.
| Direction | Type |
|---|---|
| Request | SdkUpdateParams |
response = client.sdks.update("UakgbKJ5m9gl0JDMbcJqL", { api_uid: "UakgbKJ5m9gl0JDMbcJqL", api_version: "", config: "{\"targets\":{\"typescript\":{\"packageName\":\"@acme/sdk\"}}}", is_private: false, slug: "acme-api", title: "Acme SDK" })
puts response.inspectDelete an SDK and every version it holds.
| Direction | Type |
|---|---|
| Request | SdkDeleteParams |
response = client.sdks.delete("UakgbKJ5m9gl0JDMbcJqL")
puts response.inspectStart a build. Omit version to build the current work — the open draft, else the latest version — and the resolved version comes back in the response.
| Direction | Type |
|---|---|
| Request | SdkBuildParams |
| Response | SdkBuildResponse |
response = client.sdks.build("UakgbKJ5m9gl0JDMbcJqL", { languages: ["typescript"], version: "1.2.0" })
puts response.inspectSDKs
Create a new SDK version against a specific API version.
| Direction | Type |
|---|---|
| Request | VersionCreateParams |
response = client.sdks.versions.create("UakgbKJ5m9gl0JDMbcJqL", { api_version: "1.2.0", version: "1.2.0" })
puts response.inspectPermanently delete one version of an SDK.
| Direction | Type |
|---|---|
| Request | VersionDeleteParams |
response = client.sdks.versions.delete("1.2.0", { uid: "UakgbKJ5m9gl0JDMbcJqL" })
puts response.inspectSDKs
Link one language target to a GitHub repository, so builds sync there.
| Direction | Type |
|---|---|
| Request | RepositoryLinkParams |
| Response | Sdks::RepositoryLinkResponse |
response = client.sdks.repositories.link("UakgbKJ5m9gl0JDMbcJqL", { base_branch: "main", language: "typescript", repository_id: 123456789, prerelease_type: "beta" })
puts response.inspectUnlink one language target from its repository.
| Direction | Type |
|---|---|
| Request | RepositoryUnlinkParams |
response = client.sdks.repositories.unlink("typescript", { uid: "UakgbKJ5m9gl0JDMbcJqL" })
puts response.inspectToggle publish-on-merge and the release settings for a linked target.
| Direction | Type |
|---|---|
| Request | RepositoryUpdatePublishingParams |
response = client.sdks.repositories.update_publishing("typescript", { uid: "UakgbKJ5m9gl0JDMbcJqL", publish_on_merge: true, access: "public", auth_method: "oidc", tag: "latest" })
puts response.inspectMCP
List every MCP server on the team.
| Direction | Type |
|---|---|
| Request | ServerListParams |
| Response | Mcp::McpServer |
response = client.mcp.servers.list
puts response.inspectCreate an MCP server over one or more API document versions. The response carries the server and its first installation.
| Direction | Type |
|---|---|
| Request | ServerCreateParams |
| Response | Mcp::ServerCreateResponse |
response = client.mcp.servers.create({ name: "Acme MCP", project_uids: [""], slug: "acme-api", version_uids: [""] })
puts response.inspectGet a single MCP server by its id.
| Direction | Type |
|---|---|
| Request | ServerRetrieveParams |
| Response | Mcp::McpServer |
response = client.mcp.servers.retrieve("42")
puts response.inspectUpdate MCP server metadata and which tools it exposes.
| Direction | Type |
|---|---|
| Request | ServerUpdateParams |
| Response | Mcp::McpServer |
response = client.mcp.servers.update("42", { auto_add_operations: true, docs_pages: [""], name: "Acme MCP", operations: [""], slug: "acme-api" })
puts response.inspectDelete an MCP server and every installation it serves.
| Direction | Type |
|---|---|
| Request | ServerDeleteParams |
response = client.mcp.servers.delete("42")
puts response.inspectMCP
List the installations of an MCP server. An installation is what an MCP client connects to.
| Direction | Type |
|---|---|
| Request | InstallationListParams |
| Response | Mcp::Servers::McpInstallationListItem |
response = client.mcp.servers.installations.list("42")
puts response.inspectCreate an installation of an MCP server. documentAuth holds the credentials the server presents to the upstream API and is never returned.
| Direction | Type |
|---|---|
| Request | InstallationCreateParams |
| Response | Mcp::McpInstallation |
response = client.mcp.servers.installations.create("42", { document_auth: { }, name: "Acme MCP", slug: "acme-api" })
puts response.inspectGet a single installation of an MCP server.
| Direction | Type |
|---|---|
| Request | InstallationRetrieveParams |
| Response | Mcp::McpInstallation |
response = client.mcp.servers.installations.retrieve("84", { id: "42" })
puts response.inspectUpdate an installation. Set isPrivate and add access groups to put it behind a login.
| Direction | Type |
|---|---|
| Request | InstallationUpdateParams |
| Response | Mcp::McpInstallation |
response = client.mcp.servers.installations.update("84", { id: "42", document_auth: { }, is_private: false, login_portal_uid: "", mcp_version: "", name: "Acme MCP", slug: "acme-api" })
puts response.inspectDelete an installation of an MCP server.
| Direction | Type |
|---|---|
| Request | InstallationDeleteParams |
response = client.mcp.servers.installations.delete("84", { id: "42" })
puts response.inspectLet an access group reach a private installation.
| Direction | Type |
|---|---|
| Request | InstallationCreateAccessGroupParams |
response = client.mcp.servers.installations.create_access_group("84", { id: "42", access_group_uid: "UakgbKJ5m9gl0JDMbcJqL" })
puts response.inspectStop an access group reaching a private installation.
| Direction | Type |
|---|---|
| Request | InstallationDeleteAccessGroupParams |
response = client.mcp.servers.installations.delete_access_group("84", { id: "42", access_group_uid: "UakgbKJ5m9gl0JDMbcJqL" })
puts response.inspect