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

# MCP server

> Connect an AI assistant to Palm over the Model Context Protocol.

export const iconProps = (variant = "default") => {
  const iconVariants = {
    default: "palm-icon-default",
    horizontal: "palm-icon-horizontal",
    stack: "palm-icon-stack",
    navigation: "palm-icon-navigation",
    darkHorizontal: "palm-icon-dark-horizontal",
    dark_stack: "palm-icon-dark-stack",
    getStarted: "palm-icon-get-started",
    useCase: "palm-icon-use-case",
    useCaseSection: "palm-icon-use-case-section"
  };
  return iconVariants[variant] ?? iconVariants.default;
};

export const PalmCard = ({title, description, icon, variant = "default", href, items}) => {
  if (variant === "useCase") {
    return <a href={href || '#'} className="no-underline pc-wrapper-use-case">
        <div className="pc-use-case-card-top">
          {icon && <div className="pc-use-case-icon-box">{icon}</div>}
          <span className="pc-use-case-card-title">{title}</span>
        </div>
        {description && <p className="pc-use-case-card-desc">{description}</p>}
        <span className="pc-use-case-learn-more">Learn more →</span>
      </a>;
  }
  if (variant === "getStarted") {
    return <div data-card className="pc-wrapper-get-started flex flex-col gap-3 border border-[rgba(4,44,47,0.1)] rounded-2xl p-6">
        <div className="pc-wrapper-inner-get-started">
          {icon !== undefined && <div className="pc-icon-container-get-started">{icon}</div>}
          {title !== undefined && <span className="pc-title-get-started">{title}</span>}
        </div>
        {items && items.length > 0 && <ul className="pc-items-get-started">
            {items.map((item, i) => <li key={i}>
                <a href={item.href} className="pc-item-link-get-started">{item.label}</a>
              </li>)}
          </ul>}
      </div>;
  }
  const variants = {
    default: {
      wrapper: "pc-wrapper-default",
      title: "pc-title",
      description: "pc-description"
    },
    horizontal: {
      wrapper: "pc-wrapper-card",
      title: "pc-title-horizontal",
      description: "pc-description"
    },
    stack: {
      wrapper: "pc-wrapper-stack",
      title: "pc-title-stack",
      description: "pc-description"
    },
    darkHorizontal: {
      wrapper: "pc-wrapper-dark-horizontal",
      title: "pc-title-dark-horizontal",
      description: "pc-description-dark-horizontal",
      iconWrapper: "pc-icon-container-dark-horizontal"
    },
    navigation: {
      wrapper: "pc-wrapper-navigation",
      title: "pc-title-navigation",
      description: "pc-description-navigation"
    },
    dark_stack: {
      icon: "pc-icon-card",
      title: "pc-title",
      description: "pc-description"
    }
  };
  const styles = variants[variant] ?? variants.default;
  const inner = <a data-card href={href ? href : '#'} className={`no-underline flex flex-col h-full items-start gap-4 p-6 rounded-2xl hover:opacity-80 transition-opacity ${styles.wrapper}`}>
      {icon !== undefined && <span className={styles.iconWrapper ?? "icon-wrapper"}>{icon}</span>}
      {(title !== undefined || description !== undefined) && <div className="flex flex-col min-w-0">
          {title !== undefined && <span className={styles.title}>{title}</span>}
          {description !== undefined && <span className={styles.description}>{description}</span>}
        </div>}
    </a>;
  return inner;
};

Palm hosts a remote [Model Context Protocol](https://modelcontextprotocol.io/) server so AI assistants can work with your Palm account directly — onboard and verify businesses, search the registration registry, manage monitoring, and file with the state.

***

<Note>
  MCP access is enabled per account. [Talk to our team](https://cal.com/team/getpalm/palm-apis) to have it turned on for your organization.
</Note>

## Connect

The server is hosted at `https://mcp.getpalm.com/mcp` and uses OAuth, so there is no API key to paste. Your assistant opens a browser, you sign in with your Palm Console account, and the connection is authorized.

<Tabs>
  <Tab title="Claude Code">
    ```bash theme={null}
    claude mcp add --transport http palm https://mcp.getpalm.com/mcp
    ```

    Run `/mcp` in Claude Code to complete the sign-in.
  </Tab>

  <Tab title="Codex">
    ```bash theme={null}
    codex mcp add palm --url https://mcp.getpalm.com/mcp
    codex mcp login palm
    ```
  </Tab>

  <Tab title="Cowork and Claude Desktop">
    Add Palm as a custom connector:

    1. Go to **Customize > Connectors** and click **+**.
    2. Choose **Add custom connector**.
    3. Enter `https://mcp.getpalm.com/mcp` as the server URL and click **Add**.
    4. Click **Connect** and sign in with your Palm Console account.

    On a Team or Enterprise plan, an owner adds the connector once under **Organization settings > Connectors**, and each member then connects and signs in with their own Palm account.
  </Tab>

  <Tab title="Other clients">
    ```json theme={null}
    {
      "mcpServers": {
        "palm": {
          "type": "http",
          "url": "https://mcp.getpalm.com/mcp"
        }
      }
    }
    ```
  </Tab>
</Tabs>

Any MCP client that supports remote servers over HTTP can connect. Point it at the same URL and complete the sign-in prompt — the server registers the client for you, so there are no OAuth credentials to configure by hand.

## Access and scoping

Every call is made with your own credentials, so the server sees exactly what your Palm Console account sees — the same organization, the same records, the same permissions. Connecting an assistant grants it no access beyond your own.

## What the assistant can do

| Area                                          | Capability                                                                                                         |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| <span className="initial-bold">Onboard</span> | Search the business registration registry, pull a registry record, check name eligibility                          |
| <span className="initial-bold">Verify</span>  | Add a business to your account, submit it for verification, read the result                                        |
| <span className="initial-bold">Monitor</span> | Turn monitoring on or off for a business and choose which events it subscribes to                                  |
| <span className="initial-bold">Comply</span>  | Form an LLC or corporation, apply for an EIN, change a registered agent, work open cases, retrieve filed documents |

The server also ships guided workflows for the longer jobs — a full KYB review, a portfolio compliance sweep, an end-to-end formation — so an assistant follows Palm's procedure instead of improvising one.

## Next steps

<div className="grid lg:grid-cols-2 gap-6 mt-6">
  <PalmCard variant="navigation" title="Get access" description="Request access and provision your Palm Console account." icon={<Icon className={iconProps("navigation")} icon="arrow-right" />} href="/get-started/get-access" />

  <PalmCard variant="navigation" title="Verify a business" description="Confirm that a business entity is real, registered, and in good standing." icon={<Icon className={iconProps("navigation")} icon="arrow-right" />} href="/verify/verify-a-business" />
</div>
