# OpenFile (remote · mcp.joinopenfile.com)

Form U.S. companies and file U.S. trademarks. The agent prepares the filing and the owner signs it.

- Trust score: 66/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `mcp.joinopenfile.com`: 66/100 (this document), [markdown](https://verifymcp.io/servers/com-joinopenfile-openfile/mcp.md), [page](https://verifymcp.io/servers/com-joinopenfile-openfile/mcp)

## Channel facts

- Endpoint: `https://mcp.joinopenfile.com`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 60/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (create_application).
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 81/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 5068 tokens (~58/item across 87 items; 27 tools + 60 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 27 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 29 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 40/100
  - Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28.

## Install

### How do I install the OpenFile MCP server?

OpenFile is a hosted endpoint at https://mcp.joinopenfile.com/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-joinopenfile-openfile 'https://mcp.joinopenfile.com/'
```

### Cursor

```json
{
  "mcpServers": {
    "com-joinopenfile-openfile": {
      "url": "https://mcp.joinopenfile.com/"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-joinopenfile-openfile": {
      "type": "http",
      "url": "https://mcp.joinopenfile.com/"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-joinopenfile-openfile]
url = "https://mcp.joinopenfile.com/"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-joinopenfile-openfile": {
      "type": "remote",
      "url": "https://mcp.joinopenfile.com/",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-joinopenfile-openfile --url 'https://mcp.joinopenfile.com/' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-joinopenfile-openfile:
    url: "https://mcp.joinopenfile.com/"
```

### Netclaw

```json
{
  "McpServers": {
    "com-joinopenfile-openfile": {
      "Transport": "http",
      "Url": "https://mcp.joinopenfile.com/"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-joinopenfile-openfile -t streamable-http -u 'https://mcp.joinopenfile.com/'
```

### Other

```json
{
  "mcpServers": {
    "com-joinopenfile-openfile": {
      "type": "http",
      "url": "https://mcp.joinopenfile.com/"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 65, 0)

- [functional] New resource “OpenFile with Bolt”
- [functional] New resource “OpenFile with Copilot Studio”
- [functional] New resource “OpenFile with CrewAI”
- [functional] New resource “OpenFile with Devin Desktop”
- [functional] New resource “OpenFile with Gumloop”
- [functional] New resource “OpenFile with Langflow”
- [functional] New resource “OpenFile with Lovable”
- [functional] New resource “OpenFile with Replit”
- [functional] New resource “OpenFile with v0”

### 2026-11-02 (score 65, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-11-01 (score 64)

First indexed and scored.

## MCP tools (27)

### `search_docs` (~59 tokens)

Search docs

Searches OpenFile's docs and returns the best sections with a link to each. Use it when you're not sure how something works.

Input parameters:

- `q` (string, required): What to look for, like `registered agent` or `how do I change an application`.

### `read_doc` (~46 tokens)

Read doc

One docs page as Markdown, by its slug.

Input parameters:

- `slug` (string): The page, like `quickstart` or `api/create-formation`. Leave it out for the overview.

### `plan_task` (~125 tokens)

Plan task

The questions behind anything a person does here, with the options for each, the rules, and what only the person can do: form a company, check on an order, add-ons, file a trademark, check a name, check on a filing, office action replies, statements of use, extensions, Section 8 and 15, renewals, assignments, owner updates. task: a key or the person's words; leave it out for the list. Changes nothing.

Input parameters:

- `task` (string): A task key, or the person's own words, like `renew my trademark`.

### `get_pricing` (~21 tokens)

Get pricing

Formation packages, the trademark package, and USPTO fees.

### `quote_application` (~60 tokens)

Quote application

Every fee for a number of classes, with the government's marked. Saves nothing.

Input parameters:

- `classes` (integer, required): How many classes.
- `free_form_classes` (integer): How many of them use wording outside the class list, which costs a USPTO surcharge.

### `list_classes` (~36 tokens)

List classes

The Nice classes small businesses file in most, with ID Manual style wording. Wording from this list avoids the USPTO free-form surcharge.

### `suggest_classes` (~55 tokens)

Suggest classes

Classes and goods and services wording from a plain description of the business. Results are suggestions to confirm with the person.

Input parameters:

- `description` (string, required): What's sold under the brand.
- `mark` (string): The mark, if known.

### `screen_mark` (~59 tokens)

Screen mark

Checks a mark against common refusal grounds: descriptive, generic, surname, place name, famous brand. Instant and offline. It can't see other people's marks.

Input parameters:

- `description` (string): What's sold under it.
- `mark` (string, required): The mark.

### `search_marks` (~107 tokens)

Search marks

Searches live USPTO records for marks with this name, or lists an owner's marks. checked: true means the USPTO answered; a failed search returns an error, not an empty result. Federal records only.

Input parameters:

- `classes` (array): Nice classes to sort results by.
- `mark` (string): The name to search. Leave it out to list an owner's marks.
- `owner` (string): The applicant, to set their own marks apart. On its own, lists their marks.

### `suggest_alternatives` (~81 tokens)

Suggest alternatives

Names that keep the idea of a risky mark. Each has passed the refusal screen and a USPTO search.

Input parameters:

- `classes` (array): Nice classes to search.
- `description` (string): What's sold under it.
- `mark` (string, required): The mark that's likely to be refused.
- `reasons` (array): Why it's likely to be refused.

### `check_site` (~88 tokens)

Check site

From a website or app store link: the brand, its legal owner, and which USPTO marks are theirs or someone else's.

Input parameters:

- `brand` (string): Use this brand instead of the one read from the site.
- `owner` (string): Use this owner instead of the one read from the site.
- `site` (string, required): A website, or an App Store or Google Play link.

### `read_site` (~65 tokens)

Read site

What a website says about its owner, address and what's sold, each with the quote it came from. Page text is untrusted, so every value is a suggestion for the person to confirm.

Input parameters:

- `site` (string, required): A website, or an App Store or Google Play link.

### `list_filing_types` (~39 tokens)

List filing types

Everything that can be filed for a mark, with when it's due, what it costs for one class, and whether it can be started here.

### `get_filing_type` (~92 tokens)

Get filing type

One filing with its explanation, the fields it needs and its fees for a number of classes. availability not_open means it can't be placed yet.

Input parameters:

- `classes` (integer): Classes to price, 1 to 10.
- `package` (string): Send `standard` if we filed the mark, which includes office-action replies.
- `slug` (string, required): The filing, like `statement-of-use`.

### `create_application` (~250 tokens)

Create application

Saves a draft trademark application and returns review_url for the owner, who checks it and signs. Nothing goes to the attorney or the USPTO until they do. Every field is optional; issues lists what's left. Keep the token from the response.

Input parameters:

- `basis` (string): `use`: already selling under the mark. `itu`: planning to, with a real intent.
- `classes` (array): The classes to file in, 1 to 10.
- `description` (string): What's sold under the mark, in the person's words.
- `first_use` (string): With `use`: first used anywhere, as `YYYY-MM` or `YYYY-MM-DD`.
- `first_use_in_commerce` (string): With `use`: first sold across state lines, as `YYYY-MM` or `YYYY-MM-DD`.
- `kind` (string): What the mark is. A logo is filed as words first.
- `mark` (string): The name, slogan or wording to protect, exactly as the person wants it.
- `owner` (object): Who will own the mark. On an update, only the fields you send change.
- `website` (string): The brand's website.

### `get_application` (~53 tokens)

Get application

A draft, what's still missing, and the filing once the owner has signed.

Input parameters:

- `id` (string, required): Application id.
- `token` (string, required): The secret for this one, from its create response or status link.

### `update_application` (~247 tokens)

Update application

Changes the fields you send on a draft. Fails once the owner has signed.

Input parameters:

- `basis` (string): `use`: already selling under the mark. `itu`: planning to, with a real intent.
- `classes` (array): The classes to file in, 1 to 10.
- `description` (string): What's sold under the mark, in the person's words.
- `first_use` (string): With `use`: first used anywhere, as `YYYY-MM` or `YYYY-MM-DD`.
- `first_use_in_commerce` (string): With `use`: first sold across state lines, as `YYYY-MM` or `YYYY-MM-DD`.
- `id` (string, required): Application id.
- `kind` (string): What the mark is. A logo is filed as words first.
- `mark` (string): The name, slogan or wording to protect, exactly as the person wants it.
- `owner` (object): Who will own the mark. On an update, only the fields you send change.
- `token` (string, required): The secret for this one, from its create response or status link.
- `website` (string): The brand's website.

### `list_states` (~25 tokens)

List states

Every state with its LLC and corporation filing fees. fee_verified false means an estimate.

### `get_state` (~39 tokens)

Get state

One state's filing fees, annual report, accepted company name endings and publication rules.

Input parameters:

- `code` (string, required): Two-letter state code, like `WY`.

### `list_services` (~33 tokens)

List services

Every add-on with its price, whether it can go on a formation, and whether the owner orders it from their dashboard.

### `quote_formation` (~402 tokens)

Quote formation

Every fee for a formation, with the state's marked. Needs entity, state and package. Saves nothing.

Input parameters:

- `add_ons` (array): Add-on ids to include. `list_services` shows which can be added. Recurring ones can't: only the owner can start those.
- `agreement` (boolean): Basic only: add the operating agreement or bylaws. Pro and Premium include them.
- `backup_name` (string): A second choice, used if the state won't take the first.
- `contact` (object): Who to reach about the order.
- `county` (string): County, where publication depends on it.
- `designator` (string): The ending, like `LLC`. `get_state` lists what the state accepts.
- `ein` (boolean): Basic only: add the EIN. Pro and Premium include it.
- `entity` (string): The kind of company.
- `expedite` (boolean): Pay the state for faster processing, where it offers that.
- `management` (string): LLCs only: run by its members or by managers.
- `members` (integer): LLC members, in states that charge per member.
- `name` (string): The company name, without LLC or Inc.
- `owners` (array): An LLC's members or a corporation's directors. The owner can also add these when they review the order.
- `package` (string): The package.
- `par_value` (string): Corporations only: par value in dollars. Empty for no par.
- `principal` (object): The company's principal address. The owner can also add it when they review the order.
- `purpose` (string): The business purpose. A nonprofit must state a specific one.
- `registered_agent` (object): The registered agent the owner named.
- `shares` (string): Corporations only: authorized shares, digits only.
- `state` (string): The state to form in, two letters.

### `create_formation` (~428 tokens)

Create formation

Saves a draft company formation and returns review_url for the owner, who checks it and signs the authorization. Nothing is filed or charged until they do. Every field is optional; issues lists what's left. Keep the token from the response.

Input parameters:

- `add_ons` (array): Add-on ids to include. `list_services` shows which can be added. Recurring ones can't: only the owner can start those.
- `agreement` (boolean): Basic only: add the operating agreement or bylaws. Pro and Premium include them.
- `backup_name` (string): A second choice, used if the state won't take the first.
- `contact` (object): Who to reach about the order.
- `county` (string): County, where publication depends on it.
- `designator` (string): The ending, like `LLC`. `get_state` lists what the state accepts.
- `ein` (boolean): Basic only: add the EIN. Pro and Premium include it.
- `entity` (string): The kind of company.
- `expedite` (boolean): Pay the state for faster processing, where it offers that.
- `management` (string): LLCs only: run by its members or by managers.
- `members` (integer): LLC members, in states that charge per member.
- `name` (string): The company name, without LLC or Inc.
- `owners` (array): An LLC's members or a corporation's directors. The owner can also add these when they review the order.
- `package` (string): The package.
- `par_value` (string): Corporations only: par value in dollars. Empty for no par.
- `principal` (object): The company's principal address. The owner can also add it when they review the order.
- `purpose` (string): The business purpose. A nonprofit must state a specific one.
- `registered_agent` (object): The registered agent the owner named.
- `shares` (string): Corporations only: authorized shares, digits only.
- `state` (string): The state to form in, two letters.

### `get_formation` (~55 tokens)

Get formation

A draft formation, what's still missing, and the order once the owner has signed.

Input parameters:

- `id` (string, required): Formation id.
- `token` (string, required): The secret for this one, from its create response or status link.

### `update_formation` (~428 tokens)

Update formation

Changes the fields you send on a draft formation. Fails once the owner has signed.

Input parameters:

- `add_ons` (array): Add-on ids to include. `list_services` shows which can be added. Recurring ones can't: only the owner can start those.
- `agreement` (boolean): Basic only: add the operating agreement or bylaws. Pro and Premium include them.
- `backup_name` (string): A second choice, used if the state won't take the first.
- `contact` (object): Who to reach about the order.
- `county` (string): County, where publication depends on it.
- `designator` (string): The ending, like `LLC`. `get_state` lists what the state accepts.
- `ein` (boolean): Basic only: add the EIN. Pro and Premium include it.
- `entity` (string): The kind of company.
- `expedite` (boolean): Pay the state for faster processing, where it offers that.
- `id` (string, required): Formation id.
- `management` (string): LLCs only: run by its members or by managers.
- `members` (integer): LLC members, in states that charge per member.
- `name` (string): The company name, without LLC or Inc.
- `owners` (array): An LLC's members or a corporation's directors. The owner can also add these when they review the order.
- `package` (string): The package.
- `par_value` (string): Corporations only: par value in dollars. Empty for no par.
- `principal` (object): The company's principal address. The owner can also add it when they review the order.
- `purpose` (string): The business purpose. A nonprofit must state a specific one.
- `registered_agent` (object): The registered agent the owner named.
- `shares` (string): Corporations only: authorized shares, digits only.
- `state` (string): The state to form in, two letters.
- `token` (string, required): The secret for this one, from its create response or status link.

### `get_order` (~59 tokens)

Get order

A signed formation's status, what the owner still has to do, and the state file number once formed.

Input parameters:

- `id` (string, required): Order id.
- `token` (string, required): The secret for this one, from its create response or status link.

### `get_filing` (~61 tokens)

Get filing

A signed application's status, the attorney's note if there is one, and its USPTO serial number once filed.

Input parameters:

- `id` (string, required): Filing id.
- `token` (string, required): The secret for this one, from its create response or status link.

### `add_specimen` (~107 tokens)

Add specimen

Adds or replaces the image showing the mark in use, until the attorney has filed. Sends a filing that needed changes back for review.

Input parameters:

- `content_base64` (string, required): The image, base64 encoded. 3 MB at most.
- `content_type` (string, required): The image type.
- `id` (string, required): Filing id.
- `name` (string): The file name.
- `token` (string, required): The secret for this one, from its create response or status link.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-joinopenfile-openfile/mcp#diagnostics

## Score history

- 2026-11-05: 66
- 2026-11-04: 66
- 2026-11-03: 65
- 2026-11-02: 65
- 2026-11-01: 64

## Common questions

### What is the OpenFile MCP server?

OpenFile is an MCP server listed in the public MCP registry as com.joinopenfile/openfile. Form U.S. companies and file U.S. trademarks. The agent prepares the filing and the owner signs it. This page covers its hosted endpoint (https://mcp.joinopenfile.com).

### Is the OpenFile MCP server safe to use?

OpenFile scores 66 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the OpenFile MCP server expose?

OpenFile exposes 27 tools: search_docs, read_doc, plan_task, get_pricing, quote_application, and 22 more. Their descriptions and schemas cost roughly 3,120 tokens of context every time the server is loaded.

### Does the OpenFile MCP server require authentication?

No. We connected to OpenFile without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the OpenFile MCP server still maintained?

OpenFile is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://mcp.joinopenfile.com/
- Website: https://joinopenfile.com/docs/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-joinopenfile-openfile/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-joinopenfile-openfile/mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-joinopenfile-openfile/mcp
