Skip to main content
Glama
health_check.json35.9 kB
{ "id": "health_check", "schema": { "type": "object", "title": "", "required": ["collectUrl", "collectMethod", "authentication"], "properties": { "discovery": { "type": "object", "required": ["discoverType"], "properties": { "discoverType": { "type": "string", "title": "Discover Type", "description": "Defines how task discovery will be performed. Use None to skip the discovery. Use HTTP Request to make a REST call to discover tasks. Use Item List to enumerate items for collect to retrieve. Use JSON Response to manually define discover tasks as a JSON array of objects. Each entry returned by the discover operation will result in a collect task.", "enum": ["http", "json", "list", "none"], "enumNames": ["HTTP Request", "JSON Response", "Item List", "None"], "default": "none" } }, "errorMessage": "Please choose one of the discovery options.", "dependencies": { "discoverType": { "oneOf": [ { "required": ["discoverUrl", "discoverMethod"], "properties": { "discoverType": { "enum": ["http"] }, "discoverUrl": { "type": "string", "title": "Discover URL", "description": "Expression to derive URL to use for the Discover operation (can be a constant).", "jsExpression": true }, "discoverMethod": { "type": "string", "title": "Discover method", "description": "Discover HTTP method.", "enum": ["get", "post", "post_with_body"], "enumNames": ["GET", "POST", "POST with Body"], "default": "get" }, "discoverRequestParams": {}, "discoverBody": {}, "discoverRequestHeaders": { "title": "Discover Headers", "description": "Optional discover request headers.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "type": "string", "title": "Name", "description": "Header name." }, "value": { "type": "string", "title": "Value", "description": "JavaScript expression to compute the header value (can be a constant).", "jsExpression": true, "encrypt": true } } } }, "discoverDataField": { "type": "string", "title": "Discover Data Field", "description": "Path to field in the response object which contains discover results (e.g.: level1.name), leave blank if the result is an array." } }, "dependencies": { "discoverMethod": { "oneOf": [ { "properties": { "discoverMethod": { "enum": ["get"] }, "discoverRequestParams": { "title": "Discover parameters", "description": "Optional discover request parameters.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "title": "Name", "type": "string", "description": "Parameter name." }, "value": { "title": "Value", "type": "string", "description": "JavaScript expression to compute the parameter value (can be a constant).", "jsExpression": true } } } } } }, { "properties": { "discoverMethod": { "enum": ["post"] }, "discoverRequestParams": { "title": "Discover parameters", "description": "Optional discover request parameters.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "title": "Name", "type": "string", "description": "Parameter name." }, "value": { "title": "Value", "type": "string", "description": "JavaScript expression to compute the parameter value (can be a constant).", "jsExpression": true } } } } } }, { "properties": { "discoverMethod": { "enum": ["post_with_body"] }, "discoverBody": { "type": "string", "title": "Discover POST body", "description": "Template for POST body to send with the discover request.", "default": "`{ }`", "jsExpression": true } } } ] } } }, { "required": ["manualDiscoverResult"], "properties": { "discoverType": { "enum": ["json"] }, "manualDiscoverResult": { "type": "string", "title": "Discover result", "description": "Allows hard-coding the Discover result. Must be a JSON object. Works with the Discover Data field." }, "discoverDataField": { "type": "string", "title": "Discover data field", "description": "Within the response JSON, name of the field or array element to pull results from. Leave blank if the result is an array of values. Sample entry: items, json: { items: [{id: 'first'},{id: 'second'}] }" } } }, { "required": ["itemList"], "properties": { "discoverType": { "enum": ["list"] }, "itemList": { "type": "array", "title": "Discover items", "description": "Comma-separated list of items to return from the Discover task. Each item returned will generate a collect task, and can be referenced using `${id}` in the collect URL, headers, or parameters.", "minItems": 1, "default": [], "items": { "type": "string", "title": "Items", "description": "List of items to return from discovery." } } } }, { "properties": { "discoverType": { "enum": ["none"] } } } ] } } }, "collectUrl": { "type": "string", "title": "Health check URL", "description": "Expression to derive URL to use for the health check operation (can be a constant).", "jsExpression": true }, "collectMethod": { "type": "string", "title": "Health check method", "description": "Health check HTTP method.", "enum": ["get", "post", "post_with_body"], "enumNames": ["GET", "POST", "POST with Body"], "default": "get" }, "collectRequestParams": {}, "collectBody": {}, "collectRequestHeaders": { "title": "Health check headers", "description": "Optional health check request headers.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "type": "string", "title": "Name", "description": "Header Name" }, "value": { "type": "string", "title": "Value", "description": "JavaScript expression to compute the header value (can be a constant).", "jsExpression": true, "encrypt": true } } } }, "authenticateCollect": { "type": "boolean", "title": "Authenticate health check", "description": "Enable to make auth health check call.", "default": false }, "authentication": { "type": "string", "title": "Authentication", "description": "Authentication method for Discover and Collect REST calls. You can specify API Key based authentication by adding the appropriate Collect headers.", "enum": [ "none", "basic", "basicSecret", "login", "loginSecret", "oauth", "oauthSecret" ], "default": "none" }, "timeout": { "type": "number", "title": "Request Timeout (secs)", "description": "HTTP request inactivity timeout, use 0 to disable", "minimum": 0, "maximum": 1800, "default": 30 }, "rejectUnauthorized": { "type": "boolean", "title": "Reject unauthorized certificates", "description": "Whether to reject certificates that cannot be verified against a valid CA (e.g., self-signed certificates).", "default": false, "defaultNew": true }, "defaultBreakers": { "type": "string", "title": "Hidden Default Breakers", "enum": ["Cribl"] }, "safeHeaders": { "type": "array", "title": "Safe headers", "description": "List of headers that are safe to log in plain text.", "default": [], "items": { "type": "string" } }, "retryRules": { "type": "object", "required": ["type"], "properties": { "type": { "type": "string", "title": "Retry type", "description": "The algorithm to use when performing HTTP retries", "enum": ["none", "backoff", "static"], "enumNames": ["Disabled", "Backoff", "Static"], "default": "backoff" }, "interval": {}, "limit": {}, "multiplier": {}, "codes": {}, "enableHeader": {} }, "dependencies": { "type": { "oneOf": [ { "properties": { "type": { "enum": ["none"] } } }, { "properties": { "type": { "enum": ["static"] }, "interval": { "type": "number", "title": "Wait (ms)", "description": "Time interval between retries. Maximum allowed value is 20,000 ms (1/3 minute).", "minimum": 0, "maximum": 20000, "default": 1000 }, "limit": { "type": "number", "title": "Retry limit", "description": "The maximum number of times to retry a failed HTTP request", "minimum": 0, "maximum": 20, "default": 5 }, "codes": { "type": "array", "title": "Retry HTTP codes", "description": "List of HTTP codes that trigger a retry. Leave empty to use the default list of 429 and 503.", "minItems": 1, "default": [429, 503], "items": { "type": "number", "minLength": 1 } }, "enableHeader": { "type": "boolean", "title": "Honor Retry-After header", "description": "Honor any Retry-After header that specifies a delay (in seconds) or a timestamp after which to retry the request. The delay is limited to 20 seconds, even if the Retry-After header specifies a longer delay. When disabled, all Retry-After headers are ignored.", "default": true } } }, { "properties": { "type": { "enum": ["backoff"] }, "interval": { "type": "number", "title": "Initial retry interval (ms)", "description": "Time interval between failed request and first retry (kickoff). Maximum allowed value is 20,000 ms (1/3 minute).", "minimum": 0, "maximum": 20000, "default": 1000 }, "limit": { "type": "number", "title": "Retry limit", "description": "The maximum number of times to retry a failed HTTP request", "minimum": 0, "maximum": 20, "default": 5 }, "multiplier": { "type": "number", "title": "Backoff multiplier", "description": "Base for exponential backoff, e.g., base 2 means that retries will occur after 2, then 4, then 8 seconds, and so on", "minimum": 1, "maximum": 20, "default": 2 }, "codes": { "type": "array", "title": "Retry HTTP codes", "description": "List of HTTP codes that trigger a retry. Leave empty to use the default list of 429 and 503.", "minItems": 1, "default": [429, 503], "items": { "type": "number", "minLength": 1 } }, "enableHeader": { "type": "boolean", "title": "Honor Retry-After header", "description": "Honor any Retry-After header that specifies a delay (in seconds) or a timestamp after which to retry the request. The delay is limited to 20 seconds, even if the Retry-After header specifies a longer delay. When disabled, all Retry-After headers are ignored.", "default": true } } } ] } } } }, "dependencies": { "collectMethod": { "oneOf": [ { "properties": { "collectMethod": { "enum": ["get"] }, "collectRequestParams": { "title": "Health check parameters", "description": "Optional health check request parameters.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "title": "Name", "type": "string", "description": "Parameter name" }, "value": { "title": "Value", "type": "string", "description": "JavaScript expression to compute the parameter value (can be a constant).", "jsExpression": true } } } } } }, { "properties": { "collectMethod": { "enum": ["post"] }, "collectRequestParams": { "title": "Health check parameters", "description": "Optional health check request parameters.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "title": "Name", "type": "string", "description": "Parameter name." }, "value": { "title": "Value", "type": "string", "description": "JavaScript expression to compute the parameter value (can be a constant).", "jsExpression": true } } } } } }, { "properties": { "collectMethod": { "enum": ["post_with_body"] }, "collectBody": { "type": "string", "title": "Health check POST Body", "description": "Template for POST body to send with the health check request. You can reference parameters from the Discover response, using template params of the form: ${variable}.", "default": "`{ }`", "jsExpression": true } } } ] }, "authentication": { "oneOf": [ { "properties": { "authentication": { "enum": ["none"] } } }, { "required": ["username", "password"], "properties": { "authentication": { "enum": ["basic"] }, "username": { "type": "string", "title": "Username", "description": "Basic authentication username", "encrypt": true }, "password": { "type": "string", "title": "Password", "description": "Basic authentication password", "encrypt": true } } }, { "required": ["credentialsSecret"], "properties": { "authentication": { "enum": ["basicSecret"] }, "credentialsSecret": { "type": "string", "title": "Credentials secret", "secret": { "type": "credentials", "target": ["username", "password"] }, "description": "Select or create a stored secret that references your credentials" } } }, { "required": [ "loginUrl", "username", "password", "loginBody", "authHeaderExpr" ], "properties": { "authentication": { "enum": ["login"] }, "loginUrl": { "type": "string", "title": "Login URL", "description": "URL to use for login API call. This call is expected to be a POST.", "default": "`https://localhost:9000/api/v1/auth/login`", "jsExpression": true }, "username": { "type": "string", "title": "Username", "description": "Login username", "minLength": 1, "encrypt": true }, "password": { "type": "string", "title": "Password", "description": "Login password", "minLength": 1, "encrypt": true }, "loginBody": { "type": "string", "title": "POST body", "description": "Template for POST body to send with login request, ${username} and ${password} are used to specify location of these attributes in the message", "default": "`{ \"username\": \"${username}\", \"password\": \"${password}\" }`", "jsExpression": true }, "tokenRespAttribute": { "type": "string", "title": "Token attribute", "description": "Path to token attribute in login response body. Nested attributes are OK. Leave blank if the response content type is text/plain; the entire response body will be used to derive the authorization header." }, "authHeaderExpr": { "type": "string", "title": "Authorize Expression", "description": "JavaScript expression to compute the Authorization header to pass in discover and collect calls. The value ${token} is used to reference the token obtained from login.", "default": "`Bearer ${token}`", "jsExpression": true }, "authRequestHeaders": { "title": "Authentication Headers", "description": "Optional authentication request headers.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "type": "string", "title": "Name", "description": "Header name." }, "value": { "type": "string", "title": "Value", "description": "JavaScript expression to compute the header value (can be a constant).", "jsExpression": true, "encrypt": true } } } } } }, { "required": [ "loginUrl", "credentialsSecret", "loginBody", "authHeaderExpr" ], "properties": { "authentication": { "enum": ["loginSecret"] }, "loginUrl": { "type": "string", "title": "Login URL", "description": "URL to use for login API call, this call is expected to be a POST.", "default": "`https://localhost:9000/api/v1/auth/login`", "jsExpression": true }, "credentialsSecret": { "type": "string", "title": "Credentials secret", "secret": { "type": "credentials", "target": ["username", "password"] }, "description": "Select or create a stored secret that references your login credentials" }, "loginBody": { "type": "string", "title": "POST body", "description": "Template for POST body to send with login request, ${username} and ${password} are used to specify location of these attributes in the message", "default": "`{ \"username\": \"${username}\", \"password\": \"${password}\" }`", "jsExpression": true }, "tokenRespAttribute": { "type": "string", "title": "Token attribute", "description": "Path to token attribute in login response body. Nested attributes are OK. If left blank, the entire response body will be used to derive the authorization header." }, "authHeaderExpr": { "type": "string", "title": "Authorize Expression", "description": "JavaScript expression to compute the Authorization header to pass in discover and collect calls. The value ${token} is used to reference the token obtained from login.", "default": "`Bearer ${token}`", "jsExpression": true }, "authRequestHeaders": { "title": "Authentication Headers", "description": "Optional authentication request headers.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "type": "string", "title": "Name", "description": "Header name." }, "value": { "type": "string", "title": "Value", "description": "JavaScript expression to compute the header value (can be a constant).", "jsExpression": true, "encrypt": true } } } } } }, { "required": [ "loginUrl", "clientSecretParamName", "clientSecretParamValue", "authHeaderExpr" ], "properties": { "authentication": { "enum": ["oauth"] }, "loginUrl": { "type": "string", "title": "Login URL", "description": "URL to use for the OAuth API call. This call is expected to be a POST.", "default": "", "jsExpression": true }, "tokenRespAttribute": { "type": "string", "title": "Token attribute", "description": "Path to token attribute in login response body. Nested attributes are OK. Leave blank if the response content type is text/plain; the entire response body will be used to derive the authorization header." }, "authHeaderExpr": { "type": "string", "title": "Authorize expression", "description": "JavaScript expression to compute the Authorization header to pass in discover and collect calls. The value ${token} is used to reference the token obtained from login.", "default": "`Bearer ${token}`", "jsExpression": true }, "clientSecretParamName": { "type": "string", "title": "Client secret parameter", "description": "Parameter name that contains client secret. Defaults to 'client_secret', and is automatically added to request parameters.", "default": "client_secret" }, "clientSecretParamValue": { "type": "string", "title": "Client secret value", "description": "Secret value to add to HTTP requests as the 'client secret' parameter. Stored on disk encrypted, and is automatically added to request parameters", "encrypt": true }, "authRequestParams": { "title": "Extra authentication parameters", "description": "OAuth request parameters added to the POST body. The Content-Type header will automatically be set to application/x-www-form-urlencoded.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "title": "Name", "type": "string", "description": "Parameter name." }, "value": { "title": "Value", "type": "string", "description": "JavaScript expression to compute the parameter's value, normally enclosed in backticks (e.g., `${earliest}`). If a constant, use single quotes (e.g., 'earliest'). Values without delimiters (e.g., earliest) are evaluated as strings.", "jsExpression": true } } } }, "authRequestHeaders": { "title": "Authentication headers", "description": "Optional authentication request headers.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "type": "string", "title": "Name", "description": "Header name." }, "value": { "type": "string", "title": "Value", "description": "JavaScript expression to compute the header's value, normally enclosed in backticks (e.g., `${earliest}`). If a constant, use single quotes (e.g., 'earliest'). Values without delimiters (e.g., earliest) are evaluated as strings.", "jsExpression": true, "encrypt": true } } } } } }, { "required": [ "loginUrl", "clientSecretParamName", "textSecret", "authHeaderExpr" ], "properties": { "authentication": { "enum": ["oauthSecret"] }, "loginUrl": { "type": "string", "title": "Login URL", "description": "URL to use for the OAuth API call. This call is expected to be a POST.", "default": "", "jsExpression": true }, "tokenRespAttribute": { "type": "string", "title": "Token attribute", "description": "Path to token attribute in login response body. Nested attributes are OK. Leave blank if the response content type is text/plain; the entire response body will be used to derive the authorization header." }, "authHeaderExpr": { "type": "string", "title": "Authorize expression", "description": "JavaScript expression to compute the Authorization header to pass in discover and collect calls. The value ${token} is used to reference the token obtained from login.", "default": "`Bearer ${token}`", "jsExpression": true }, "clientSecretParamName": { "type": "string", "title": "Client secret parameter", "description": "Parameter name that contains client secret. Defaults to 'client_secret', and is automatically added to request parameters.", "default": "client_secret" }, "textSecret": { "type": "string", "secret": { "type": "text", "target": "clientSecretParamValue" }, "secretRef": true, "title": "Client secret value (text secret)", "description": "Select or create a text secret that contains the client secret's value." }, "authRequestParams": { "title": "Extra authentication parameters", "description": "OAuth request parameters added to the POST body. The Content-Type header will automatically be set to application/x-www-form-urlencoded.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "title": "Name", "type": "string", "description": "Parameter name." }, "value": { "title": "Value", "type": "string", "description": "JavaScript expression to compute the parameter's value, normally enclosed in backticks (e.g., `${earliest}`). If a constant, use single quotes (e.g., 'earliest'). Values without delimiters (e.g., earliest) are evaluated as strings.", "jsExpression": true } } } }, "authRequestHeaders": { "title": "Authentication headers", "description": "Optional authentication request headers.", "type": "array", "items": { "type": "object", "required": ["name", "value"], "properties": { "name": { "type": "string", "title": "Name", "description": "Header name." }, "value": { "type": "string", "title": "Value", "description": "JavaScript expression to compute the header's value, normally enclosed in backticks (e.g., `${earliest}`). If a constant, use single quotes (e.g., 'earliest'). Values without delimiters (e.g., earliest) are evaluated as strings.", "jsExpression": true, "encrypt": true } } } } } } ] } } } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/atree1023/snc-cribl-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server