Developer MCP and REST API to form a Wyoming LLC or Marshall Islands DAO LLC.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancel a formation. Only possible from draft or pending_owner_confirmation status. Irreversible.
Formation ID to cancel (op_fm_* format). The formation must be in draft or pending_owner_confirmation status.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http offshoreproz-agent-api https://api.offshoreproz.com/mcp
Cancel a formation. Only possible from draft or pending_owner_confirmation status. Irreversible.
| Argument | Type | Description |
|---|---|---|
| formation_id* | string | Formation ID to cancel (op_fm_* format). The formation must be in draft or pending_owner_confirmation status. |
{
"type": "object",
"required": [
"formation_id"
],
"properties": {
"formation_id": {
"type": "string",
"description": "Formation ID to cancel (op_fm_* format). The formation must be in draft or pending_owner_confirmation status."
}
}
}Start forming a company. beneficial_owner = human custodian (authorized representative). For AI-agent formations, also pass owner_type='ai_agent' and agent_context.agent_id. Requires estimate_token from offshoreproz_estimate_cost AND user_confirmed_cost_and_process=true (user must have seen cost, timeline, KYC, payment, signature steps, and the not-legal-advice notice).
| Argument | Type | Description |
|---|---|---|
| obtain_ein | boolean | Whether to obtain an EIN (Employer Identification Number) from the IRS. Recommended for US banking. Adds ~$99 and 2-4 extra days. |
| owner_type | string | human (default) or ai_agent. For AI-initiated formations, set ai_agent and populate agent_context. |
| company_name* | string | Desired company name including entity suffix (e.g. 'Acme Trading LLC'). Availability is checked during formation. |
| jurisdiction* | string | Jurisdiction code where the company will be formed (e.g. WY, MI). Case-insensitive. |
| agent_context | object | AI entity metadata. Required when owner_type='ai_agent'. agent_id uniquely identifies the AI agent initiating or owning this formation. |
| estimate_token* | string | Short-lived cost-estimate token (est_*) returned by offshoreproz_estimate_cost. Required to confirm the user has seen the pricing. |
| beneficial_owner* | object | Human custodian / authorized representative. Always a real person — subject to KYC and DocuSeal signing. |
| user_confirmed_cost_and_process* | boolean | Must be true. Set this only after the user has explicitly acknowledged cost, timeline, KYC requirements, payment, DocuSeal signature, and the not-legal-advice notice. |
Estimate the all-in cost for a jurisdiction. MUST be called before create_formation; returns an estimate_token required to create.
| Argument | Type | Description |
|---|---|---|
| obtain_ein | boolean | Whether to include EIN (Employer Identification Number) obtainment in the estimate. Adds ~$99 USD and 2-4 extra business days. Defaults to true. |
| jurisdiction* | string | Jurisdiction code to estimate for (e.g. WY, MI). Case-insensitive. |
{
"type": "object",
"required": [
"jurisdiction"
],
"properties": {
"obtain_ein": {
"type": "boolean",
"description": "Whether to include EIN (Employer Identification Number) obtainment in the estimate. Adds ~$99 USD and 2-4 extra business days. Defaults to true."
},
"jurisdiction": {
"type": "string",
"description": "Jurisdiction code to estimate for (e.g. WY, MI). Case-insensitive."
}
}
}Return the full audit trail / event log for a formation. Shows every status change, portal sync, webhooks, and notes. Useful for debugging or understanding where a formation is in the pipeline.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max events to return (default 50, max 500). Events are ordered newest-first. |
| formation_id* | string | Formation ID whose audit trail to retrieve (op_fm_* format). |
{
"type": "object",
"required": [
"formation_id"
],
"properties": {
"limit": {
"type": "integer",
"description": "Max events to return (default 50, max 500). Events are ordered newest-first."
},
"formation_id": {
"type": "string",
"description": "Formation ID whose audit trail to retrieve (op_fm_* format)."
}
}
}Get the current status and next action of a formation.
| Argument | Type | Description |
|---|---|---|
| formation_id* | string | Formation ID to query (op_fm_* format). Returned by offshoreproz_create_formation or offshoreproz_list_formations. |
{
"type": "object",
"required": [
"formation_id"
],
"properties": {
"formation_id": {
"type": "string",
"description": "Formation ID to query (op_fm_* format). Returned by offshoreproz_create_formation or offshoreproz_list_formations."
}
}
}Return the required fields to form a company in a given jurisdiction.
| Argument | Type | Description |
|---|---|---|
| jurisdiction_code* | string | Short jurisdiction code to look up (e.g. WY for Wyoming, MI for Marshall Islands). Use offshoreproz_list_jurisdictions to discover available codes. |
{
"type": "object",
"required": [
"jurisdiction_code"
],
"properties": {
"jurisdiction_code": {
"type": "string",
"description": "Short jurisdiction code to look up (e.g. WY for Wyoming, MI for Marshall Islands). Use offshoreproz_list_jurisdictions to discover available codes."
}
}
}List documents available for a formation.
| Argument | Type | Description |
|---|---|---|
| formation_id* | string | Formation ID whose documents to list (op_fm_* format). |
{
"type": "object",
"required": [
"formation_id"
],
"properties": {
"formation_id": {
"type": "string",
"description": "Formation ID whose documents to list (op_fm_* format)."
}
}
}List all formations for the authenticated API key. Returns current status, jurisdiction, and next required actions.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max results to return (default 20, max 100) |
| status | string | Filter by status (e.g. pending_owner_confirmation, kyc_pending, filed, complete, failed, cancelled) |
| jurisdiction | string | Filter by jurisdiction code (WY, MI, etc.) |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "Max results to return (default 20, max 100)"
},
"status": {
"type": "string",
"description": "Filter by status (e.g. pending_owner_confirmation, kyc_pending, filed, complete, failed, cancelled)"
},
"jurisdiction": {
"type": "string",
"description": "Filter by jurisdiction code (WY, MI, etc.)"
}
}
}List all available company-formation jurisdictions with pricing and timelines. No sensitive data. Call this first.
| Argument | Type | Description |
|---|---|---|
| include_coming_soon | boolean | When true, also returns jurisdictions that are not yet accepting formations (status: coming_soon). Defaults to false. |
{
"type": "object",
"properties": {
"include_coming_soon": {
"type": "boolean",
"description": "When true, also returns jurisdictions that are not yet accepting formations (status: coming_soon). Defaults to false."
}
}
}List all registered webhook endpoints for the authenticated API key, including their event subscriptions and recent delivery stats.
No arguments.
{
"type": "object",
"properties": {}
}Create a free test API key instantly — no portal login required. Returns op_test_* key you can use immediately in this session. For production (op_live_*), complete email OTP verification via the portal. Call this first if you have no API key yet.
| Argument | Type | Description |
|---|---|---|
| name* | string | Label for this key (e.g. 'my-agent-v1'). Helps identify it in the portal. |
| email* | string | Email address — used for formation notifications and live key OTP verification. |
{
"type": "object",
"required": [
"name",
"email"
],
"properties": {
"name": {
"type": "string",
"description": "Label for this key (e.g. 'my-agent-v1'). Helps identify it in the portal."
},
"email": {
"type": "string",
"description": "Email address — used for formation notifications and live key OTP verification."
}
}
}Register a webhook URL to receive real-time formation events (formation.created, formation.status_changed, formation.complete, etc.). Returns a signing secret (whsec_*) — store it to verify incoming payloads. Use '*' to receive all events.
| Argument | Type | Description |
|---|---|---|
| url* | string | HTTPS URL that will receive POST requests for subscribed events. |
| events* | array | Event patterns to subscribe to. Use '*' for all events, 'formation.*' for all formation events, or specific types like 'formation.complete' or 'formation.status_changed'. |
| description | string | Optional human-readable label for this webhook endpoint (e.g. 'Production webhook'). |
{
"type": "object",
"required": [
"url",
"events"
],
"properties": {
"url": {
"type": "string",
"description": "HTTPS URL that will receive POST requests for subscribed events."
},
"events": {
"type": "array",
"items": {
"type": "string"
},
"description": "Event patterns to subscribe to. Use '*' for all events, 'formation.*' for all formation events, or specific types like 'formation.complete' or 'formation.status_changed'."
},
"description": {
"type": "string",
"description": "Optional human-readable label for this webhook endpoint (e.g. 'Production webhook')."
}
}
}Reissue an expired or lost action link for the current formation step. The old link is invalidated.
| Argument | Type | Description |
|---|---|---|
| formation_id* | string | Formation ID for which to reissue the action link (op_fm_* format). The previous link is immediately invalidated. |
{
"type": "object",
"required": [
"formation_id"
],
"properties": {
"formation_id": {
"type": "string",
"description": "Formation ID for which to reissue the action link (op_fm_* format). The previous link is immediately invalidated."
}
}
}Retry a formation that is in 'failed' or 'action_required' status. Resets it to pending_owner_confirmation so the owner can restart the confirmation flow.
| Argument | Type | Description |
|---|---|---|
| formation_id* | string | Formation ID to retry (op_fm_* format). Must be in 'failed' or 'action_required' status. |
{
"type": "object",
"required": [
"formation_id"
],
"properties": {
"formation_id": {
"type": "string",
"description": "Formation ID to retry (op_fm_* format). Must be in 'failed' or 'action_required' status."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 8, 2026.
{
"type": "object",
"required": [
"jurisdiction",
"company_name",
"estimate_token",
"user_confirmed_cost_and_process",
"beneficial_owner"
],
"properties": {
"obtain_ein": {
"type": "boolean",
"description": "Whether to obtain an EIN (Employer Identification Number) from the IRS. Recommended for US banking. Adds ~$99 and 2-4 extra days."
},
"owner_type": {
"enum": [
"human",
"ai_agent"
],
"type": "string",
"description": "human (default) or ai_agent. For AI-initiated formations, set ai_agent and populate agent_context."
},
"company_name": {
"type": "string",
"description": "Desired company name including entity suffix (e.g. 'Acme Trading LLC'). Availability is checked during formation."
},
"jurisdiction": {
"type": "string",
"description": "Jurisdiction code where the company will be formed (e.g. WY, MI). Case-insensitive."
},
"agent_context": {
"type": "object",
"properties": {
"agent_id": {
"type": "string",
"description": "Unique identifier of the AI agent (e.g. claude-3-opus, gpt-4o, my-custom-agent-v1)"
},
"platform": {
"type": "string",
"description": "Platform or orchestration system the agent runs on (e.g. Claude, OpenAI Assistants, LangChain)."
},
"agent_name": {
"type": "string",
"description": "Human-readable name of the AI agent."
},
"agent_purpose": {
"type": "string",
"description": "Brief description of why this agent is forming the company."
}
},
"description": "AI entity metadata. Required when owner_type='ai_agent'. agent_id uniquely identifies the AI agent initiating or owning this formation."
},
"estimate_token": {
"type": "string",
"description": "Short-lived cost-estimate token (est_*) returned by offshoreproz_estimate_cost. Required to confirm the user has seen the pricing."
},
"beneficial_owner": {
"type": "object",
"required": [
"full_name",
"email",
"address"
],
"properties": {
"email": {
"type": "string",
"description": "Email address for KYC verification link, DocuSeal signing invitation, and formation notifications."
},
"address": {
"type": "object",
"required": [
"street",
"city",
"country"
],
"properties": {
"city": {
"type": "string",
"description": "City or municipality."
},
"street": {
"type": "string",
"description": "Street address including number and street name."
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code (e.g. BR, US, GB). Full names like 'Brasil' are also accepted and normalized."
}
},
"description": "Residential or business address of the beneficial owner."
},
"full_name": {
"type": "string",
"description": "Full legal name of the beneficial owner as it appears on government ID."
}
},
"description": "Human custodian / authorized representative. Always a real person — subject to KYC and DocuSeal signing."
},
"user_confirmed_cost_and_process": {
"type": "boolean",
"description": "Must be true. Set this only after the user has explicitly acknowledged cost, timeline, KYC requirements, payment, DocuSeal signature, and the not-legal-advice notice."
}
}
}