npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

api-test-1-mcp

v0.1.0-alpha.1

Published

The official MCP Server for the API Test 1 API

Readme

API Test 1 TypeScript MCP Server

It is generated with Stainless.

Installation

Direct invocation

You can run the MCP Server directly via npx:

export API_TEST_1_API_KEY="My API Key"
export API_TEST_1_USERNAME="My Username"
export API_TEST_1_PASSWORD="My Password"
npx -y api-test-1-mcp@latest

Via MCP Client

There is a partial list of existing clients at modelcontextprotocol.io. If you already have a client, consult their documentation to install the MCP server.

For clients with a configuration JSON, it might look something like this:

{
  "mcpServers": {
    "api_test_1_api": {
      "command": "npx",
      "args": ["-y", "api-test-1-mcp", "--client=claude", "--tools=dynamic"],
      "env": {
        "API_TEST_1_API_KEY": "My API Key",
        "API_TEST_1_USERNAME": "My Username",
        "API_TEST_1_PASSWORD": "My Password"
      }
    }
  }
}

Exposing endpoints to your MCP Client

There are two ways to expose endpoints as tools in the MCP server:

  1. Exposing one tool per endpoint, and filtering as necessary
  2. Exposing a set of tools to dynamically discover and invoke endpoints from the API

Filtering endpoints and tools

You can run the package on the command line to discover and filter the set of tools that are exposed by the MCP Server. This can be helpful for large APIs where including all endpoints at once is too much for your AI's context window.

You can filter by multiple aspects:

  • --tool includes a specific tool by name
  • --resource includes all tools under a specific resource, and can have wildcards, e.g. my.resource*
  • --operation includes just read (get/list) or just write operations

Dynamic tools

If you specify --tools=dynamic to the MCP server, instead of exposing one tool per endpoint in the API, it will expose the following tools:

  1. list_api_endpoints - Discovers available endpoints, with optional filtering by search query
  2. get_api_endpoint_schema - Gets detailed schema information for a specific endpoint
  3. invoke_api_endpoint - Executes any endpoint with the appropriate parameters

This allows you to have the full set of API endpoints available to your MCP Client, while not requiring that all of their schemas be loaded into context at once. Instead, the LLM will automatically use these tools together to search for, look up, and invoke endpoints dynamically. However, due to the indirect nature of the schemas, it can struggle to provide the correct properties a bit more than when tools are imported explicitly. Therefore, you can opt-in to explicit tools, the dynamic tools, or both.

See more information with --help.

All of these command-line options can be repeated, combined together, and have corresponding exclusion versions (e.g. --no-tool).

Use --list to see the list of available tools, or see below.

Specifying the MCP Client

Different clients have varying abilities to handle arbitrary tools and schemas.

You can specify the client you are using with the --client argument, and the MCP server will automatically serve tools and schemas that are more compatible with that client.

  • --client=<type>: Set all capabilities based on a known MCP client

    • Valid values: openai-agents, claude, claude-code, cursor
    • Example: --client=cursor

Additionally, if you have a client not on the above list, or the client has gotten better over time, you can manually enable or disable certain capabilities:

  • --capability=<name>: Specify individual client capabilities
    • Available capabilities:
      • top-level-unions: Enable support for top-level unions in tool schemas
      • valid-json: Enable JSON string parsing for arguments
      • refs: Enable support for $ref pointers in schemas
      • unions: Enable support for union types (anyOf) in schemas
      • formats: Enable support for format validations in schemas (e.g. date-time, email)
      • tool-name-length=N: Set maximum tool name length to N characters
    • Example: --capability=top-level-unions --capability=tool-name-length=40
    • Example: --capability=top-level-unions,tool-name-length=40

Examples

  1. Filter for read operations on cards:
--resource=cards --operation=read
  1. Exclude specific tools while including others:
--resource=cards --no-tool=create_cards
  1. Configure for Cursor client with custom max tool name length:
--client=cursor --capability=tool-name-length=40
  1. Complex filtering with multiple criteria:
--resource=cards,accounts --operation=read --tag=kyc --no-tool=create_cards

Importing the tools and server individually

// Import the server, generated endpoints, or the init function
import { server, endpoints, init } from "api-test-1-mcp/server";

// import a specific tool
import createTokenOAuthV1 from "api-test-1-mcp/tools/oauth/v1/create-token-oauth-v1";

// initialize the server and all endpoints
init({ server, endpoints });

// manually start server
const transport = new StdioServerTransport();
await server.connect(transport);

// or initialize your own server with specific tools
const myServer = new McpServer(...);

// define your own endpoint
const myCustomEndpoint = {
  tool: {
    name: 'my_custom_tool',
    description: 'My custom tool',
    inputSchema: zodToJsonSchema(z.object({ a_property: z.string() })),
  },
  handler: async (client: client, args: any) => {
    return { myResponse: 'Hello world!' };
  })
};

// initialize the server with your custom endpoints
init({ server: myServer, endpoints: [createTokenOAuthV1, myCustomEndpoint] });

Available Tools

The following tools are available in this MCP server.

Resource oauth.v1:

  • create_token_oauth_v1 (write):

Resource api.v2:

  • access_tokens_api_v2 (write): Returns a scoped access token based on the generated link token.
  • login_api_v2 (write): Generates a one-time password and sends it to the email address passed. In lower environments, the one-time password is returned in the response.
  • retrieve_app_versions_api_v2 (read): Gets 'AppVersion' details. Includes version for iOS and Android. AccessToken is expected to be passed in headers.
  • retrieve_categories_api_v2 (read): Get all Category resources.

Resource api.v2.customers:

  • create_v2_api_customers (write): Register a new customer on TodayTix. Only available on TodayTix retailer. The server will verify that the authenticated principal has permission to create a new customer with the provided identity.

  • retrieve_v2_api_customers (read): Gets Customer details.

    Supports embedded homeLocation object. Use embed=homeLocation to get full Location object instead of homeLocationId.

  • update_v2_api_customers (write): Sets the customer's consent for a partner's account

  • bookmark_orderings_v2_api_customers (write): Order customer bookmarks for a specific location

  • deletion_requests_v2_api_customers (write): Create a request for deleting all customer's personal data in our and our third-party systems.

  • retrieve_available_profile_images_v2_api_customers (read): Returns all profile images available for the customer to select from. This is customer-specific since certain images may be gated to certain customers based on their rewards tier.

  • retrieve_rewards_summary_v2_api_customers (read): Returns customer's reward information.

Resource api.v2.customers.alerts:

  • create_customers_v2_api_alerts (write): Set an alert for this customer, show, and ticket type. If the alert was previously set and is no longer valid, we re-set it.

  • list_customers_v2_api_alerts (read): Get all current pending alerts.

    Use show parameter to get alert only for this show.

  • delete_customers_v2_api_alerts (write): Remove alert for 'show' and 'ticketType'.

Resource api.v2.customers.bookmarks:

  • create_customers_v2_api_bookmarks (write): Bookmarks a Show or a ShowGroup Can only create a bookmark for an active Show/ShowGroup
  • update_customers_v2_api_bookmarks (write): Update an existing bookmark. Now this is only used for hasSeen field for ShowBookmark.
  • list_customers_v2_api_bookmarks (read): Returns a list of bookmarks that belong to the specific customer, with the following criteria
    • All Shows (whether active or inactive) in the specified location.
    • Only active ShowGroups in the specified location.
    • In the order of displaying.
  • delete_customers_v2_api_bookmarks (write): Deletes the bookmark. (Un-bookmark the show or show group)

Resource api.v2.customers.lottery_entries:

  • update_customers_v2_api_lottery_entries (write): Update a LotteryEntry resource by ID. Customers can modify email or pickupName, share on social media, or decline their winning entry.
  • alohomora_customers_v2_api_lottery_entries (write): Endpoint for group lottery entries, Harry Potter or otherwise. Enters the customer into the lotteries corresponding to the sent showtimes if the show supports group lottery, or is Harry Potter.
  • lottery_entries_customers_v2_api_lottery_entries (write): Create lottery entry object. Enter lottery flow.
  • resend_confirmation_email_customers_v2_api_lottery_entries (write): Send a new email related to this lottery entry.
  • retrieve_lottery_entries_customers_v2_api_lottery_entries (read): Get lottery entries for valid lotteries
    • For WINNER, WAITING and PENDING status, return every entry.
    • For LOSER status, only return entries for last 7 days of performance
    • For all other statuses, do not return to clients. Note: Clients don't know about waiting status, so return PENDING status instead of waiting
  • update_batch_customers_v2_api_lottery_entries (write): Batch update a set of LotteryEntry resources. Right now, this is only supported for updating social shares on HP Lottery entries, and all LotteryEntry IDs must be for showtimes in the same LotteryGroup.

Resource api.v2.customers.offers:

  • retrieve_customers_v2_api_offers (read): Get an offer if it is currently available. If offer is unavailable client needs to display error message from server. (available offer is offer with status ASSIGNED or SOLD_OUT).
  • update_customers_v2_api_offers (write): Modified offer fields e.g hasBeenViewed or status. Client could modify hasBeenViewed only to true and status only to DECLINED
  • list_customers_v2_api_offers (read): Get a list of offers that I currently have available (only with status ASSIGNED and SOLD_OUT).

Resource api.v2.customers.payment_methods:

  • delete_customers_v2_api_payment_methods (write): Remove payment method
  • payment_methods_customers_v2_api_payment_methods (write): Create new payment method
  • retrieve_payment_methods_customers_v2_api_payment_methods (read): Get all payment methods.

Resource api.v2.customers.shows_reviews:

  • retrieve_shows_reviews_customers_v2_api_shows_reviews (read): Get all show ratings for current customer.
  • update_shows_reviews_customers_v2_api_shows_reviews (write): Post a rating Implicit customerId = me.

Resource api.v2.customers.rush_grants:

  • retrieve_rush_grants_customers_v2_api_rush_grants (read): Get a list of shows I currently have authorization to access. If show parameter exist - then only one show.
  • rush_grants_customers_v2_api_rush_grants (write): Request a grant to access rush for a show.

Resource api.v2.contentful.webhook:

  • handle_publish_article_contentful_v2_api_webhook (write): Publish an article.

Resource api.v2.holds:

  • create_v2_api_holds (write): Hold a group of tickets. holdType define what type of tickets to hold.

    holdType = REGULAR and (seatSelectionType == BEST_AVAILABLE || seatSelectionType = null), required params are:

    • showtime
    • provider
    • providerParams
    • numTickets

    holdType = REGULAR and seatSelectionType == PYOS, required params are:

    • seatSelectionType
    • showtime
    • seats

    holdType = RUSH, required params are:

    • showtime
    • numTickets
    • customer

    holdType = LOTTERY, required params are:

    • lotteryEntry
    • customer

    holdType = OFFER, required params are:

    • offer
    • customer

    holdType = null, the only param allowed is:

    • holdBodyId
  • retrieve_v2_api_holds (read): Get a Hold by ID. Non-TodayTix retailers get a HoldSummary, TodayTix returns Hold.

  • update_v2_api_holds (write): Updates the specified Hold. This can be for a few actions:

    1. Add new seats to a previously cleared hold. Not supported on TodayTix retailer.
    2. Apply a voucher to a non-empty hold.
    3. Apply a ticket protection plan to the hold.

    The server will verify that the access token is able to manipulate the requested holdId.

  • list_v2_api_holds (read): Get an array of all holds the present access token is authorized to have. For now, this is always a list of length one.

  • delete_v2_api_holds (write): Releases the specified hold. The server will verify that the access token is able to manipulate (and delete) the requested holdId.

  • delete_ticket_protection_v2_api_holds (write): Removes applied ticket protection plan to the specified hold. The server will verify that the access token is able to manipulate the requested holdId.

  • delete_voucher_v2_api_holds (write): Removes applied voucher to the specified hold. The server will verify that the access token is able to manipulate the requested holdId.

  • retrieve_apple_pay_session_v2_api_holds (read): Gets Apple Pay Session data to be used to purchase hold with Apple Pay.

  • update_clear_v2_api_holds (write): Clear the existing "basket" of its seats. This means we release the seats on the provider side, but the hold remains live with the same "booking reference number" (hold ID). New seats can subsequently be added to the empty hold via PATCH /api/v2/holds/{holdId}. This is not currently supported for TodayTix retailer.

Resource api.v2.locations:

  • retrieve_v2_api_locations (read): Get Location with id.
  • list_v2_api_locations (read): Gets all Locations.
  • retrieve_geolocation_v2_api_locations (read): Capture geolocation data from CloudFront headers, and return them as a JSON payload.
  • retrieve_geosegment_v2_api_locations (read): Given a set of params, determine the geosegment a customer belongs to, relative to the main browsing location. Return values can be LOCAL, REGIONAL or TOURIST.
  • retrieve_privacy_law_v2_api_locations (read): Given a set of params, determine the privacy law by which the anticipated customer would be covered, assuming they complete the sign-up process.

Resource api.v2.notifications:

  • create_v2_api_notifications (write): Receives a Create or Voucher Release Notification for the Provider Order
  • delete_all_v2_api_notifications (write): Receives a Cancellation Notification for the Provider Order
  • validate_pricing_v2_api_notifications (write): Validates notifications and updates their statuses, requeueing them if validation fails

Resource api.v2.orders:

  • create_v2_api_orders (write): Create a new order for the requested customer, or guest, using the requested holdId. The server will verify that the access token is authorized to access this hold, and also that the authenticated principal has the ability to create an order for the requested customer.

  • retrieve_v2_api_orders (read): Get an order ID by HoldTransaction ID.

    If the request originates from the TodayTix retailer, the ID represents the transaction ID.

    For requests from non-TT retailers, the ID is the hold ID prefixed with "TTG" (e.g., "TTG12341234"). Non-TT retailers do not use authorization tokens, so the hold's secretKey must be included in the request payload.

  • update_v2_api_orders (write): Modify an order. The server will verify that the authenticated principal is allowed to edit this orderId, by verifying the customer of the order is currently authenticated. If the id is a hold id, then the authentication is based on the secret in the request body and the secret in the hold transaction being equal.

  • list_v2_api_orders (read): Get all orders that the authenticated principal has access to. Best usage will specify the customer public id or "me" in the query filter parameter, even though it is not strictly necessary (as a customer can only access their own orders).

  • assigned_customers_v2_api_orders (write): Assigning a customer to an order. The server will verify that the authenticated principal is allowed to create a customer for this orderId, by verifying the customer of the order is currently authenticated.

  • initiate_transfer_v2_api_orders (write): Starts the transfer of the received order to the currently authenticated customer.

  • refund_voucher_v2_api_orders (write): Refund a PWYH voucher to credit card.

  • reissue_ticket_v2_api_orders (write): Send a new email related to this order with the new barcodes. The server will verify that the authenticated principal is allowed to access this order's id.

  • relist_v2_api_orders (write): Puts an order up for resale, and will issue a voucher to the customer if it resells

  • resend_confirmation_email_v2_api_orders (write): Send a new email related to this order. The server will verify that the authenticated principal is allowed to access this id.

  • retrieve_apple_passes_v2_api_orders (read): Get a List of Apple passes to add to Wallet. The server will verify access to this order.

  • retrieve_customer_care_information_v2_api_orders (read): Get the order with a given confirmation number, authenticating with the attached secret.

  • retrieve_google_passes_v2_api_orders (read): Get a URL containing one or more Google Pay Passes for this order.

  • retrieve_relist_info_v2_api_orders (read): Get the relist information for this order.

  • ticket_protection_redemption_v2_api_orders (write): Redeem ticket protection for an existing order given order's id

  • update_reclaim_v2_api_orders (write): Reclaim tickets from customer relist transaction given original transaction Id

  • void_v2_api_orders (write): Void an order by its hold ID.

Resource api.v2.orders.transfers:

  • create_orders_v2_api_transfers (write): Initiates a transfer of an order to another customer.

    This endpoint allows an authenticated customer to transfer their order to another customer. The response includes a transfer URL that can be shared with the recipient.

  • retrieve_orders_v2_api_transfers (read): This endpoint retrieves limited transfer information for the recipient, allowing them to preview and potentially accept the transfer. This doesn't required authentication, but the transferId, orderId and action token must be valid.

  • update_orders_v2_api_transfers (write): This endpoint allows an authenticated customer to update a transfer status.

Resource api.v2.retailers:

  • retrieve_v2_api_retailers (read): Get Retailer with retailerId. Also possible to use me instead of retailerId, but in this case Basic Auth is required. In case Basic Auth exists, then RetailerDetails will be returned.
  • retrieve_psp_options_v2_api_retailers (read): Get list of pspOptions for retailerId and 'currencyCode.

Resource api.v2.shows:

  • retrieve_v2_api_shows (read): Get show by showId. You could use parameter embed=showGroup to include showGroup object inside of this show.
  • list_v2_api_shows (read): Retrieve a list of shows based on given criteria
  • retrieve_deals_v2_api_shows (read): Get all shows that have exclusive inventory available
  • retrieve_rush_settings_v2_api_shows (read): Get rushSettings for show

Resource api.v2.shows.lottery_settings:

  • generate_new_question_shows_v2_api_lottery_settings (write): Generate a new skill-based problem for this lottery
  • retrieve_lottery_settings_shows_v2_api_lottery_settings (read): Get lotterySettings for show

Resource api.v2.shows.showtimes:

  • list_shows_v2_api_showtimes (read): Get list of all UPCOMING showtimes for show.

  • retrieve_inventory_items_shows_v2_api_showtimes (read): Get list of InventoryItem for this showtime.

    InventoryItem is combination of section, price and discount.

    Client need to group all Inventory Items by section_price_discount and order by orderNum, ASC, and then by price, DESC.

  • retrieve_sections_shows_v2_api_showtimes (read): Get list of AssignedSection or GASection for this showtime.

  • retrieve_with_rush_availability_shows_v2_api_showtimes (read): Get list of all UPCOMING showtimes for show that have rush tickets available.

Resource api.v2.show_groups:

  • retrieve_v2_api_show_groups (read): Get ShowGroup by id
  • retrieve_show_groups_v2_api_show_groups (read): Get list of all show groups associated with a specific location

Resource views.v2:

  • list_hero_views_views_v2 (read): Get list of hero views for specific location, or for a list of Shows or ShowGroups

    When location is passed:

    • Ignore showId and showGroupId
    • Return a list of hero views for the specific location.

    When location is NOT passed:

    • Return a list of hero views for the Shows or ShowGroups specified by the ids in the list.

    Supports pagination.

  • retrieve_hero_filter_views_v2 (read): Get Hero Filter to fulfill filter view

Resource feeds.v2:

  • list_shows_feeds_v2 (read): A feed for show data, used for Iterable for supplemental data for email templating. Includes only active shows in the requested locations. Excludes URL shows.
  • retrieve_feed_feeds_v2 (read): Returns a product feed containing information about shows in the format required by a particular advertising platform (determined based on the provided type).