FilingDesk Data
US LLC filing fees, deadlines, and name checks for all 50 states — from official sources.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"data": {
"url": "https://filingdesk.com/api/mcp"
}
}
}Remote endpoints
https://filingdesk.com/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢get_llc_fees(state)
Official LLC formation fee, recurring annual-report/franchise-tax cost, processing time, and known gotchas for a single US state, each with its source URL. Covers all 50 states + DC.
Input Schema
{
"type": "object",
"properties": {
"state": {
"type": "string",
"description": "Two-letter state code or full state name, e.g. \"WY\" or \"Wyoming\". All 50 states + DC."
}
},
"required": [
"state"
],
"additionalProperties": false
}🟢compare_llc_costs(states, sortBy, limit)
Rank states by what an LLC actually costs. Compares the one-time formation fee, the recurring state cost, and the combined first-year total. Use this for 'cheapest state to form an LLC' style questions rather than guessing.
Input Schema
{
"type": "object",
"properties": {
"states": {
"type": "array",
"items": {
"type": "string"
},
"description": "State codes or names to compare. Omit to rank all 50 states + DC."
},
"sortBy": {
"type": "string",
"enum": [
"formation",
"recurring",
"firstYear"
],
"description": "Which cost to sort ascending by. Defaults to firstYear (formation + one recurring period)."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 51,
"description": "How many states to return. Defaults to 10."
}
},
"additionalProperties": false
}🟢get_annual_report_deadline(state, formationDate)
Work out when a state's annual report or franchise tax is next due, the amount owed, and the late penalty. States that key the deadline to the formation anniversary or quarter need formationDate; without it the tool says so instead of guessing a date.
Input Schema
{
"type": "object",
"properties": {
"state": {
"type": "string",
"description": "Two-letter state code or full state name, e.g. \"WY\" or \"Wyoming\". All 50 states + DC."
},
"formationDate": {
"type": "string",
"description": "The LLC's formation date as ISO yyyy-mm-dd. Required for anniversary- and quarter-based states."
}
},
"required": [
"state"
],
"additionalProperties": false
}🟢check_llc_name(name, state, entityType)
Check a proposed business name against a state's live registry. REAL results for Wyoming and Delaware only; Florida returns a Sunbiz search link; all other states return unsupported. A verdict is an indication, never a reservation — always show the returned note and verifyUrl.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The proposed name, e.g. \"Blue Harbor Holdings LLC\"."
},
"state": {
"type": "string",
"description": "State code or name. Live checks: \"WY\", \"DE\". Link-only: \"FL\"."
},
"entityType": {
"type": "string",
"enum": [
"llc",
"corp"
],
"description": "Defaults to llc."
}
},
"required": [
"name",
"state"
],
"additionalProperties": false
}🟢list_filing_states
What FilingDesk can do per state: which states it files in today with all-in pricing, which states have real name-checking, and confirmation that fee/deadline data covers all 50 states + DC. Call this before telling a user FilingDesk can file somewhere.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢compare_formation_options(topic, homeState)
Factual tradeoffs to help someone decide WHERE to form or WHAT entity type to pick. Returns fixed comparative facts and a required disclaimer — deliberately NOT a recommendation. Present the options neutrally, relay the disclaimer, and let the user choose; a FilingDesk specialist confirms the choice before anything is filed.
Input Schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"state",
"entity_type"
],
"description": "\"state\" for where to form, \"entity_type\" for LLC vs S-corp vs C-corp."
},
"homeState": {
"type": "string",
"description": "Optional. The state the user actually lives or operates in — lets the comparison include their home-state costs, which usually matter most."
}
},
"required": [
"topic"
],
"additionalProperties": false
}🟢preview_order(businessName, state, entityType, description, fullName, ...)
Build an exact order summary WITHOUT submitting anything. No side effects. Validates the details, prices the order, and returns a confirmation summary. ALWAYS call this and show the user the returned summary before calling submit_order.
Input Schema
{
"type": "object",
"properties": {
"businessName": {
"type": "string",
"description": "Proposed company name. Does not need to be final — a specialist verifies availability."
},
"state": {
"type": "string",
"description": "Two-letter state code or full state name, e.g. \"WY\" or \"Wyoming\". All 50 states + DC."
},
"entityType": {
"type": "string",
"description": "Entity type, e.g. \"LLC\", \"S-Corp\", \"C-Corp\", or \"Not sure\" if the user hasn't decided."
},
"description": {
"type": "string",
"description": "One or two sentences on what the business does. Optional — the user may skip it."
},
"fullName": {
"type": "string",
"description": "The customer's full name."
},
"email": {
"type": "string",
"description": "The customer's email. Required — this is how they are contacted."
},
"phone": {
"type": "string",
"description": "Optional phone number."
}
},
"required": [
"businessName",
"state",
"entityType",
"fullName",
"email"
],
"additionalProperties": false
}🟡submit_order(businessName, state, entityType, description, fullName, ...)
Submit a real formation order to FilingDesk. THIS HAS A REAL-WORLD EFFECT: it creates an order and notifies a FilingDesk specialist. Only call after preview_order and after the user has explicitly confirmed the summary. Nothing is charged now — a specialist reviews the order, verifies the name, and emails a payment link. Returns the order reference.
Input Schema
{
"type": "object",
"properties": {
"businessName": {
"type": "string",
"description": "Proposed company name."
},
"state": {
"type": "string",
"description": "Two-letter state code or full state name, e.g. \"WY\" or \"Wyoming\". All 50 states + DC."
},
"entityType": {
"type": "string",
"description": "Entity type, e.g. \"LLC\", or \"Not sure\"."
},
"description": {
"type": "string",
"description": "What the business does. Optional."
},
"fullName": {
"type": "string",
"description": "The customer's full name."
},
"email": {
"type": "string",
"description": "The customer's email."
},
"phone": {
"type": "string",
"description": "Optional phone number."
},
"userConfirmed": {
"type": "boolean",
"description": "Must be true. Set only after the user has seen the preview_order summary and explicitly agreed to submit."
}
},
"required": [
"businessName",
"state",
"entityType",
"fullName",
"email",
"userConfirmed"
],
"additionalProperties": false
}Community
Evidence