# Connect Cursor to SignWith (MCP)

> Add SignWith to Cursor and its agent can look up your templates, send test signature requests and check signers while you build your integration.

Source: https://signwith.co/docs/mcp/cursor · Updated 2026-10-02

Cursor reads MCP servers from an `mcp.json` file. Steps checked against Cursor's documentation on 1 October 2026.

## One-click install

- [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=signwith&config=eyJ1cmwiOiJodHRwczovL2FwcC5zaWdud2l0aC5jby9tY3AifQ%3D%3D)

The button opens Cursor and adds SignWith to your MCP servers. When Cursor first connects, it sends you to SignWith to sign in and choose **Full access** or **View only**.

## Add SignWith with an API key

1. Create a key in [Settings → Developers](https://app.signwith.co/settings/api). A test key (`sw_test_`) keeps your experiments apart from live data.
2. Set it as an environment variable in the shell Cursor starts from:

   ```bash
   export SIGNWITH_API_KEY="sw_test_..."
   ```

3. Add SignWith to `~/.cursor/mcp.json` to use it in every project, or to `.cursor/mcp.json` in one project:

   ```json
   {
     "mcpServers": {
       "signwith": {
         "url": "https://app.signwith.co/mcp",
         "headers": { "Authorization": "Bearer ${env:SIGNWITH_API_KEY}" }
       }
     }
   }
   ```

   `${env:SIGNWITH_API_KEY}` reads the variable, so the key isn't saved in the file. Don't commit a key to a shared `.cursor/mcp.json`.

4. Open Cursor's MCP settings and check that `signwith` is enabled and lists its tools.

## Or add it by hand with OAuth

Leave out `headers`, and Cursor signs in to SignWith with OAuth when it first connects:

```json
{
  "mcpServers": {
    "signwith": { "url": "https://app.signwith.co/mcp" }
  }
}
```


## What to try

- "List my SignWith templates and show the roles of the lease template."
- "Create a test signature request from my lease template without sending emails, and give me the signing links."
- "Has anyone signed the test request yet?"

By default, Cursor asks before it runs a tool, so nothing is sent without your OK. For the API itself, see the [quick start](https://signwith.co/docs/api/quickstart) and the [API reference](https://signwith.co/docs/api).

## Troubleshooting

- **The server shows an error:** check the variable is set in the environment Cursor was started from, then restart Cursor.
- **401 unauthenticated:** the key is wrong, revoked or expired. See [authentication](https://signwith.co/docs/api/authentication).
- **It can read but not send:** the key is read-only. Use a full-access key.

All tools and access rules are on the [MCP overview](https://signwith.co/docs/mcp).
