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'

ParametersJSON Schema
NameRequiredDescriptionDefault
listYes
nameYes

TDQS

C2.6/5.0
Behavior2/5

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

The description indicates a state change but does not disclose specifics: what happens to the task (e.g., marked as done, archived), whether it is reversible, or any side effects. With no annotations, this is insufficient.

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 short, but the bilingual phrasing may be confusing. It front-loads the action but lacks concise clarity.

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?

For a simple tool with no output schema, the description omits crucial details: return value, success/failure behavior, and handling of edge cases (e.g., already completed tasks).

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 description barely adds meaning beyond the schema. It names the parameters (name, listname) but 'listname' does not match the schema's 'list'. No clarification of values or constraints. Schema coverage is 0%.

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 clearly states the action (complete/terminate) and the resource (task). It distinguishes from siblings like start_a_task and delete_a_task, though the parameter name mismatch ('listname' vs 'list') slightly reduces clarity.

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?

No guidance is provided on when to use this tool versus alternatives like delete_a_task or start_a_task. The description lacks context for an agent to decide appropriately.

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

create_listD

Crear lista ‘Prueba’

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

D1.5/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as destructive nature (creating a list is likely destructive) or permission requirements.

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

Conciseness2/5

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

The description is a single short sentence, but it is under-specification rather than effective conciseness. It lacks essential information.

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

Completeness1/5

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

For a tool with one parameter and no output schema, the description should at least explain what a list is and what creating it does. It is completely inadequate.

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

Parameters1/5

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

The input schema has a single parameter 'name' with no description, and the description adds no meaning. Schema description coverage is 0%, so the description fails to explain what the parameter represents.

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 'Crear lista 'Prueba'' indicates a create list operation but is vague and seems like a placeholder. It does not specify what list is created or distinguish from sibling tools like create_task.

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?

No usage guidelines are provided. The description does not indicate when to use this tool over alternatives like update_list_name or get_list.

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

create_taskC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
descYes
listYes
nameYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only states the basic action. It does not mention return values, idempotency, error behavior, or required permissions.

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 extremely concise (one line), but it sacrifices completeness. For a 3-parameter tool, more detail is needed.

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 tool's simplicity and lack of annotations/output schema, the description is insufficient. It does not explain return values, constraints, or differentiate from siblings, leaving significant gaps.

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?

Schema description coverage is 0%, so the description must compensate. It provides example values ('Prueba', 'desc', 'nombre de lista') which vaguely hint at parameter roles, but this is potentially misleading as the parameters are generic.

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 clearly states the tool creates a task ('Crear task o tarea') with example parameter values, making the verb and resource explicit. However, it does not differentiate from siblings like start_a_task or complete_a_task, which are about state changes.

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?

No guidance is provided on when to use this tool versus alternatives (e.g., start_a_task, delete_a_task). The description lacks context on prerequisites or exclusion criteria.

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

delete_a_taskA

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

ParametersJSON Schema
NameRequiredDescriptionDefault
listYes
nameYes

TDQS

A3.5/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. It only states the basic deletion behavior without disclosing side effects (e.g., permanence, cascading effects, required permissions). This is insufficient for full transparency.

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, efficient sentence that immediately conveys the purpose. It contains no unnecessary words and is front-loaded with the action verb.

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?

The description covers the basic operation but lacks details like error handling, case sensitivity, behavior on missing tasks, or interactions with other tools. For a tool with no output schema and two simple parameters, it is minimally complete but could be improved.

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 adds context that 'name' is the task name and 'list' is the list name, which is minimal beyond the schema field names. Given 0% schema coverage, this provides some clarification but lacks constraints, format, or examples. Baseline for two simple string parameters is adequate.

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

Purpose5/5

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

The description clearly states the action (delete, remove, take away) and the target (task with name 'name' from list 'listname'). It uses multiple synonyms to reinforce the purpose and distinguishes from sibling tools like create_task, start_a_task, and complete_a_task by specifying deletion.

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

Usage Guidelines3/5

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

The description implies when to use this tool (to delete a task) but provides no explicit guidance on when not to use it, prerequisites, or alternatives. For a simple deletion tool, this is minimally acceptable but lacks depth.

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

get_listC

Obter, ver la lista con nombre ‘Prueba’

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

C2.4/5.0
Behavior2/5

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

The description implies a read-only operation ('ver'), but with no annotations to confirm, the agent must infer safety. No details on side effects, permissions, or response format are given. The mention of a specific list name is misleading.

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 extremely short, which is concise, but it sacrifices essential information. It contains a likely error (specific name) and does not front-load key details. Brevity alone does not make it effective.

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 no output schema, annotations, and only one parameter, the description should at least clarify the return value (e.g., list details, success flag) and any special behavior. It fails to do so, leaving the agent guessing. Context from sibling tools suggests CRUD, but the description is insufficient.

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 no descriptions and 0% coverage. The description adds that the 'name' parameter corresponds to a list name, but only via an example ('Prueba'). It does not explain valid values or constraints, so it barely augments the schema.

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

Purpose3/5

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

The description indicates the tool retrieves a list by name, which is clear from the verb 'get' and the reference to 'list'. However, it erroneously specifies a concrete name 'Prueba', causing confusion about whether this is a fixed or parameterized operation. This reduces clarity.

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?

No guidance is provided on when to use this tool versus alternatives like create_list or update_list_name. There is no mention of prerequisites or context. The description lacks any usage direction.

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

start_a_taskC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
listYes
nameYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that a task is started, but does not explain side effects, required permissions, or whether the tool modifies state (e.g., changes a status field). This is insufficient for an agent to understand the tool's impact.

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, which is concise, but it mixes English and Spanish awkwardly and uses repetitive phrasing. It could be more structured and clear without redundancy.

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 no output schema, no annotations, and zero parameter descriptions in the schema, the description should provide comprehensive context. It fails to explain the tool's place among siblings (create_task, complete_a_task, delete_a_task) or what 'starting' a task entails, leaving the agent underinformed for proper selection and invocation.

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 input schema has 0% description coverage, so the description must compensate. It maps the parameters 'name' and 'list' to the task name and list name, respectively, adding basic meaning. However, it lacks details on value constraints (e.g., allowed characters, length limits) or examples, which limits an agent's ability to use the parameters correctly.

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 clearly states the action (start a task) and the required resources (task name and list name). However, it does not differentiate 'start' from sibling tools like 'create_task' or 'complete_a_task', which could have overlapping meanings.

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. There is no mention of prerequisites, state of the task before starting, or any conditions that warrant using 'start_a_task' over 'create_task' or 'complete_a_task'.

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

update_list_nameC

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

ParametersJSON Schema
NameRequiredDescriptionDefault
newNameYes
oldNameYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility for behavioral disclosure. It does not state whether the operation is idempotent, what happens if the old name does not exist, or if there are any side effects. This is a significant gap for a mutation tool.

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 relatively short and front-loaded with the action. However, it uses a mix of Spanish and English, which is slightly redundant ('Cambiar, actualizar o update'). It could be more concise by using a single language.

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?

For a rename tool with two parameters and no output schema, the description is minimally adequate but missing key details like what the tool returns or if the operation is reversible. Given the lack of annotations, it is incomplete.

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?

With 0% schema description coverage, the description should compensate by adding meaning beyond parameter names. However, it merely restates 'OldName' and 'NewName' in a sentence, offering no additional constraints, formats, or examples.

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 clearly identifies the action (rename/update) and resource (list name). It specifies the old name and new name parameters, making the tool's purpose immediately understandable. A slight deduction for the awkward multilingual phrasing, but it is functionally clear.

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?

No guidance is provided regarding when to use this tool versus its siblings (e.g., create_list, get_list). There is no mention of prerequisites, when not to use it, or what context is appropriate.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv0.1.0
    • First observedcomplete_a_task
    • First observedcreate_list
    • First observedcreate_task
    • First observeddelete_a_task
    • First observedget_list
    • First observedstart_a_task
    • First observedupdate_list_name

TDQS

C2.7/5.0
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.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

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/matilarrazabal/mcp-server-interview'

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