> ## Documentation Index
> Fetch the complete documentation index at: https://docs.symmetry.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting started with Docs MCP

> Install and connect Docs MCP in Claude Code, Claude Desktop, Cursor, VS Code, Codex CLI, or ChatGPT, then confirm it is working.

This guide walks through connecting [Symmetry Docs MCP](/symmetry/ai/docs-mcp/overview) to your AI assistant and confirming it works. Once connected, your AI assistant can search and cite Symmetry Docs while you work.

## Prerequisites

1. **Client Support Center credentials.** The same sign-in you use to read Symmetry Docs and to track your tickets. Access to the MCP server matches your documentation access.
2. **An MCP-capable AI app.** All of the options below are free to download.

   | Tool           | Best for                                                    | Get it                                                                |
   | -------------- | ----------------------------------------------------------- | --------------------------------------------------------------------- |
   | Claude Code    | Terminal-comfortable users                                  | [Install guide](https://docs.claude.com/en/docs/claude-code/overview) |
   | Claude Desktop | Easiest setup; no technical experience needed               | [claude.ai/download](https://claude.ai/download)                      |
   | Cursor         | Users who work in or alongside code                         | [cursor.com/downloads](https://www.cursor.com/downloads)              |
   | VS Code        | Existing VS Code users, with GitHub Copilot                 | [code.visualstudio.com](https://code.visualstudio.com/)               |
   | Codex CLI      | OpenAI Codex users working in a terminal                    | [Codex docs](https://developers.openai.com/codex)                     |
   | ChatGPT        | Paid plans only, and managed workspaces need admin approval | [chatgpt.com](https://chatgpt.com)                                    |

## Step 1: Add the server

The Docs MCP server address is:

```text theme={null}
https://docs.symmetry.com/authed/mcp
```

The server is HTTP and access-controlled. There is no stdio option and no npm package to install, and because it is hosted there is nothing to keep updated on your side.

<Tabs>
  <Tab title="Claude Code">
    <Steps>
      <Step title="Add the server">
        ```bash theme={null}
        claude mcp add --transport http symmetry-docs https://docs.symmetry.com/authed/mcp
        ```
      </Step>

      <Step title="Sign in">
        Run `/mcp` inside Claude Code, then select **symmetry-docs** from the list to start the sign-in.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Claude Desktop">
    <Steps>
      <Step title="Open Connectors">
        Go to **Settings → Connectors**, then choose **+ Add**, then click **Add custom connector**.
      </Step>

      <Step title="Enter the server details">
        * **Name:** `Symmetry docs`
        * **URL:** `https://docs.symmetry.com/authed/mcp`
      </Step>

      <Step title="Connect">
        Click **Continue**, then on the next screen leave the radio buttons on the `Detected` options. Under **Authentication**, use the **Sign in now** radio button; under **OAuth client**, use the **Register automatically** radio button. Click **Add**.

        Click **Connect**. Claude Desktop opens a browser window for you to sign in.
      </Step>

      <Step title="Use in conversations">
        From within a chat, click the **+** button, select **Connectors**, and ensure the **Symmetry Docs** connector is toggled on.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Cursor">
    <Steps>
      <Step title="Open MCP settings">
        Open the command palette (`Cmd+Shift+P` / `Ctrl+Shift+P`) and select **Open MCP settings**, or edit `~/.cursor/mcp.json` directly.
      </Step>

      <Step title="Add the server">
        ```json theme={null}
        {
          "mcpServers": {
            "symmetry-docs": {
              "url": "https://docs.symmetry.com/authed/mcp"
            }
          }
        }
        ```

        If you already have other MCP servers configured, add `symmetry-docs` as a new key inside the existing `mcpServers` object. Don't replace the whole file.
      </Step>

      <Step title="Save">
        Cursor picks up the change automatically. No restart needed.
      </Step>
    </Steps>
  </Tab>

  <Tab title="VS Code">
    <Steps>
      <Step title="Create the config file">
        Create `.vscode/mcp.json` in your workspace, or add to the existing file:

        ```json theme={null}
        {
          "servers": {
            "symmetry-docs": {
              "type": "http",
              "url": "https://docs.symmetry.com/authed/mcp"
            }
          }
        }
        ```
      </Step>

      <Step title="Reload">
        Reload the window so VS Code picks up the new server.
      </Step>
    </Steps>
  </Tab>

  <Tab title="Codex CLI">
    <Steps>
      <Step title="Add the server">
        Add it to `~/.codex/config.toml`:

        ```toml theme={null}
        [mcp_servers.symmetry-docs]
        url = "https://docs.symmetry.com/authed/mcp"
        ```
      </Step>

      <Step title="Restart Codex">
        Restart so the new server is loaded.
      </Step>
    </Steps>
  </Tab>

  <Tab title="ChatGPT">
    These steps were verified against the live ChatGPT interface in September 2026. OpenAI moves and renames these settings from time to time, and [their own Developer mode guide](https://developers.openai.com/api/docs/guides/developer-mode) can lag behind the interface, so expect some drift.

    <Steps>
      <Step title="Check your plan">
        OpenAI documents Developer mode as available on Plus, Pro, Business, Enterprise, and Education accounts, on the web. On a Business or Enterprise workspace, an admin may need to allow custom MCP apps before you can add one.
      </Step>

      <Step title="Turn on Developer mode">
        Open **Settings → Security and login** and switch on **Developer mode**.
      </Step>

      <Step title="Add the server">
        Go to **Plugins**, click **Browse plugins**, then select the **plus** button, then click **Create MCP App**, then enter:

        * **Name:** `Symmetry Docs`
        * **Connection** (ensure the toggle to the right is set to **Server URL**): `https://docs.symmetry.com/authed/mcp`
        * **Authentication:** OAuth
        * **Description** (optional but recommended): ChatGPT reads this when it decides whether to use the server, so it is worth setting deliberately rather than leaving brief. You can start from this:

          ```text theme={null}
          Searches and reads Symmetry product documentation for the Symmetry
          Tax Engine, Symmetry Payroll Forms, Payroll Point, Minimum Wage Finder, Calculators by Symmetry,
          Symmetry I-9, and Symmetry Guides, including their release notes. Use it
          for questions about Symmetry APIs, endpoints, request and response payloads,
          parameters, tax IDs, setup, and product behavior, and cite the page it
          returns. It reads the published documentation live, so answers reflect what
          is published now. It does not run tax calculations or call product APIs.
          ```
      </Step>

      <Step title="Create the app">
        Click **Create**.
      </Step>

      <Step title="Sign in and enable it">
        Complete the browser sign-in. The server should then be visible under **Installed** in **Plugins**. Click the plugin, then **Try in chat**. From then on, bring it into any conversation by mentioning it by name, for example `@Symmetry Docs`, or whatever name you gave it.
      </Step>
    </Steps>

    Each app has a details page in app settings for toggling individual tools and refreshing the app, which is how it picks up a changed description.
  </Tab>
</Tabs>

Using a different AI app? Add `https://docs.symmetry.com/authed/mcp` as a custom MCP server in its settings.

Popular clients such as Claude, ChatGPT, and Cursor can always complete the sign-in. If your client is not one of those, [contact support](https://support.symmetry.com/hc/en-us/requests/new) before you start.

## Step 2: Sign in

The first tool call opens your browser and prompts you to sign in with your Client Support Center credentials. After you authenticate, the browser tab closes and your AI assistant resumes. Subsequent calls in the same session reuse the cached token.

The cached token is valid for 24 hours. After that, the next tool call prompts you to sign in again.

## Step 3: Confirm it works

Ask your AI assistant something that only Symmetry Docs would answer, and check that it **cites a Symmetry page**. Your AI assistant decides whether to show the link the server returns, so if no page appears, add "cite the page" and ask again:

```text theme={null}
Using the Symmetry docs, what are the three values signForm accepts in the SPF API, and what does each one produce?
```

A correct answer names `PREVIEW`, `SIGN`, and `SIGN_EXTERNALLY`, and explains that `PREVIEW` is the default.

<Accordion title="What a working answer looks like">
  `signForm` is an attribute on the `/fillPdf` endpoint, and it defaults to `PREVIEW`, so if you are expecting a signed form you have to ask for one explicitly.

  * `PREVIEW`: an unsigned preview. The SSN (U.S.) or SIN (Canada) is masked and all form fields are flattened. Intended for letting the employee review the form before committing.
  * `SIGN`: a completed, fully executed form. The signature line carries the employee's name plus a date and time stamp, the SSN or SIN is unmasked, and all fields are flattened. The timestamp needs a timezone, supplied as an IANA identifier such as `America/Chicago`. Without one, SPF signs in UTC.
  * `SIGN_EXTERNALLY`: a completed form with an unmasked SSN or SIN but no electronic signature or date, for use with an external signing tool such as DocuSign. Everything is flattened except the signature and date fields.

  Two pages cover this: [Interpreting SPF API responses](/spf/api/interpreting-responses#form-signing-options-signform) has the authoritative breakdown plus the nonstandard signature fields (MO101 to MO103, NJ102), and [Form output](/spf/core-concepts/form-output#signing-modes) has the same three modes in table form with use-case guidance.

  <Frame caption="The same answer in Claude Desktop.">
    <img src="https://mintcdn.com/symmetry-prod/S65EcfyDhyKFkqQn/symmetry/assets/images/docs-mcp/verify-signform-claude-desktop.png?fit=max&auto=format&n=S65EcfyDhyKFkqQn&q=85&s=112521a06591746114a89e223676b9d7" alt="The answer as it appears in Claude Desktop, with the three signForm values and two cited Symmetry pages." width="708" height="398" data-path="symmetry/assets/images/docs-mcp/verify-signform-claude-desktop.png" />
  </Frame>
</Accordion>

Then check that it can read a full page rather than working from a search snippet:

```text theme={null}
Read the whole STE licensing page and list every credential type, and which interface uses each.
```

Expect three credential types across five interfaces.

<Accordion title="What a working answer looks like">
  Three credential types, mapped across five interfaces.

  * **STE license file** (`ste-license.dat`): authorizes the engine for an on-premise install, and is part of the licensed distribution. Downloaded from the Download Center as a ZIP with "License" in the name, then placed in the root of your STE directory, or supplied via the `STE_LICENSE_KEY` environment variable, which is checked first. The engine will not run without it.
  * **API key**: per client and product, issued by Symmetry, sent as the raw value of the `Authorization` header on every request. Staging and production keys are separate, and mixing environments fails.
  * **Client Support Center credentials**: user-level sign-in, where you authenticate as yourself rather than with a shared service key.

  | Interface      | Credential                        |
  | -------------- | --------------------------------- |
  | Hosted API     | API key                           |
  | Tax Logic API  | API key, same key model as hosted |
  | On-premise SDK | STE license file plus API key     |
  | STE MCP        | Client Support Center sign-in     |
  | Tax Logic Chat | Client Support Center sign-in     |

  On-premise installs also use an API key for the Symmetry Location Service, which handles address geocoding, set as `SLS_API_KEY` in `ste.conf`. That is a configuration detail rather than a second license, and on the hosted API it is handled for you.

  <Frame caption="The same answer in Claude Desktop.">
    <img src="https://mintcdn.com/symmetry-prod/S65EcfyDhyKFkqQn/symmetry/assets/images/docs-mcp/verify-licensing-claude-desktop.png?fit=max&auto=format&n=S65EcfyDhyKFkqQn&q=85&s=12406fb48d15873ec65c346af3183009" alt="The answer as it appears in Claude Desktop, with the three credential types and a table mapping them to five interfaces." width="740" height="829" data-path="symmetry/assets/images/docs-mcp/verify-licensing-claude-desktop.png" />
  </Frame>
</Accordion>

<Note>
  If no page appears even after you ask it to cite one, or it cites something that is not a Symmetry docs page, it is answering from general knowledge and the server is not connected. Check that sign-in completed, then see [troubleshooting](/symmetry/ai/docs-mcp/troubleshooting).
</Note>

That's the whole setup. Your AI assistant can now search and cite Symmetry docs in any conversation, and [sample prompts](/symmetry/ai/docs-mcp/sample-prompts) has questions to try, grouped by role.
