From guidewire-pack
Installs Guidewire Studio, configures OAuth2 auth for Cloud APIs via Guidewire Hub, and sets up JWT tokens for PolicyCenter, ClaimCenter, BillingCenter.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin guidewire-packThis skill is limited to using the following tools:
Set up Guidewire InsuranceSuite development: install Guidewire Studio (IntelliJ-based), configure Cloud API OAuth2 authentication via Guidewire Hub, and obtain JWT tokens for PolicyCenter, ClaimCenter, and BillingCenter APIs.
Guides Guidewire security implementation: OAuth2 JWTs, GCC API roles, Gosu secure coding, PII encryption, SAML SSO for Jutro. Activate on security queries.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Set up Guidewire InsuranceSuite development: install Guidewire Studio (IntelliJ-based), configure Cloud API OAuth2 authentication via Guidewire Hub, and obtain JWT tokens for PolicyCenter, ClaimCenter, and BillingCenter APIs.
https://gcc.guidewire.comGCC > Identity & Access > Applications > Register Application
Service Application (backend): OAuth2 Client Credentials flow
Browser Application (Jutro): OAuth2 Authorization Code flow
Record: client_id and client_secret
# .env (NEVER commit)
GW_AUTH_URL=https://guidewire-hub.guidewire.com/oauth/token
GW_CLIENT_ID=your_client_id
GW_CLIENT_SECRET=your_client_secret
GW_PC_URL=https://your-tenant.guidewire.com/pc/rest
GW_CC_URL=https://your-tenant.guidewire.com/cc/rest
GW_BC_URL=https://your-tenant.guidewire.com/bc/rest
async function getGuidewireToken(): Promise<string> {
const res = await fetch(process.env.GW_AUTH_URL!, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
grant_type: 'client_credentials',
client_id: process.env.GW_CLIENT_ID!,
client_secret: process.env.GW_CLIENT_SECRET!,
scope: 'pc.service cc.service bc.service',
}),
});
const { access_token } = await res.json();
return access_token;
}
TOKEN=$(curl -s -X POST "$GW_AUTH_URL" \
-d "grant_type=client_credentials&client_id=$GW_CLIENT_ID&client_secret=$GW_CLIENT_SECRET" \
| jq -r '.access_token')
curl -s -H "Authorization: Bearer $TOKEN" \
"$GW_PC_URL/account/v1/accounts?pageSize=1" | jq '.count'
| Error | Cause | Solution |
|---|---|---|
invalid_client | Wrong credentials | Verify client_id/secret in GCC |
invalid_scope | Unauthorized scope | Check API role assignments |
401 Unauthorized | Expired token | Refresh (tokens are short-lived) |
403 Forbidden | Missing API role | Assign roles in GCC > Identity & Access |
PKIX path building failed | SSL cert issue | Import Guidewire CA certificates |
For detailed implementation, see: implementation guide
After auth, proceed to guidewire-hello-world for your first API calls.