Skip to main content
Glama
README.md
# MCP Playground

## Requirements

- Python 3.13
- [uv](https://docs.astral.sh/uv/) package manager
- SQLite3

## Installation

1. **Clone the repository**

   ```bash
   git clone <repository-url>
   cd mcp_playground
   ```

2. **Install dependencies with uv**

   ```bash
   uv sync
   ```

3. **Setup the SQLite database**

   1. Create a new SQLite database file using the provided schema.

   ```bash
   cd db
   ```

   ```bash
   sqlite3 database.db < schema.sql
   ```

   2. Insert dummy data into the database.

   ```bash
   sqlite3 database.db < insert_data.sql
   ```

4. **Start the venv (if you want to start the server manually)**

   ```bash
   source .venv/bin/activate
   ```

## Usage

### Starting the server

The server currently uses IO for communication. It is not meant to be started manually, instead it should be accessed through an MCP client.

### Implemented Functions

The following functions are implemented in the server:

1. **`db_schema` (resource)**

   - Returns the database schema by reading the `schema.sql` file.

2. **`get_users` (tool)**

   - Fetches a list of all user names from the `users` table in the database.

3. **`get_all_employee_profiles` (tool)**

   - Retrieves all employee profiles

4. **`send_email` (tool)**

   - Sends an email using mailtrap.
   - Requires API-key in .env file:
     ```
     MAILTRAP_API_TOKEN=your_mailtrap_api_key
     ```

5. **`propose_team_for_project` (prompt)**

   - Given a project description and team size, proposes a team of employees best suited for the project based on their skills and experience.

### Integration with Claude Desktop as the MCP client

Add the following configuration to your MCP client (e.g., Claude Desktop):

- Settings → Developer → Edit config → `claude_desktop_config.json`
- `mcpServers`: The server name, in this case `not-solita-corp`.
- `command`: The ABSOLUTE path to the `uv` executable on your system.
- `args`: The arguments to start the MCP server, including the ABSOLUTE path to the `mcp_playground` directory.
- Note: Windows paths use backslashes (`\`).

```json
{
  "mcpServers": {
    "mcp_demo": {
      "command": "/path/to/user/.local/bin/uv",
      "args": [
        "--directory",
        "/path/to/user/mcp_playground",
        "run",
        "server.py"
      ]
    }
  }
}
```

TDQS

D1.6/5.0

Scored across 3 tools

Disambiguation3/5

get_users and get_all_employee_profiles likely serve similar purposes, potentially causing confusion. Without descriptions, an agent may select the wrong tool.

Naming Consistency4/5

All tools follow a verb_noun pattern (get_, send_), but the noun forms are inconsistent: 'users' versus 'all_employee_profiles' and 'email'.

Tool Count3/5

With only 3 tools, the set is small but might be adequate for a simple playground. The count is borderline but not extreme.

Completeness2/5

Missing basic CRUD operations for users/employees (create, update, delete) and limited email functionality (only send). Significant gaps for a typical management domain.

Maintenance

ActivityInactive
ResponsivenessNo issues