> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Check integration readiness

> Check whether one integration tool can run now in a project, before a run or to explain why a run was blocked; returns the selected connection, its state and the local blockers from stored metadata only, where a blocked or missing selection is a result and the provider is not contacted.

`veryfront__check_integration_readiness`

Requires project.integrations.read.

## Access

No external-service connection is required. Use a Veryfront credential with access to the requested resources.

**Call type:** Read-only.

## Arguments

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `project_reference` | `string` | No | Project ID or slug. The caller needs project.integrations.read on it. A run token or a service account is refused as forbidden. Minimum length: `1`. |
| `name` | `string` | Yes | Integration name, for example "salesforce". Minimum length: `1`. Maximum length: `128`. |
| `tool_name` | `string` | Yes | Qualified tool name in the namespace of the integration, for example `github__list`-repos. Minimum length: `1`. Maximum length: `256`. |
| `connection_id` | `string` | No | Exact connection to evaluate. Format: `uuid`. |
| `expected_connection_generation_id` | `string` | No | Observed generation of the connection. Requires `connection_id`. Format: `uuid`. |

## Example request

Send this JSON-RPC request through an initialized MCP client. Replace sample identifiers and values before calling the tool. See [MCP client setup](/docs/cloud/getting-started/connect-mcp.md).

```json title="request.json" theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "veryfront__check_integration_readiness",
    "arguments": {
      "name": "example",
      "tool_name": "example"
    }
  }
}
```

## Result

The published output shape is summarized below. Inspect both the MCP response content and `isError` when handling a call.

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `version` | `number` | Yes | Value: `1`. |
| `selection` | `object` | Yes | Structured selection details associated with this tool result. |
| `connection` | `object` | Yes | Structured connection details associated with this tool result. |
| `account` | `object` | Yes | Structured account details associated with this tool result. |
| `credentials` | `object` | Yes | Structured credentials details associated with this tool result. |
| `local_eligibility` | `object` | Yes | Structured local eligibility details associated with this tool result. |
| `provider_verification` | `object` | Yes | Structured provider verification details associated with this tool result. |

## Full schemas

```json title="input-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "project_reference": {
      "type": "string",
      "minLength": 1,
      "description": "Project ID or slug. The caller needs project.integrations.read on it. A run token or a service account is refused as forbidden."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Integration name, for example \"salesforce\"."
    },
    "tool_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "description": "Qualified tool name in the namespace of the integration, for example github__list-repos."
    },
    "connection_id": {
      "type": "string",
      "format": "uuid",
      "description": "Exact connection to evaluate."
    },
    "expected_connection_generation_id": {
      "type": "string",
      "format": "uuid",
      "description": "Observed generation of the connection. Requires connection_id."
    }
  },
  "required": [
    "name",
    "tool_name"
  ],
  "additionalProperties": false,
  "description": "Arguments for the check_integration_readiness tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

```json title="output-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "version": {
      "type": "number",
      "const": 1
    },
    "selection": {
      "type": "object",
      "properties": {
        "integration": {
          "type": "string"
        },
        "state": {
          "type": "string",
          "enum": [
            "selected",
            "missing",
            "ambiguous",
            "unavailable",
            "stale",
            "unknown"
          ]
        },
        "mode": {
          "type": "string",
          "enum": [
            "oauth_connection",
            "project_credentials",
            "service_identity",
            "mock",
            "unknown"
          ]
        },
        "scope": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "user",
                "project"
              ]
            },
            {
              "type": "null",
              "description": "The scope returned by the tool."
            }
          ],
          "description": "Selected connection owner scope. Project connections are shared; user connections belong to the interactive caller."
        },
        "project_id": {
          "type": "string",
          "format": "uuid",
          "description": "Project identifier associated with this result."
        },
        "tool_name": {
          "type": "string"
        },
        "requested_connection_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null",
              "description": "The requested connection id returned by the tool."
            }
          ]
        },
        "connection_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null",
              "description": "The connection id returned by the tool."
            }
          ]
        },
        "connection_generation_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid"
            },
            {
              "type": "null",
              "description": "The connection generation id returned by the tool."
            }
          ]
        }
      },
      "required": [
        "integration",
        "state",
        "mode",
        "scope",
        "project_id",
        "tool_name",
        "requested_connection_id",
        "connection_id",
        "connection_generation_id"
      ],
      "additionalProperties": false,
      "description": "Structured selection details associated with this tool result."
    },
    "connection": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "connected",
            "expired",
            "disconnected",
            "revoked",
            "missing",
            "unknown",
            "not_applicable"
          ]
        }
      },
      "required": [
        "state"
      ],
      "additionalProperties": false,
      "description": "Structured connection details associated with this tool result."
    },
    "account": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "recorded",
            "unknown"
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Unique identifier for the returned record."
        },
        "evidence": {
          "type": "string",
          "enum": [
            "stored_metadata",
            "none"
          ]
        },
        "display_name": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "state",
        "id",
        "evidence",
        "display_name"
      ],
      "additionalProperties": false,
      "description": "Structured account details associated with this tool result."
    },
    "credentials": {
      "type": "object",
      "properties": {
        "evidence": {
          "type": "string",
          "enum": [
            "connection_metadata",
            "complete_key_presence",
            "partial_key_presence",
            "absent",
            "not_applicable"
          ]
        },
        "missing_keys": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of missing keys associated with this tool result."
        }
      },
      "required": [
        "evidence",
        "missing_keys"
      ],
      "additionalProperties": false,
      "description": "Structured credentials details associated with this tool result."
    },
    "local_eligibility": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "eligible",
            "blocked",
            "unknown"
          ]
        },
        "basis": {
          "type": "string",
          "const": "metadata_only",
          "description": "Local eligibility is inferred from stored metadata only; it does not verify provider access."
        },
        "blockers": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "tool_unavailable",
              "tool_permission_denied",
              "connection_required",
              "connection_selection_required",
              "connection_unavailable",
              "connection_stale",
              "reconnect_required",
              "credentials_missing",
              "technical_configuration_blocked",
              "selector_incompatible_with_mode"
            ]
          },
          "description": "List of blockers associated with this tool result."
        },
        "required_capability": {
          "type": "string",
          "enum": [
            "project.integrations.read",
            "project.integrations.connect"
          ]
        },
        "pending_checks": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "argument_validation",
              "credential_value_validation",
              "provider_authorization",
              "credential_mode_resolution",
              "mock_tool_availability",
              "provider_resource_validation"
            ]
          },
          "description": "List of pending checks associated with this tool result."
        }
      },
      "required": [
        "state",
        "basis",
        "blockers",
        "required_capability",
        "pending_checks"
      ],
      "additionalProperties": false,
      "description": "Structured local eligibility details associated with this tool result."
    },
    "provider_verification": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "const": "not_checked",
          "description": "Provider access has not been verified by this metadata inspection."
        }
      },
      "required": [
        "state"
      ],
      "additionalProperties": false,
      "description": "Structured provider verification details associated with this tool result."
    }
  },
  "required": [
    "version",
    "selection",
    "connection",
    "account",
    "credentials",
    "local_eligibility",
    "provider_verification"
  ],
  "additionalProperties": false,
  "description": "Structured result returned by the check_integration_readiness tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

<details>
  <summary>Try this tool</summary>

  Replace sample arguments with values for your project or connected account. Calls run only when you select Run tool.

  MCP tool call

  Call `veryfront__check_integration_readiness` against the Veryfront MCP endpoint.

  Bearer token or API key

  Arguments (JSON)

  Run tool

  Output JSON

  <pre />
</details>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.