MCP server & tools
Add Figgshield as an MCP connector in Claude or the Claude Code CLI, the six tools (generate_image, generate_video, get_generation, list_library, get_usage, get_model_pricing), example prompts, config JSON and OAuth discovery.
View as MarkdownFiggshield is a remote MCP server — a single Streamable HTTP endpoint that Claude and the Claude Code CLI call to generate video and images. It implements the MCP spec 2025-11-25 (with 2025-06-18 compatibility).
| Item | Value |
|---|---|
| MCP endpoint | https://api.figgshield.ai/mcp |
| Transport | Streamable HTTP (POST / GET / DELETE) |
| Auth | OAuth 2.1 (browser sign-in) or Authorization: Bearer figg_... API key |
| Models | Nano Banana 2 (image); Kling 3, Kling 3 Turbo, Seedance 2 (video) — see Models |
Add Figgshield to Claude
Claude Desktop or claude.ai
- Open Settings → Connectors.
- Choose Add custom connector.
- Paste the endpoint
https://api.figgshield.ai/mcpand save. - Claude opens a browser sign-in. Sign in with Google, Apple or GitHub and approve the scopes
figgshield:readandfiggshield:write.
The connector is registered automatically (Dynamic Client Registration), so there is nothing to configure by hand. Tokens refresh on their own; you will not be asked to sign in again unless you revoke access.
Claude Code CLI
claude mcp add --transport http figgshield https://api.figgshield.ai/mcp
claude mcp login figgshield
claude mcp login runs a browser sign-in (loopback PKCE) and stores the token. Full details, and the API-key alternative, are in Claude Code CLI.
Config JSON
Clients that read an MCP config file (for example claude_desktop_config.json) can declare Figgshield directly:
{
"mcpServers": {
"figgshield": {
"type": "http",
"url": "https://api.figgshield.ai/mcp"
}
}
}
On first use the client runs the OAuth flow above. To use an API key instead of the browser flow, add a header:
{
"mcpServers": {
"figgshield": {
"type": "http",
"url": "https://api.figgshield.ai/mcp",
"headers": { "Authorization": "Bearer figg_your_api_key_here" }
}
}
}
Tools
Figgshield exposes six tools. The two generate tools spend credits (with auto top-up if enabled) and state the model they used; the other four are read-only. Credit costs are per option and are not fixed constants — check them live with get_model_pricing, on the pricing page, or in GET /api/models/.
generate_image
Runs Nano Banana 2. The credit cost depends on the resolution — quote it first with get_model_pricing.
| Param | Type | Notes |
|---|---|---|
prompt | string | What to generate. Required. |
resolution | string | Optional. "1K", "2K" or "4K" (default "1K"). Higher resolutions cost more. |
Returns { generation_uuid, model, status, output_url?, credits_charged }.
generate_video
Runs a video model — Kling 3 by default, with Kling 3 Turbo and Seedance 2 also available. The credit cost depends on the model, resolution, duration and audio, so it scales with the clip: a longer clip and audio cost more. Quote it first with get_model_pricing.
| Param | Type | Notes |
|---|---|---|
prompt | string | What to generate. Required. |
duration | integer | Optional. 5 or 10 seconds (default 5). |
resolution | string | Optional. Allowed values depend on the model (e.g. Kling 3: "720p", "1080p", "4k"; Seedance 2: "480p", "720p", "1080p"). |
audio | boolean | Optional. Default false; where the model supports audio, enabling it increases the cost. |
Returns { generation_uuid, model, status, output_url?, credits_charged }.
get_generation
Polls a job to completion. Read-only.
| Param | Type | Notes |
|---|---|---|
generation_uuid | string | The id returned by a generate tool. Required. |
Returns { status, output_url?, error? }. status is queued, running, succeeded or failed.
list_library
Recent generations, newest first. Read-only.
| Param | Type | Notes |
|---|---|---|
limit | integer | Optional. How many to return. |
kind | string | Optional. "video" or "image" to filter. |
Returns [{ uuid, model, kind, prompt, status, output_url, created_at }].
Output links expire. The
output_urlreturned byget_generationandlist_librarypoints to media Figgshield hosts on a content-delivery link (cdn.figgshield.ai) for up to 7 days after a job finishes, then permanently deletes; once deleted, it can’t be retrieved. Each link is an unguessable, unlisted address — anyone you share it with can open the media until it expires. Your MCP client receives the file and is responsible for keeping it long-term, so save outputs you want.list_librarylists your recent generation records; the media behind entries older than 7 days is gone. Figgshield keeps no durable media library — the generation history stores only metadata (prompt, model, status, timestamps).
get_usage
Current plan and credit balance. Read-only. Returns { plan, credits: { balance, granted_this_period, used_this_period }, jobs }.
get_model_pricing
Live per-generation credit costs for every model. Read-only; spends nothing. Use it to quote a job before you run it, or to show a price list.
| Param | Type | Notes |
|---|---|---|
model | string | Optional. A model slug (e.g. "kling-3") to price just that model; omit for the whole catalogue. |
Returns a list of models, each with an availability status — "available" or "coming_soon" — and a pricing array: one { params, credits } row per billing-relevant option combination (images per resolution; video per resolution, duration and audio). This is the same per-option pricing the GET /api/models/ endpoint carries and the live pricing page renders.
Example prompts
Once connected, ask Claude in plain language — it picks the tool and the model:
Generate a 5-second video of a quiet harbour at dawn, mist lifting off the water.
Make a 10-second clip with audio of rain on a city street at night.
Create a 2K image of a paper boat on a still pond, top-down.
What does a 1080p 10-second video with audio cost?
Show my last five generations.
How many credits do I have left this month?
Credit checks and errors
Each generate tool runs a pre-flight credit check. If your balance cannot cover the job it surfaces as a tool error: insufficient_credits (top up or enable auto top-up) or subscription_required (no active plan). With auto top-up enabled, the top-up is attempted first. Failed generations are refunded automatically.
OAuth discovery
Figgshield is an OAuth 2.1 resource server with a co-hosted authorization server; PKCE (S256) is required and Google/Apple/GitHub are the upstream identity providers. An unauthenticated /mcp request returns 401 with a WWW-Authenticate: Bearer resource_metadata="..." header pointing at the protected-resource metadata. Clients discover the rest from these documents:
| Document | URL |
|---|---|
| Protected resource metadata (RFC 9728) | https://api.figgshield.ai/.well-known/oauth-protected-resource |
| Authorization server metadata (RFC 8414) | https://api.figgshield.ai/.well-known/oauth-authorization-server |
| OpenID configuration | https://api.figgshield.ai/.well-known/openid-configuration |
| JWKS | https://api.figgshield.ai/jwks.json |
Claude performs this discovery for you. See Authentication for the token flow and the API-key alternative.