Skip to main content
Glama
psaboia
by psaboia

MCP Server Playground

This repository is a playground for experimenting with an MCP Server built with TypeScript. It is a personalized version of the tutorial and video on building an MCP Server, and it is intended both as a learning resource and a platform to test integrations with Calude Desktop and Cursor IDE.

Background

This project is based on the material from:

The original tutorial provided a foundation which I have extended. Alongside the examples from the tutorial, I plan to add additional tools and functionalities to evolve this code into a robust playground for MCP Server experiments.

Related MCP server: mcp-boilerplate

Features

  • TypeScript-based server: Leveraging TypeScript for better structure and error-checking.

  • Modular design: Easy to extend with new commands, features, and integrations.

  • Integration-ready: Designed to work with Calude Desktop and Cursor IDE for an improved development experience.

  • Expandable playground: A sandbox environment to experiment with additional tools and modifications beyond the tutorial examples.

Getting Started

Prerequisites

  • Node.js (v12 or higher)

  • npm (or Yarn, based on your preference)

  • TypeScript (if not installed globally)

Installing via Smithery

To install MCP Server Playground for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install mcp-server-playground --client claude

Installation

  1. Clone the repository:

    git clone <repo_url>
    cd mcp-server-playground
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build

Configuration

This project uses environment variables. Create a .env file to set your configuration options. If an example file (.env.example) is provided in the future, use it as a template.

Development

  • IDE Integration:

    • Designed to work smoothly with Cursor IDE and Calude Desktop.

    • Leverage the built-in tools and extensions supported by these IDEs to maximize productivity.

  • Extending the Project:

    • Feel free to add new commands, integrations, or modify existing functionalities.

    • The modular structure of the server makes it easy to plug in additional tools and features.

Project Structure

mcp-server-playground/
├── src/                # Source code directory
│   └── index.ts       # Main server implementation
├── build/             # Compiled JavaScript files
├── package.json       # Project dependencies and scripts
├── tsconfig.json     # TypeScript configuration
└── README.md         # Project documentation

Available Scripts

  • npm run build - Compiles TypeScript code and sets proper permissions

  • npm run prepare - Runs build script (useful for git hooks)

  • npm run watch - Watches for changes in TypeScript files

  • npm run inspector - Runs the MCP inspector tool

Contributing

Contributions are welcome! If you have suggestions, improvements, or new integrations, please fork the repository and create a pull request with your changes.

References

License

This project is licensed under the MIT License - see the LICENSE file for details.

Notes

This project is a sandbox environment aimed at testing various adaptations and integrations for an MCP Server. Updates and expansions will be made as new tools and ideas are developed.

Roadmap

  • Implement additional tool integrations beyond the tutorial examples

  • Add comprehensive documentation for each tool

  • Create example integrations with Calude Desktop

  • Develop custom tools for Cursor IDE integration

  • Add testing framework and examples

Available Tools

2 tools
calculate_sumB

Add two numbers together

ParametersJSON Schema
NameRequiredDescriptionDefault
aYes
bYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Add') but does not cover traits like error handling, performance, or side effects. For a simple tool, this is a gap, though not severe, as addition is a basic operation with minimal behavioral complexity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with no wasted words, making it highly concise and front-loaded. It efficiently communicates the core function without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (simple addition with two parameters), no annotations, and no output schema, the description is adequate but minimal. It covers the basic purpose but lacks details on usage, behavior, or output, making it incomplete for more nuanced agent decisions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions 'two numbers', which aligns with the two parameters 'a' and 'b' in the schema, but schema description coverage is 0%, so no details are provided in the schema. The description adds minimal semantics by indicating the parameters are numbers for addition, but does not explain their roles or constraints beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Add two numbers together' clearly states the verb ('Add') and resource ('two numbers'), making the purpose specific and understandable. However, it does not differentiate from sibling tools, as the only sibling is 'httpbin_json', which is unrelated, so differentiation is not needed but not explicitly addressed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives or in what context it should be applied. It lacks any mention of prerequisites, constraints, or comparison with other tools, leaving usage entirely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

httpbin_jsonC

Returns data about slide show

ParametersJSON Schema
NameRequiredDescriptionDefault
aNo

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Returns data', which suggests a read-only operation, but doesn't specify any behavioral traits like error handling, rate limits, authentication needs, or what 'slide show' refers to. This leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise, but it's under-specified rather than efficiently informative. It's front-loaded but lacks substance, making it borderline adequate in structure but not truly helpful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (1 parameter, no annotations, no output schema), the description is incomplete. It doesn't explain what data is returned, how 'a' is used, or any context about slide shows, leaving the agent with insufficient information to effectively use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 1 parameter 'a' of type number with 0% description coverage, and the description adds no information about parameters. It doesn't explain what 'a' represents, how it relates to slide shows, or its purpose, failing to compensate for the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool 'Returns data about slide show', which provides a vague purpose without specifying what kind of data or what operation is performed. It doesn't clearly distinguish from the sibling tool 'calculate_sum', and while it's not a tautology (it adds 'about slide show'), it remains too general to be helpful for precise tool selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the sibling 'calculate_sum' or any alternatives. The description implies it's for slide show data, but without context on when it's appropriate or what scenarios it addresses, leaving the agent with minimal usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

C2.5/5.0
Disambiguation5/5

The two tools have completely distinct purposes: calculate_sum performs a mathematical addition operation, while httpbin_json returns data about a slide show. There is no overlap or ambiguity between these functions, making it easy for an agent to select the correct tool.

Naming Consistency3/5

The naming is mixed: calculate_sum uses a verb_noun pattern, but httpbin_json is more of a noun-based name with a prefix. While both are readable, they don't follow a consistent convention, which could cause minor confusion in a larger set.

Tool Count2/5

With only 2 tools, this server feels thin and under-scoped for a 'Playground' purpose, which typically implies a broader set of utilities. The tools are too few to meaningfully explore or test MCP capabilities, suggesting an incomplete implementation.

Completeness1/5

The tool surface is severely incomplete for a 'Playground' domain, which should offer diverse functionalities. There are obvious gaps, such as missing basic operations like subtraction, multiplication, or other HTTP-related tools, making it inadequate for comprehensive agent workflows.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A TypeScript-based server project that can be integrated with Cursor IDE as an MCP (Model Control Protocol) server, enabling enhanced development capabilities.
    134
  • A
    license
    A
    quality
    A
    maintenance
    Production-ready template for building MCP servers with TypeScript, featuring example tools and resources, and Claude Desktop integration.
    1
    15
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A TypeScript template for building MCP servers, enabling developers to create custom tools for AI assistants like Claude.
    27
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A TypeScript MCP server boilerplate with example tools (calculator, greet) and resources (system info), ready for extension and integration with Cursor.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/psaboia/mcp-server-playground'

If you have feedback or need assistance with the MCP directory API, please join our Discord server