Skip to content

Connect Guidewire PolicyCenter to Claude: Automate Submissions & UW

Learn how to connect Guidewire PolicyCenter to Claude using a managed MCP server. Automate policy submissions, underwriting approvals, and account operations.

Nidhi KN Nidhi KN · · 9 min read
Connect Guidewire PolicyCenter to Claude: Automate Submissions & UW

If your team needs to connect Guidewire PolicyCenter to Claude to automate quoting, handle underwriting approvals, or manage complex policy submissions, you need a Model Context Protocol (MCP) server. This server acts as the translation layer between Claude's JSON-RPC tool calls and Guidewire's heavily structured REST API. You can either build, host, and maintain this infrastructure yourself, or use a managed integration platform like Truto to dynamically generate a secure, authenticated MCP server URL.

If your team uses ChatGPT, check out our guide on connecting Guidewire PolicyCenter to ChatGPT or explore our broader architectural overview on connecting Guidewire PolicyCenter to AI Agents.

Giving a Large Language Model (LLM) read and write access to a core insurance system like Guidewire PolicyCenter is a massive engineering challenge. You have to navigate the difference between Accounts, Jobs, and Policies, handle complex payload structures for coinsurance and locations, and deal with Guidewire's strict state transitions. Every time Guidewire adds a custom LOB (Line of Business) or introduces a new API schema, you have to update your server code, redeploy, and test the integration.

This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Guidewire PolicyCenter, connect it natively to Claude, and execute complex insurance workflows using natural language.

The Engineering Reality of the Guidewire PolicyCenter API

A custom MCP server is a self-hosted integration layer. While the open MCP standard provides a predictable way for models to discover tools, the reality of implementing it against Guidewire PolicyCenter's REST API is painful. Guidewire is built to manage massive, regulated insurance portfolios. Its API reflects that complexity.

If you decide to build a custom Guidewire MCP server, here are the specific integration challenges you will face:

The Job-Based Transaction Model In Guidewire, you do not simply POST a new policy. The system uses a transactional "Job" architecture. To write a policy, you must first create an Account, then create a Submission Job, apply modifiers, generate a quote, and finally bind and issue the job. An LLM has no inherent knowledge of this lifecycle. Your MCP server must expose discrete tools that guide the model through this exact sequence. If an LLM attempts to bind a policy before quoting it, the API will reject the request.

Out-of-Sequence (OOS) Conflicts and Preemptions Insurance policies are strictly temporal. When backdated changes are applied to a policy, Guidewire generates Out-of-Sequence (OOS) conflicts. If multiple jobs are running concurrently on the same policy, preemptions occur. Your MCP server must provide tools to detect, handle, and resolve these conflicts (e.g., guidewire_policy_center_jobs_oos_conflicts_resolve). Without these, an LLM will stall the moment a temporal conflict blocks a transaction.

Underwriting Issues and Blocking Points Guidewire enforces automated risk assessment. If a submission triggers a business rule - like a coverage limit being too high - an Underwriting (UW) Issue is generated, placing a block on the job. An AI agent cannot bypass this; it must fetch the UW issues, analyze them, and use specific authorization endpoints (guidewire_policy_center_jobs_uw_issues_approve) to clear the blocks before proceeding to bind.

Handling API Rate Limits Guidewire instances, especially those hosted on Guidewire Cloud, employ strict rate limiting to protect core system stability. Truto's infrastructure does not absorb, retry, or apply backoff logic to rate limit errors. When the upstream Guidewire API returns an HTTP 429 (Too Many Requests), Truto passes that error directly to the caller. However, Truto normalizes the upstream rate limit information into standard headers (ratelimit-limit, ratelimit-remaining, ratelimit-reset) per the IETF specification. Your AI agent or client architecture is fully responsible for reading these headers and implementing its own retry and backoff logic.

Step 1: Generate the Guidewire PolicyCenter MCP Server

Truto dynamically generates MCP tools based on Guidewire's API documentation and your specific integration configuration. Tools are never pre-built or cached; they are derived at runtime, ensuring the LLM only sees the endpoints and schemas that your specific Guidewire environment actually supports.

Each MCP server is scoped to a single connected Guidewire account. The server URL contains a cryptographic token that securely encapsulates the authentication state and configuration.

You can generate this server via the Truto UI or programmatically via the Truto API.

Method A: Via the Truto UI

  1. Log into your Truto dashboard and navigate to your Integrated Accounts.
  2. Select your connected Guidewire PolicyCenter account.
  3. Click the MCP Servers tab.
  4. Click Create MCP Server.
  5. Configure your server settings (assign a recognizable name, select allowed HTTP methods, filter by tags, or set an expiration date).
  6. Click Generate and copy the resulting MCP server URL.

Method B: Via the API

For platform builders deploying AI agents at scale, you can programmatically generate MCP servers. Send an authenticated POST request to the Truto API:

curl -X POST https://api.truto.one/integrated-account/{integrated_account_id}/mcp \
  -H "Authorization: Bearer YOUR_TRUTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Guidewire UW Agent MCP",
    "config": {
      "methods": ["read", "write", "custom"]
    }
  }'

The API returns a secure, ready-to-use URL:

{
  "id": "mcp_abc123",
  "name": "Guidewire UW Agent MCP",
  "config": { "methods": ["read", "write", "custom"] },
  "expires_at": null,
  "url": "https://api.truto.one/mcp/a1b2c3d4e5f6..."
}

This URL is fully self-contained. It handles the JSON-RPC 2.0 handshake and maps Claude's tool calls directly to Truto's proxy API layer, which negotiates the OAuth token lifecycle with Guidewire.

Step 2: Connect the MCP Server to Claude

Once you have your Truto MCP server URL, you must connect it to your Claude environment.

Method A: Via the Claude Desktop UI

If you are using Claude Desktop (or ChatGPT with custom connectors):

  1. Open Settings in Claude.
  2. Navigate to Integrations (or Connectors -> Add custom connector).
  3. Click Add MCP Server.
  4. Paste the Truto MCP URL generated in Step 1.
  5. Click Add or Save.

Claude will immediately ping the server, perform the initialization handshake, and list the available Guidewire tools.

Method B: Via the Configuration File

If you are running headless agents or prefer configuration as code, you can inject the server via Claude's claude_desktop_config.json file. Because Truto's MCP servers communicate over HTTP Server-Sent Events (SSE), you will use the official @modelcontextprotocol/server-sse wrapper.

{
  "mcpServers": {
    "guidewire_policycenter": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sse",
        "https://api.truto.one/mcp/a1b2c3d4e5f6..."
      ]
    }
  }
}

Restart Claude Desktop. The application will read the configuration, connect to the Truto endpoint, and expose the Guidewire PolicyCenter tools to the model context.

Guidewire PolicyCenter Hero Tools

Truto exposes the entirety of the Guidewire PolicyCenter REST API, but for AI agent workflows, certain endpoints drive the most value. Here are the core hero tools your agent will use.

Create a Policy Submission Job

Tool Name: create_a_guidewire_policy_center_job_submission

This tool initiates the policy creation lifecycle. It requires an existing Account ID, a base state (jurisdiction), an effective date, a producer code, and a product identifier. By default, it creates a draft "full application" submission.

"I need to start a new submission for account 'acct-8912'. The base state is California, effective date is October 1st, 2026, using the Commercial Auto product identifier 'CommAuto' and producer code 'PC-100'. Set this up as a Quick quote."

Quote a Job

Tool Name: guidewire_policy_center_jobs_quote

Once a job is fully configured with coverages and locations, this tool instructs Guidewire's rating engine to calculate premiums. The job must be in a state that permits quoting.

"Please run a quote on job ID 'job-554'. If it returns any validation errors or underwriting issues, list them out for me."

Bind and Issue a Policy

Tool Name: guidewire_policy_center_jobs_bind_and_issue

This tool executes the final step of the policy transaction, advancing a quoted job into a bound and issued policy. It finalizes the contract and activates coverage.

"The client has approved the quote for job 'job-554'. Go ahead and bind and issue the policy now."

Retrieve Underwriting Issues

Tool Name: list_all_guidewire_policy_center_jobs_uw_issues

When quoting or binding, Guidewire may generate UW issues if the risk profile violates business rules. This tool retrieves all active underwriting issues blocking a specific job.

"Fetch all underwriting issues currently blocking job 'job-554'. I need to know the issue types and their exact blocking points."

Approve an Underwriting Issue

Tool Name: guidewire_policy_center_jobs_uw_issues_approve

If the AI agent (or the human interacting with it) has sufficient authority, this tool approves a specific UW issue, unblocking the job. It accepts optional overrides for approval duration or monetary thresholds.

"Approve the underwriting issue 'uwi-992' on job 'job-554'. Add a note saying 'Reviewed loss history, risk is acceptable within current authority limits'."

Retrieve Loss History

Tool Name: list_all_guidewire_policy_center_policies_loss_history

This tool fetches the prior loss history attached to a specific policy. It returns summary fields like the number of prior losses and total incurred amounts, which are critical for underwriting decisions.

"Pull the loss history for policy 'pol-10293'. I need the total incurred amount and the total number of prior claims over the last 3 years."

Resolve Out-of-Sequence Conflicts

Tool Name: create_a_guidewire_policy_center_jobs_oos_conflicts_resolve

When backdated transactions conflict with newer data, this tool resolves the OOS conflicts for a job, forcing the system to reconcile the base policy period with the proposed changes.

"Job 'job-771' is throwing an out-of-sequence conflict because of the backdated endorsement. Please run the OOS conflict resolution tool so we can proceed with quoting."

See the full Guidewire PolicyCenter tool inventory and schema definitions here.

Workflows in Action

With these tools loaded into Claude, you can execute complex, multi-step insurance operations. Because Truto standardizes the JSON-RPC interface, Claude understands exactly what data to pass to which endpoint.

Scenario 1: End-to-End Submission and Quote

An underwriter wants to generate a quick quote for an existing customer.

"Start a new Commercial Property submission for account 'acct-4432'. The base state is NY, effective today, using producer code 'NY-PROD-1'. Once the draft is created, immediately request a quote."

How the agent executes this:

sequenceDiagram
  participant User
  participant Claude as Claude (AI Agent)
  participant Truto as Truto MCP Server
  participant Guidewire as Guidewire PolicyCenter

  User->>Claude: "Start a new Commercial Property submission..."
  Claude->>Truto: call create_a_guidewire_policy_center_job_submission
  Truto->>Guidewire: POST /rest/job/v1/submissions
  Guidewire-->>Truto: 201 Created (Job ID: job-882)
  Truto-->>Claude: Returns job details
  Claude->>Truto: call guidewire_policy_center_jobs_quote
  Truto->>Guidewire: POST /rest/job/v1/jobs/job-882/quote
  Guidewire-->>Truto: 200 OK (Quoted state)
  Truto-->>Claude: Returns quote financials
  Claude-->>User: "Submission created (job-882) and successfully quoted. The total premium is $4,200."

Scenario 2: Triaging and Approving Underwriting Blocks

A senior underwriter needs the agent to clear a blocked policy transaction.

"Job 'job-910' failed to bind. Check what UW issues are blocking it. If it's just a 'Manager Review' requirement and the loss history is clean, approve the issue and bind the policy."

How the agent executes this:

sequenceDiagram
  participant User
  participant Claude as Claude (AI Agent)
  participant Truto as Truto MCP Server
  participant Guidewire as Guidewire PolicyCenter

  User->>Claude: "Check UW issues and bind job-910..."
  Claude->>Truto: call list_all_guidewire_policy_center_jobs_uw_issues
  Truto->>Guidewire: GET /rest/job/v1/jobs/job-910/uw-issues
  Guidewire-->>Truto: Returns issue 'uwi-404' (Manager Review)
  Truto-->>Claude: Returns UW issues
  Claude->>Truto: call list_all_guidewire_policy_center_policies_loss_history
  Truto->>Guidewire: GET /rest/policy/v1/policies/{policyId}/loss-history
  Guidewire-->>Truto: Returns clean loss history ($0 incurred)
  Truto-->>Claude: Returns loss data
  Claude->>Truto: call guidewire_policy_center_jobs_uw_issues_approve
  Truto->>Guidewire: POST /rest/job/v1/jobs/job-910/uw-issues/uwi-404/approve
  Guidewire-->>Truto: 200 OK (Approved)
  Truto-->>Claude: Returns approval confirmation
  Claude->>Truto: call guidewire_policy_center_jobs_bind_and_issue
  Truto->>Guidewire: POST /rest/job/v1/jobs/job-910/bind-and-issue
  Guidewire-->>Truto: 200 OK (Bound)
  Truto-->>Claude: Returns bound policy info
  Claude-->>User: "Loss history was clean. I approved UW issue uwi-404 and successfully bound the policy."

Security and Access Control

Exposing a core insurance ledger like Guidewire to an LLM requires strict governance. Truto provides multiple security controls when creating your MCP server URL:

  • Method Filtering: Use config.methods to restrict the LLM to specific HTTP methods. You can limit an agent to ["read"] (only GET requests) to ensure it can audit policies but cannot bind or modify them.
  • Tag Filtering: Use config.tags to limit the server's scope to specific API domains. For example, pass ["billing"] to expose only payment plans and invoices, hiding underwriting and claims data.
  • Temporary Access: Set an expires_at ISO datetime when generating the server. Once the timestamp passes, the server URL automatically self-destructs, instantly revoking the LLM's access.
  • Double Authentication: Enable require_api_token_auth. By default, possessing the MCP URL grants access. With this flag enabled, the caller must also provide a valid Truto API token in the Authorization header, ensuring that even if the URL leaks, your infrastructure remains secure.

Build Advanced Insurance Agents Today

Integrating Claude with Guidewire PolicyCenter unlocks immense operational efficiency. Instead of forcing underwriters to manually click through dozens of screens to resolve OOS conflicts, hunt down UW issues, or piece together loss histories, you can orchestrate the entire lifecycle via natural language.

By leveraging Truto's managed MCP architecture, you bypass the massive engineering lift of building and securing custom integrations. You don't have to worry about token lifecycles, translating Swagger docs into JSON-RPC, or managing edge infrastructure.

Ready to give your AI agents secure, real-time access to Guidewire PolicyCenter?

FAQ

How does Truto handle Guidewire PolicyCenter rate limits?
Truto does not absorb, retry, or apply backoff on rate limit errors. When Guidewire returns an HTTP 429, Truto passes the error to the caller, normalizing the headers into standard IETF format (ratelimit-limit, ratelimit-remaining, ratelimit-reset). The caller is responsible for implementing retry logic.
Can I restrict Claude to read-only access in Guidewire?
Yes. When generating the MCP server via Truto, you can use method filtering to restrict the server to 'read' operations only, ensuring the LLM cannot create, modify, or bind policies.
Does Truto support custom fields in Guidewire PolicyCenter?
Yes. Because Truto delegates MCP tool execution directly to its proxy API handlers, any custom fields or resources configured in your specific Guidewire instance are natively accessible by the LLM.
What authentication is required to connect Claude to the MCP server?
By default, the Truto MCP URL contains a secure cryptographic token that acts as authentication. For higher security, you can enable 'require_api_token_auth' which forces the client to also provide a valid Truto API token.

More from our Blog