Terac MCP

Install

Connect the Terac MCP server to Claude Code, Cursor, Claude Desktop, VS Code, ChatGPT, or any MCP client.

This guide connects the Terac MCP server to your AI assistant so it can price, launch, and manage research on your behalf. Pick your client below; setup takes a couple of minutes.

Prerequisites

Before connecting, make sure you have:

A Terac account and organization

Sign in to Terac and create your organization if you have not already. The MCP acts on behalf of a single organization.

A way to authenticate

The server accepts two methods, and you only need one:

  • API key (recommended) is a single secret you paste into your client config. It works in every client, including headless and CI environments. Generate one under your organization's Settings → API Keys. Keys start with tk_.
  • OAuth is a browser-based login with no key to manage. It is supported by clients that implement the MCP OAuth flow (Claude Code, Cursor, Claude Desktop, VS Code, ChatGPT). Your client opens a browser, you sign in, and you are done.

Not sure which to use? Start with an API key. It is the most portable option and the only one that works for automation and CI.

The Server Endpoint

Every client below connects to the same URL:

https://terac.com/api/mcp

Connect Your Client

The fastest path is the CLI. Run this from any project, or add --scope user to make it available everywhere:

Add with an API key
claude mcp add --transport http terac https://terac.com/api/mcp \
  --header "x-api-key: tk_your_api_key"

Prefer browser login? Omit the header and authenticate with OAuth instead:

Add with OAuth
claude mcp add --transport http terac https://terac.com/api/mcp

Then run /mcp inside Claude Code and select terac to complete the sign-in.

To share the server with your team, add it with --scope project, which writes a committed .mcp.json:

.mcp.json
{
  "mcpServers": {
    "terac": {
      "type": "http",
      "url": "https://terac.com/api/mcp",
      "headers": {
        "x-api-key": "${TERAC_API_KEY}"
      }
    }
  }
}

Reference ${TERAC_API_KEY} so the secret stays in your environment, not in the committed file.

Create or edit ~/.cursor/mcp.json for all projects, or .cursor/mcp.json inside a single project:

~/.cursor/mcp.json
{
  "mcpServers": {
    "terac": {
      "url": "https://terac.com/api/mcp",
      "headers": {
        "x-api-key": "tk_your_api_key"
      }
    }
  }
}

To keep the key out of the file, reference an environment variable instead: "x-api-key": "${env:TERAC_API_KEY}".

Prefer OAuth? Drop the headers block and leave only the url. Cursor opens a browser to sign in the first time the server is used. Then open Settings → MCP and confirm terac shows a green dot.

Claude Desktop connects to remote servers as custom connectors:

Open connector settings

Go to Settings → Connectors and click Add custom connector.

Add the Terac server

Name it Terac and paste the URL https://terac.com/api/mcp, then save.

Sign in

Open the connector and complete the browser sign-in. Terac's tools now appear in the chat's tools menu.

To use an API key instead, or on a build without the connector UI, open Settings → Developer → Edit Config and bridge through mcp-remote:

claude_desktop_config.json
{
  "mcpServers": {
    "terac": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://terac.com/api/mcp",
        "--header",
        "x-api-key:tk_your_api_key"
      ]
    }
  }
}

Restart Claude Desktop after saving.

With GitHub Copilot's agent mode, create .vscode/mcp.json in your workspace. The inputs block prompts for your key once and stores it securely instead of writing it to disk:

.vscode/mcp.json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "terac-api-key",
      "description": "Terac API key",
      "password": true
    }
  ],
  "servers": {
    "terac": {
      "type": "http",
      "url": "https://terac.com/api/mcp",
      "headers": {
        "x-api-key": "${input:terac-api-key}"
      }
    }
  }
}

Click Start above the server entry, or run MCP: List Servers from the Command Palette. For OAuth, remove the inputs and headers blocks; VS Code opens a browser to authorize on first connect.

ChatGPT reaches remote MCP servers through connectors (available on plans where connectors are enabled):

Open connector settings

In ChatGPT, go to Settings → Connectors and choose to add a custom connector.

Add the Terac server

Enter https://terac.com/api/mcp as the MCP server URL and give it a name.

Authorize

Complete the OAuth sign-in when prompted. Terac's tools become available to the model in chat.

Connector availability and the exact menu names vary by ChatGPT plan and rollout. If you do not see a custom connector option, your workspace may need connectors or developer mode enabled by an admin.

Any client that can run a stdio command reaches Terac through mcp-remote, which bridges a local command to the remote HTTP server and handles OAuth:

mcp config
{
  "mcpServers": {
    "terac": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://terac.com/api/mcp"]
    }
  }
}

That uses browser-based OAuth. To pass an API key instead, append a header argument:

With an API key
{
  "mcpServers": {
    "terac": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://terac.com/api/mcp",
        "--header",
        "x-api-key:tk_your_api_key"
      ]
    }
  }
}

If your client supports native HTTP transport, skip mcp-remote and point it directly at https://terac.com/api/mcp with an x-api-key header.

Verify the Connection

Confirm the tools are live before relying on them.

Check the server connected

In Claude Code, run claude mcp list (or /mcp in a session). In Cursor, VS Code, Claude Desktop, or ChatGPT, open the MCP or connector settings and look for terac with a connected status and a non-zero tool count.

Run the first tool

Ask your assistant: "Use Terac to get my organization context." It should call terac_get_context and return your organization name, credit balance, and projects. If it does, you are connected.

Troubleshooting

What's Next?