thoughtspot
MCP Serverthoughtspotpublic

mcp testing kit

The testing library you need to test your MCP servers

Repository Info

8
Stars
1
Forks
8
Watchers
0
Issues
TypeScript
Language
MIT License
License

About This Server

The testing library you need to test your MCP servers

Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.

Documentation

mcp-testing-kit
Coverage Status !NPM Version

The testing library you need to test your MCP servers.

Overview

mcp-testing-kit provides utilities to test Model Context Protocol (MCP) servers. It allows you to connect to an MCP server instance, send requests, receive notifications, and assert server behavior in your tests.

Features

  • Works with any testing framework (vitest, jest etc)
  • Lightweight, provides "just enough" utils to test an MCP server.
  • Typescript

Installation

$ npm i -D mcp-testing-kit

Example

Suppose you have an MCP server defined in example/basic/src/index.ts:

// mcp-server.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

const server = new McpServer({ name: 'simple-mcp-server', version: '1.0.0' });

server.tool(
  'add',
  'Add two numbers MCP style',
  { 
    a: z.number().describe('first number'), 
    b: z.number().describe('second number') 
  },
  async ({ name }) => ({
    messages: [
      { role: 'user', content: { type: 'text', text: String(a + b) } }
    ]
  })
);

export default server;

You can write a test using mcp-testing-kit like this:

// mcp-server.test.js
import server from "../src/index.js";
// Use your favorite testing framework.
import { describe, it, expect, afterEach } from "vitest";
import { connect, close } from "../../../index.js";

describe("Basic MCP server", () => {
  afterEach(async () => {
    await close(server);
  });

  it("Should return correct sum when `sum` is called", async () => {
    // Connect to the server and create a mock client.
    const client = await connect(server);
    const result = await client.callTool("greeting-template", { a: 10, b: 2 });
    expect(result.content[0].text).toEqual("12");
  });
});

How it works

  • Creates a dummy transport layer to connect to the MCP Server directly instead of relying on HTTP/SSE.
  • Provides abstractions for invoking the tools/resources/prompts directly on the server.

API

connect(server: Server)

Connects to an MCP server instance and returns a client with the following methods:

MethodSignatureDescription
listTools(): Promise<ListToolsResult>List all tools registered on the server.
callTool(tool: string, params?: any): Promise<any>Call a tool by name with optional parameters.
listResources(): Promise<ListResourcesResult>List all resources registered on the server.
listPrompts(): Promise<ListPromptsResult>List all prompts registered on the server.
getPrompt(prompt: string, params?: any): Promise<any>Get a prompt by name with optional parameters.
onNotification(cb: (message: JSONRPCMessage) => void): voidRegister a callback for notifications from the server.
onError(cb: (message: JSONRPCMessage) => void): voidRegister a callback for error messages from the server.
onProgress(cb: (message: JSONRPCMessage) => void): voidRegister a callback for progress notifications from the server.
sendToServer(message: Request): Promise<any>Send a raw JSON-RPC request to the server.

close(server: Server)

Closes the MCP server instance.

More Examples

See example/basic for a full-featured MCP server and corresponding tests.

License

MIT

Quick Start

1

Clone the repository

git clone https://github.com/thoughtspot/mcp-testing-kit
2

Install dependencies

cd mcp-testing-kit
npm install
3

Follow the documentation

Check the repository's README.md file for specific installation and usage instructions.

Repository Details

Ownerthoughtspot
Repomcp-testing-kit
LanguageTypeScript
LicenseMIT License
Last fetched8/10/2025

Recommended MCP Servers

💬

Discord MCP

Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.

integrationsdiscordchat
🔗

Knit MCP

Connect AI agents to 200+ SaaS applications and automate workflows.

integrationsautomationsaas
🕷️

Apify MCP Server

Deploy and interact with Apify actors for web scraping and data extraction.

apifycrawlerdata
🌐

BrowserStack MCP

BrowserStack MCP Server for automated testing across multiple browsers.

testingqabrowsers

Zapier MCP

A Zapier server that provides automation capabilities for various apps.

zapierautomation