Skip to main content
Glama
Thunder Client License Manager MCP Server

Thunder Client License Manager MCP Server

by chezsmithy

Thunder Client License Manager MCP Server

An MCP (Model Context Protocol) server that provides tools for managing Thunder Client licenses through their API.

Features

  • Add licenses: Add Thunder Client licenses for specified email addresses

  • Get licenses: Retrieve license information with automatic pagination

  • Remove licenses: Remove Thunder Client licenses for specified email addresses

Related MCP server: Istek MCP Server

Requirements

  • Node.js 20+ (LTS)

  • TypeScript

  • Thunder Client API access

Installation

  1. Clone this repository

  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build

Environment Variables

Before using the MCP server, you need to set the following environment variables:

  • TC_API_KEY: Your Thunder Client API key (sent as 'api-key' header)

  • TC_ACCOUNT_NUMBER: Your Thunder Client account number

  • TC_BASE_URL: (Optional) Base URL for Thunder Client API (defaults to 'https://www.thunderclient.com')

Example Environment Setup

export TC_API_KEY="your-api-key-here"
export TC_ACCOUNT_NUMBER="your-account-number"
export TC_BASE_URL="https://www.thunderclient.com"  # optional

MCP Configuration

Add the server to your MCP settings configuration:

For Cline/Claude Desktop

Add to your cline_mcp_settings.json or Claude Desktop configuration:

{
  "mcpServers": {
    "thunderclient-license-manager": {
      "command": "npx",
      "args": ["-y", "/path/to/thunderclient-license-manager-mcp"],
      "env": {
        "TC_API_KEY": "your-api-key-here",
        "TC_ACCOUNT_NUMBER": "your-account-number-here"
      }
    }
  }
}

For other MCP clients

Use the stdio transport with npx:

npx -y .

Available Tools

1. thunderclient_add_license

Add Thunder Client licenses for specified email addresses.

Parameters:

  • emails (required): Array of email addresses to add licenses for

Example:

{
  "emails": ["user1@example.com", "user2@example.com"]
}

2. thunderclient_get_licenses

Get Thunder Client licenses with smart pagination.

Parameters:

  • pageNumber (optional): Specific page to fetch. If omitted, fetches ALL pages automatically

Example - Get all licenses:

{}

Example - Get specific page:

{
  "pageNumber": 2
}

3. thunderclient_remove_license

Remove Thunder Client licenses for specified email addresses.

Parameters:

  • emails (required): Array of email addresses to remove licenses for

Example:

{
  "emails": ["user1@example.com", "user2@example.com"]
}

API Response Format

All tools return responses in the following format:

{
  "success": true/false,
  "data": { /* API response data */ },
  "message": "Success/error message",
  "error": "Error details (if success is false)"
}

Special Response for thunderclient_get_licenses without pageNumber

When fetching all pages, the response includes:

{
  "success": true,
  "data": {
    "licenses": [ /* Combined licenses from all pages */ ],
    "totalPages": 5,
    "totalCount": 150,
    "pagesFetched": 5
  },
  "message": "Retrieved 150 licenses across 5 page(s)"
}

Development

Scripts

  • npm run build: Compile TypeScript to JavaScript

  • npm run dev: Watch mode for development

  • npm start: Run the compiled server

Project Structure

src/
├── index.ts          # Main MCP server implementation
├── api-client.ts     # Thunder Client API wrapper
└── types.ts          # TypeScript type definitions

Error Handling

The server includes comprehensive error handling:

  • Environment variable validation

  • API request/response error handling

  • Input validation for required parameters

  • Proper MCP error codes and messages

License

MIT

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests if applicable

  5. Submit a pull request

Support

For issues related to the Thunder Client API, refer to their documentation. For MCP server issues, please create an issue in this repository.

Available Tools

3 tools
thunderclient_add_licenseC

Add Thunder Client licenses for specified email addresses

Inputs: emails (required).

thunderclient_get_licensesA

Get Thunder Client licenses. If pageNumber is not provided, fetches all pages automatically.

Inputs: pageNumber.

thunderclient_remove_licenseC

Remove Thunder Client licenses for specified email addresses

Inputs: emails (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: add, get, and remove licenses. The actions (add, get, remove) are mutually exclusive and target the same resource (licenses), leaving no room for confusion or overlap.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with the prefix 'thunderclient_' and use clear action verbs (add, get, remove) followed by the noun 'license'. There are no deviations in style or convention.

    Tool Count4/5

    Three tools are appropriate for a license manager, covering core CRUD operations (add, get, remove). It is slightly under-scoped as it lacks an update tool, but the count is reasonable for the domain.

    Completeness4/5

    The tool set covers the essential lifecycle of license management: create (add), read (get), and delete (remove). A minor gap exists with no update tool for modifying existing licenses, but agents can work around this by removing and re-adding.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Integrates Bruno CLI for API testing, enabling users to run API requests and collections, manage environments, generate test reports (JSON/JUnit/HTML), and validate collection structures through natural language commands.
      9
      39 npm
      5
      MIT
    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables AI assistants to interact with Istek API Client for managing workspaces, collections, environments, variables, and request history. Allows natural language control of API development workflows including creating collections, adding requests, and managing environment configurations.
      -
    • A
      license
      B
      quality
      D
      maintenance
      Enables interaction with Linear's API to manage issues, projects, and teams. Supports creating, updating, searching, and deleting issues, along with project management and team operations through API key authentication.
      13
      702 npm
      MIT