Agentic Data Plane

Ironclad Managed MCP Server

The Ironclad managed MCP server gives an LLM read and write access to Ironclad, a contract lifecycle management (CLM) platform. It’s useful for agents that need to find contracts, check signature status, launch new contracts from templates, or list a contract’s executed documents.

After reading this page, you will be able to:

  • Configure the Ironclad managed MCP server with per-user OAuth

  • Pick the right region and scopes for your tenant

  • List, fetch, and launch contract workflows from an agent

What this MCP server does

The server uses per-user OAuth 2.0 (Authorization Code grant). It stores no static API key in its configuration. Each user authorizes their own Ironclad account through AI Gateway’s OAuth flow.

It isn’t a replacement for the Ironclad web UI for complex workflow management or template authoring.

Prerequisites

Before you create the server, make sure you have:

Get Ironclad credentials

Set up the OAuth app on Ironclad and the matching OAuth provider in Agentic Data Plane. Register a separate app in each Ironclad environment you use, because apps don’t carry over between environments.

  1. In Ironclad, open your user profile menu and select Company Settings. Open the API tab, then the Applications tab, and click Create new app.

  2. Set the redirect URI to your AI Gateway callback URL (typically https://aigw.<cluster-id>.clusters.rdpa.co/oauth/v1/callback).

  3. Select the following scopes:

    • public.workflows.readWorkflows

    • public.workflows.readSchemas

    • public.workflows.createWorkflows

    • public.workflows.readDocuments

  4. Copy the Client ID and Client Secret.

  5. In Agentic Data Plane, create a custom OAuth provider with:

    • Authorization endpoint: https://ironcladapp.com/oauth/authorize for North America, https://eu1.ironcladapp.com/oauth/authorize for EU-hosted accounts, or https://demo.ironcladapp.com/oauth/authorize for the demo environment

    • Token endpoint: https://ironcladapp.com/oauth/token, or the eu1 or demo equivalent

    • Scopes: The same four scopes you selected on the Ironclad app

    • The Client ID and a secret-store reference for the Client Secret

Configure

Create a new Ironclad MCP server in Agentic Data Plane:

  1. Open MCP servers in the sidebar.

  2. Click Add MCP server.

  3. Click the Ironclad card in the marketplace picker.

  4. Replace the suggested Name, and optionally add a Description.

  5. In the Ironclad configuration form:

    Field Notes

    region

    IRONCLAD_REGION_NA (default), IRONCLAD_REGION_EU for EU-hosted accounts, or IRONCLAD_REGION_DEMO for sandbox testing.

    OAuth Provider

    The Ironclad OAuth provider you configured.

    Required scopes

    public.workflows.readWorkflows, public.workflows.readSchemas, public.workflows.createWorkflows, public.workflows.readDocuments. Every required scope must also be in the provider’s scopes. A required scope the provider doesn’t request makes tool calls fail with scope_upgrade_required until each user reconnects and grants it. If the Ironclad app isn’t allowed to grant that scope, every tool call keeps failing.

    Enabled under Queryable

    Appears only if SQL tools are available in your organization, and starts on. Turn it off unless your agents need the two SQL tools. See Expose Ironclad data as SQL tables.

  6. Click Create server.

Configure from the CLI

Ironclad authenticates per-user through the Ironclad OAuth provider you configured. Reference that provider in the managed configuration’s userOauth.providerName field. Ironclad supports per-user OAuth only, so the userOauth block is required. The --remote.user-oauth.provider-name and --remote.user-oauth.required-scopes flags belong to the remote flag group, so they apply to remote servers only.

rpk ai mcp-server create my-ironclad --enabled --managed.config '{
  "@type": "type.googleapis.com/redpanda.mcps.ironclad.v1.IroncladMCPConfig",
  "region": "IRONCLAD_REGION_NA",
  "userOauth": {
    "providerName": "ironclad"
  }
}'

For EU-hosted accounts, use "IRONCLAD_REGION_EU". For sandbox testing, use "IRONCLAD_REGION_DEMO". The userOauth.providerName field is the resource name of the Ironclad OAuth provider you registered.

The create form turns Enable code mode on by default for this server type. rpk ai mcp-server create has no code-mode flag. To add code mode from the CLI, create a Code MCP server named <server-name>-code with --code.mcp-servers <server-name>. See Code Mode.

Tools

The Ironclad MCP exposes the following tools:

Tool Description

list_workflows

List contracts with an optional status filter and page and per_page pagination, described in this section.

get_workflow

Get full details of a contract by workflow_id.

list_workflow_schemas

List available contract templates with their field IDs.

create_workflow

Launch a new contract from a template (schema_id + attributes_json).

list_workflow_documents

List documents attached to a contract. It lists documents but doesn’t download them.

The status argument on list_workflows takes active, paused, completed, or cancelled, and a comma-separated list such as active,completed selects several at once. Omit status to list active workflows only, which is Ironclad’s own default.

Both list_workflows and list_workflow_schemas page with a zero-indexed page and a per_page size. The size defaults to 20 and is capped at 50. A request for more than 50 rows returns at most 50 rows without an error. To get more rows, increase page by one on each call, and use total_count on the response to know how many rows match in all.

Example: List active contracts

curl -X POST https://aigw.<cluster-id>.clusters.rdpa.co/mcp/v1/my-ironclad \
  -H "Authorization: Bearer <user-token>" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0", "id": 1, "method": "tools/call",
    "params": {
      "name": "list_workflows",
      "arguments": {"status": "active"}
    }
  }'

Expose Ironclad data as SQL tables

The Ironclad server can also present its list operations as read-only SQL tables, so an agent can filter contract data the way it would query a database. SQL exposure is the Enabled toggle under Queryable in the server’s configuration. If SQL tools are available in your organization, the create form shows Queryable with Enabled on, so a server you create there is queryable unless you turn it off. Otherwise the form doesn’t show Queryable, and the server starts with SQL exposure off. Creating a server with rpk ai leaves SQL exposure off unless the managed configuration sets it. An existing server keeps the setting it was saved with. To change it, open the server’s edit form, which shows Queryable if SQL tools are available in your organization or if the server was saved with SQL exposure on. SQL exposure adds two tools:

  • list_tables: Return the table catalog. For each table, the catalog lists its columns and their types, which columns can be filtered and with which operators, whether each filter is exact, the page-size limit, and a schema fingerprint that every query response repeats so a caller can tell when the catalog changed.

  • execute_query: Run one query against a table and return a page of rows plus a cursor for the next page.

The tables are:

Table Contents

workflows

Active workflows only, because Ironclad returns active workflows when no status is sent, and the server sends none. Paused, completed, and cancelled workflows aren’t listed. Use list_workflows with a status to read them. The table offers no filters. Its type column is the ID of the template the workflow was launched from, so you can join it to workflow_schemas.id.

workflow_schemas

Every workflow template the connected user can see, with its field definitions as a JSON column. The table offers no filters.

workflow_documents

The documents on one workflow. Every query has to filter on workflow_id, and that filter is exact.

A page holds at most 50 rows on workflows and workflow_schemas.

The tools that read a single workflow or launch one stay plain tools.

With SQL exposure on, the two tools are available to every caller of the server, including agents. Turn off Enabled on a server whose agents should only reach the curated Ironclad tools.

To trim the catalog table by table, hide columns, require filters, retype a column, or serve a table under another name, use the SQL exposure tab on the server’s page. That tab works the same way for every managed type that offers SQL tables. See Narrow what the SQL tools expose. If the server’s page has no SQL exposure tab, narrowing isn’t enabled for your organization. The Enabled setting on the server’s configuration still turns the two SQL tools on and off.

Troubleshooting

Common symptoms and fixes:

Symptom What to check

connection_required

First call from a user with no stored token. The failed tool result carries the authorization URL. The user completes Ironclad’s OAuth consent flow, the token lands in the vault, and subsequent calls reuse it.

scope_upgrade_required

The server’s required_scopes was extended after users had already consented, so users reconnect to grant them. If it persists after reconnecting, a required scope is missing from the provider’s scopes or from the Ironclad app.

Wrong region results

Confirm the Region field matches your Ironclad tenant. EU-hosted accounts use IRONCLAD_REGION_EU. Sandbox tenants use IRONCLAD_REGION_DEMO.

schema_id not found in create_workflow

Run list_workflow_schemas first to get valid IDs for your tenant.

Limitations

This page does not cover:

  • Template authoring: Define templates in the Ironclad web UI, then reference them by schema_id.

  • eSignature flows: Ironclad handles these. This MCP server launches and reads workflow state.