resources
mcp 7 min · Aug 25, 2026

Connecting Usign to Claude in five minutes

One server URL, an OAuth tab, and a consent screen. No API key, no config file, no developer. Here is the whole flow, plus what to do when it misbehaves.

Usign runs a remote MCP server at a single URL. Point Claude at it, approve the connection in your browser, and Claude can read your templates and draft, send, and track contracts in your workspace — in a chat, in your own words.

There is no API key to generate. Authentication is OAuth 2.1 against your existing Usign login, which means the connector acts as you, inside the workspaces you already have access to.

Before you start

  • A Usign account at usign.upfluence.com with membership in the workspace you want Claude to operate on.
  • A Claude plan that supports custom MCP connectors.
  • About two minutes.

You do not need an API key. Workspace API keys still exist for backend integrators calling the REST API directly, but the MCP server does not use one.

Connect from claude.ai

  1. Sign in to claude.ai.
  2. Go to Settings → Connectors → Add connector and choose a custom MCP server.
  3. Name it Usign — this is what you will refer to in chat.
  4. Server URL: https://usign.upfluence.com/api/mcp
  5. Leave auth as OAuth. Claude detects this from our published metadata.
  6. Click Connect.

What happens next, in order:

  1. Claude discovers our OAuth metadata at .well-known/oauth-protected-resource and .well-known/oauth-authorization-server.
  2. Claude registers itself as an OAuth client dynamically — nothing for you to paste.
  3. A browser tab opens on usign.upfluence.com.
  4. If you are not signed in to Usign, you sign in first (Google SSO, or email and password).
  5. A consent screen asks whether Claude may access your Usign workspace. Check the permissions and the redirect URI, then Allow access.
  6. The tab closes. Back in Claude, the connector reads Connected.

Claude Desktop and Claude Code

Claude Desktop

Same server URL, same OAuth flow, walked through in a built-in browser tab. The consent screen is identical.

Claude Code

Add the server to your MCP config:

{
  "mcpServers": {
    "usign": {
      "type": "http",
      "url": "https://usign.upfluence.com/api/mcp"
    }
  }
}

Claude Code triggers the OAuth flow on first use and opens the consent screen in a browser tab.

Your first prompts

Open a new chat with the connector enabled and start with something read-only:

List my Usign templates and tell me what fields they need.

Claude should call usign_list_templates, then usign_get_template on each, and hand back a clean summary. If that works, the connection is good.

Then the real thing:

Take these twelve emails and draft a contract for each on the Brand Collab — Standard template.

Claude resolves the template, reads its required merge fields, extracts values from your text, optionally previews to catch problems early, and creates twelve drafts. Then it stops and asks you to confirm. Only after your yes does it call usign_send_contract.

That pause is not politeness. There is no API-shaped way to combine create and send into one call, so even an overeager agent produces drafts rather than sent contracts.

If you belong to several workspaces

The first tool call comes back with a workspace_not_selected error listing your memberships. Tell Claude which one you mean:

Use my Upfluence workspace.

It calls usign_select_workspace, and the choice sticks across sessions. To move, just say switch to the Acme workspace. If you belong to exactly one workspace, none of this happens — it is picked for you.

Revoking access

usign.upfluence.com/settings/connected-apps lists every MCP client connected to your account, with last-used timestamps. Revoke invalidates its tokens immediately; the next request from that client gets a 401 and it has to redo the OAuth flow.

Revoking severs the credential and nothing else. Contracts and templates the client touched stay exactly as they are.

When it misbehaves

“Couldn't connect” on the add-connector screen

Open https://usign.upfluence.com/.well-known/oauth-protected-resource in a browser. It should return JSON. A 404 means the deploy is misconfigured — that one is on us.

The consent screen never appears

Pop-up blocker. Allow pop-ups for claude.ai and retry.

You land on /login and stay there after signing in

The auth redirect allow-list is missing the OAuth callback. A workspace admin needs to fix it on the Usign side.

<code>workspace_not_selected</code> on every call

Multi-workspace account, no workspace chosen yet. Name the workspace and Claude will select it.

<code>invalid_token</code> or 401 after it was working

Access tokens are short-lived (an hour by default) and the client should refresh them. If yours did not, disconnect and reconnect the connector. If a fresh token still fails, check /settings/connected-apps for stale or duplicate connections to clean up.

Fewer tools than expected in the list

Clients cache the tool list at connection time. Disconnect and reconnect to pick up anything new.

The tools, and what each one touches

Eleven tools. The annotations are part of the contract — they are how a well-behaved client decides what needs your confirmation.

ToolAnnotationWhat it does
usign_list_templatesread-onlyResolves a spoken template name to an id
usign_get_templateread-onlySigner roles and required merge fields — the schema to fill in
usign_list_merge_fieldsread-onlyThe workspace's merge-field registry
usign_list_contractsread-onlyFilter by status, template, reference, client, or campaign
usign_get_contractread-onlyFull detail for one contract, including per-signer state
usign_select_workspaceidempotentChooses the workspace for the session
usign_preview_contractread-onlyRenders and validates without writing anything
usign_create_contractnot destructiveCreates one draft. Never sends
usign_create_contracts_bulknot destructiveUp to 300 drafts in one call. Never sends
usign_send_contractdestructiveDispatches a draft. Real email, real people
usign_void_contractdestructiveCancels with a required reason

What Claude cannot do

Deliberately absent from the tool surface:

  • Create, edit, or publish template versions — authoring stays in the editor
  • Manage API keys, webhooks, members, or workspace settings
  • Upload signature-on-file images
  • Sign on behalf of a signer — the server is the sender, never the signer
  • Delete a contract — void with a reason is the only cancellation path

A tool that does not exist cannot be called by mistake, which is a cheaper safety mechanism than any amount of prompting.

Send your first contract from a chat

First 100 contracts free for life. No card, no seats.