Skip to main content
Glama

create_credential

Save a new reusable credential, sealed with the project's encryption key at write time. Neither this call nor any later read ever returns the secret back — reference it from a target by id (see create_endpoint/update_endpoint's target.credentialVaultEntryId) instead of copying the secret around. auth.type selects which fields apply: bearer→token, basic→username+password, apiKeyHeader→headerName+key, apiKeyQuery→paramName+key, publicPrivateKey→secret+key, oauthClientCredentials→tokenUrl+clientId+clientSecret (+ optional scope, audience, clientAuth "basic"|"post"; the access token is fetched at delivery, and clientSecret is never returned. The client secret is only ever sent to tokenUrl, and the access token only to the bound destinationHost; tokenUrl is permanent like destinationHost — it must pass the project's outbound host allowlist at create, and an update that changes it is refused), signingSecret→secret (the secret a sender such as GitHub or Stripe signs the webhooks it sends you with; attach it to an endpoint as senderSignature.credentialId). destinationHost is required and permanent: the credential is only ever sent to that host, over https, and no later call can re-aim it. A signingSecret credential is never sent anywhere, so it takes no destinationHost.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
authYesThe credential's auth shape.
nameYesHuman-readable label, up to 120 characters.
destinationHostNoThe only host this credential may be sent to, e.g. "api.stripe.com", or a single-label wildcard, e.g. "*.stripe.com" (matches api.stripe.com, not stripe.com and not a.b.stripe.com). Host only — no scheme, port or path. Internationalised hosts must be given in punycode ("xn--…"). Permanent: attaching this credential to a target on any other host is refused, and it cannot be changed later — a different destination means a new credential, which means entering the secret again.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / auth / properties / audience
      Added value: +{
      +  "description": "oauthClientCredentials only, optional.",
      +  "type": "string"
      +}
    • addedInput schema / properties / auth / properties / clientAuth
      Added value: +{
      +  "description": "oauthClientCredentials only. \"basic\" (default) sends the client credentials in an Authorization header, \"post\" in the request body.",
      +  "enum": [
      +    "basic",
      +    "post"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / auth / properties / clientId
      Added value: +{
      +  "description": "oauthClientCredentials only.",
      +  "type": "string"
      +}
    • addedInput schema / properties / auth / properties / clientSecret
      Added value: +{
      +  "description": "oauthClientCredentials only. Omit on update to keep the stored value.",
      +  "type": "string"
      +}
    • addedInput schema / properties / auth / properties / scope
      Added value: +{
      +  "description": "oauthClientCredentials only, optional. Space-separated scopes.",
      +  "type": "string"
      +}
    • addedInput schema / properties / auth / properties / tokenUrl
      Added value: +{
      +  "description": "oauthClientCredentials only. An https URL; the only place the client secret is ever sent. Permanent after create — an update may only restate it.",
      +  "type": "string"
      +}
    • changedInput schema / properties / auth / properties / type / enum
      Previous value: -[
      -  "none",
      -  "bearer",
      -  "basic",
      -  "apiKeyHeader",
      -  "apiKeyQuery",
      -  "publicPrivateKey",
      -  "signingSecret"
      -]New value: +[
      +  "none",
      +  "bearer",
      +  "basic",
      +  "apiKeyHeader",
      +  "apiKeyQuery",
      +  "publicPrivateKey",
      +  "oauthClientCredentials",
      +  "signingSecret"
      +]
  2. Changed3 schema fields changed
    • changedInput schema / properties / auth / properties / secret / description
      Previous value: -"publicPrivateKey only."New value: +"publicPrivateKey or signingSecret."
    • changedInput schema / properties / auth / properties / type / enum
      Previous value: -[
      -  "none",
      -  "bearer",
      -  "basic",
      -  "apiKeyHeader",
      -  "apiKeyQuery",
      -  "publicPrivateKey"
      -]New value: +[
      +  "none",
      +  "bearer",
      +  "basic",
      +  "apiKeyHeader",
      +  "apiKeyQuery",
      +  "publicPrivateKey",
      +  "signingSecret"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "name",
      -  "destinationHost",
      -  "auth"
      -]New value: +[
      +  "name",
      +  "auth"
      +]
  3. Changed2 schema fields changed
    • addedInput schema / properties / destinationHost
      Added value: +{
      +  "description": "The only host this credential may be sent to, e.g. \"api.stripe.com\", or a single-label wildcard, e.g. \"*.stripe.com\" (matches api.stripe.com, not stripe.com and not a.b.stripe.com). Host only — no scheme, port or path. Internationalised hosts must be given in punycode (\"xn--…\"). Permanent: attaching this credential to a target on any other host is refused, and it cannot be changed later — a different destination means a new credential, which means entering the secret again.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "name",
      -  "auth"
      -]New value: +[
      +  "name",
      +  "destinationHost",
      +  "auth"
      +]
  4. Added
  5. Removed
  6. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources