Skip to main content
Glama

mcp-server-interview

Model Context Protocol server for croonchloop interview

Usage

The following steps were how the server was tested.

First a client like claude desktop should be installed. Then open a terminal in the mcp-server-interview folder and execute:

Add MCP to your project dependencies:

uv add "mcp[cli]"

Then install the mcp server in claude:

uv run mcp install src/main.py

Related MCP server: Todoist MCP Server

Structure

MCP-SERVER-INTERVIEW/
├── requirements.txt
├── .gitignore
├── config/
│   ├── conf.yml
|   ├── loader.py
│   └── __init__.py
├── src/
|   ├── dto/
|   │   ├── lists.py
|   │   └── tasks.py
|   ├── service/
|   |   ├── __init__.py
|   │   ├── todoList.py
|   │   └── tasks.py
│   └── main.py
├── README.md
└── requirements.txt

Interacting with the server.

Examples of propts given to claude desktop to test and interact with the server. The prompts were given in spanish like the example of the challenge instructions.

Create a new todo list.

Crea una lista llamada 'Nombre de lista"

Create a task for a specific list.

Crea la tarea llamada 'tarea1' con descripcion 'desc' en la lista llamda 'Nombre de lista'

Start a task (change the task's status to 'InProgress')

Comenzar la tarea 'tarea1' de la lista 'Nombre de lista'

Complete a task (change the task's status to 'Completed')

Terminar la tarea 'tarea1' de la lista 'Nombre de lista'

Delete a task

Eliminar la tarea 'tarea1' de la lista 'Nombre de lista'

Next steps

Tasks: Right now it's not avilable to change name and description for a giving task.

Areas for improvement

Test: Even though the server was manually tested, testing the service layer will ensure correctness in futures changes.

App Configuration: After having dependency-related errors, the app configuration module was left out, and the todo list service url was hardcoded in the main script. However, keeping all configuration values in one place make te deployment and usage easier.

Project structure: Structuring a project in layers helps to assign responsabilities and group similar functions and classes. For this kind of project, it's not common to find a architecture design to follow.

Available Tools

7 tools
complete_a_taskC

Complete, terminate o finalizar una tarea / task con nombre 'name' en la lista llamada 'listname'

Inputs: list (required), name (required).

create_listD

Crear lista ‘Prueba’

Inputs: name (required).

create_taskC

Crear task o tarea ‘Prueba’ con descripcion 'desc' en la lista 'nombre de lista'

Inputs: desc (required), list (required), name (required).

delete_a_taskA

Eliminar, remover o quitar una tarea / task con nombre 'name' de la lista llamada 'listname'

Inputs: list (required), name (required).

get_listC

Obter, ver la lista con nombre ‘Prueba’

Inputs: name (required).

start_a_taskC

Comenzar, empezar o start una tarea / task con nombre 'name' en la lista llamada 'listname'

Inputs: list (required), name (required).

update_list_nameC

Cambiar, actualizar o update el nombre de la lista ‘OldName’ a o por 'NewName'

Inputs: newName (required), oldName (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 7 tools

    Disambiguation5/5

    All seven tools target distinct operations: list creation, list renaming, list retrieval, task creation, task starting, task completion, and task deletion. No two tools have overlapping purposes.

    Naming Consistency3/5

    Tool names follow a verb_noun pattern, but there is inconsistency: 'start_a_task' and 'complete_a_task' include an extra 'a_', while others like 'create_task' and 'delete_a_task' vary in article usage. This breaks the otherwise consistent pattern.

    Tool Count5/5

    Seven tools cover the essential operations for a list-based task manager without being overly numerous or insufficient. The count feels right for the domain.

    Completeness3/5

    Basic CRUD is present but incomplete: there is no delete list, no update task (e.g., description or name), and no way to list all tasks in a list. Notable gaps exist for a full task management workflow.

    Related MCP Connectors

    Related MCP Servers