Skip to main content
Glama
UllyMachado

lista-compras-mcp

by UllyMachado

Servidor MCP - Lista de Compras

Este é um servidor Model Context Protocol (MCP) desenvolvido em Node.js que permite que assistentes de IA (como Claude Desktop) interajam diretamente com a API do backend do aplicativo Lista de Compras.


🛠️ Tecnologias e Bibliotecas Utilizadas

  • Core SDK: @modelcontextprotocol/sdk (Node.js)

  • Framework Web: express (para transporte SSE sobre HTTP/HTTPS)

  • Requisições API: axios


Related MCP server: mcp-bring

🔌 Ferramentas Expostas (MCP Tools)

O servidor expõe as seguintes ferramentas para os agentes de IA:

  1. get_shopping_lists: Lista todas as listas de compras disponíveis no sistema.

  2. create_shopping_list: Cria uma nova lista de compras vazia no sistema.

  3. add_item_to_list: Adiciona um novo item (com descrição, quantidade, preço e unidade) a uma lista específica.

  4. edit_item_in_list: Edita ou atualiza as propriedades de um item existente em uma lista.

  5. delete_item_from_list: Exclui um item de uma lista.

  6. edit_shopping_list: Edita o nome ou orçamento limite de uma lista.

  7. delete_shopping_list: Exclui permanentemente uma lista de compras inteira.

  8. set_item_completion_status: Marca/desmarca itens como comprados (isChecked).


🚀 Como Executar o Servidor MCP

Você pode executar este servidor em dois modos diferentes:

Modo 1: Local via Stdio (Padrão para Claude Desktop local)

Para rodar usando entrada e saída padrão (stdio), execute:

node index.js stdio

(ou apenas node index.js, pois o modo stdio é o padrão).

Modo 2: Servidor Web HTTP / SSE (Para publicação em Nuvem ou conexões remotas)

Para rodar como um servidor web Express escutando em uma porta HTTP usando Server-Sent Events (SSE):

# Define a porta (opcional, padrão é 3000) e executa no modo sse
set PORT=3000
node index.js sse

O servidor ficará disponível em:

  • Endpoint SSE: http://localhost:3000/sse

  • Endpoint de Mensagens: http://localhost:3000/messages

Para expor publicamente em HTTPS na nuvem ou localmente (ex: para testes remotos via ChatGPT/Claude Web), você pode publicar o servidor em uma hospedagem na nuvem (como Render, Vercel ou Fly.io) ou usar uma ferramenta de tunelamento local como o ngrok:

ngrok http 3000

Isso gerará uma URL pública HTTPS segura (ex: https://xxxx.ngrok-free.app/sse) que pode ser conectada por clientes MCP remotos.


💬 Como Integrar com Clientes de IA

Integração com o Claude Desktop (Local)

  1. Abra o arquivo de configurações do Claude Desktop em seu sistema. No Windows, ele geralmente fica localizado no caminho:

    • Instalação MSIX/Store (Padrão): C:\Users\<Seu-Usuario>\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json

    • Instalação Tradicional: C:\Users\<Seu-Usuario>\AppData\Roaming\Claude\claude_desktop_config.json

  2. Adicione a configuração do servidor sob a chave mcpServers:

    {
      "mcpServers": {
        "lista-compras-mcp": {
          "command": "node",
          "args": [
            "C:/Workspace/Projetos/lista-compras-mcp/index.js"
          ]
        }
      }
    }

    (Substitua o caminho acima pelo caminho absoluto real da sua pasta de projeto se for diferente).

  3. Feche completamente o Claude Desktop (saindo pelo ícone da bandeja do sistema perto do relógio) e abra-o novamente.

  4. Uma vez iniciado, você verá o ícone de plug/conexão e poderá pedir no chat:

    • "Listar minhas listas de compras"

    • "Marque o item arroz na lista x como comprado"

    • "Adicione leite à minha lista de mercado"

Available Tools

8 tools
add_item_to_listA

Adiciona um novo item a uma lista de compras existente.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoUnidade de medida (ex: und, g, kg, l, ml)
priceYesPreço estimado ou atual do item
listIdYesO ID da lista de compras
quantityYesQuantidade do item
descriptionYesNome ou descrição do item

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 must carry the full burden of behavioral disclosure. It only states the basic action and the requirement that the list already exists ('existente'). It does not mention side effects, permissions, error handling, or response behavior, which 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.

Conciseness5/5

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

The description is a single, front-loaded sentence that states exactly what the tool does without any wasted words. It is concise and well-structured, ideal for quick understanding.

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 tool is relatively simple, the schema covers all parameters, and there is no output schema, so the description does not need to explain return values. However, it lacks context about preconditions (beyond 'existing list'), error conditions, or what happens on success. This leaves some gaps, though the basic purpose is clear.

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 100% coverage with descriptions for all 5 parameters, so the baseline is 3. The tool description does not add any additional meaning beyond the schema, leaving parameter interpretation entirely to the structured definitions.

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 uses a specific verb 'Adiciona' (adds) and clearly identifies the resource: 'um novo item a uma lista de compras existente' (a new item to an existing shopping list). This distinguishes it from sibling tools like edit_item_in_list and delete_item_from_list, making the tool's purpose unambiguous.

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 usage (when you want to add an item to a list), but it does not explicitly mention when not to use it or provide alternatives among the sibling tools. It states the action but offers no comparative guidance.

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

create_shopping_listB

Cria uma nova lista de compras vazia no sistema.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesO nome da nova lista de compras
budgetNoO orçamento limite da lista de compras (opcional)
descriptionNoUma breve descrição para a lista de compras (opcional)

TDQS

B3.2/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. It only states that a new empty list is created, but doesn't disclose return value, idempotency, required permissions, or side effects.

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, front-loaded sentence that states the action and object with no redundant words. It is concise and easy to parse.

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 create tool with no output schema, the description should mention the expected response or at least indicate what success looks like. It also lacks usage timing guidance, despite the schema covering parameters well.

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 100% field descriptions, so the baseline is 3. The description adds no additional parameter-specific meaning beyond the 'empty' state, so it neither improves nor degrades.

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 uses a specific verb ('cria uma nova lista de compras vazia') and clearly identifies the resource and state (empty shopping list). It is distinct from sibling tools like edit_shopping_list and delete_shopping_list.

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. The description only states the action without context or exclusions.

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

delete_item_from_listB

Exclui um item de uma lista de compras.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesO ID do item a ser excluído
listIdYesO ID da lista de compras que contém o item

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for disclosing behavior. It only states the delete action without addressing irreversibility, permissions, cascading effects, or error conditions, similar to the update_drive example.

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 redundancy. Every word contributes to the meaning, making it highly efficient.

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 that this is a mutation tool with no annotations, no output schema, and only a one-sentence description, important contextual details are missing, such as whether deletion is permanent, what happens on invalid IDs, and any ownership requirements.

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 schema fully describes both parameters (itemId and listId) with clear descriptions, achieving 100% coverage. The description adds no additional parameter-level information, so the baseline score of 3 applies.

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 'Exclui um item de uma lista de compras' clearly states the action (delete) and the resource (item in a shopping list), distinguishing it from sibling tools like delete_shopping_list and add_item_to_list.

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. It does not mention contexts, prerequisites, or exclusions, leaving the agent to infer from the name and schema.

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

delete_shopping_listA

Exclui permanentemente uma lista de compras inteira e todos os seus itens.

ParametersJSON Schema
NameRequiredDescriptionDefault
listIdYesO ID da lista de compras a ser excluída

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses critical behavioral traits: the deletion is permanent ('permanentemente') and cascades to all items ('todos os seus itens'). This is essential context for a destructive tool, though it omits details like required permissions or return values.

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, concise sentence that conveys the core action, scope, and permanence without redundancy. Every word adds value, and it is appropriately front-loaded with the action verb.

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

Completeness5/5

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

For a simple destructive tool with one parameter and no output schema, the description fully covers the necessary context: what is deleted (entire list), the scope (all items), and permanence. No additional return-value or edge-case info is needed given the tool's simplicity.

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 schema provides complete coverage (100%) for the single parameter listId, so the description does not need to add param details. The description adds no extra meaning about the parameter itself, matching the baseline for high schema coverage.

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 uses a clear verb 'Exclui' (deletes) with a specific resource 'lista de compras inteira' and scope 'todos os seus itens', unambiguously distinguishing it from sibling delete_item_from_list by indicating it affects the entire list and all its items.

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?

Usage context is implied through the phrase 'inteira' (entire), suggesting this tool is for deleting whole lists, not individual items. However, it does not explicitly name alternatives or state when not to use, leaving the contrast with delete_item_from_list implicit.

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

edit_item_in_listC

Edita ou atualiza as propriedades de um item existente em uma lista de compras.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitNoNova unidade de medida (und, g, kg, l, ml)
priceNoNovo preço estimado ou atual do item
itemIdYesO ID do item a ser editado
listIdYesO ID da lista de compras que contém o item
quantityNoNova quantidade do item
isCheckedNoStatus de marcação do item (comprado ou não)
descriptionNoNovo nome ou descrição do item

TDQS

C2.9/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 states the item must exist but does not disclose what happens if it does not, whether partial updates are supported, if any permissions are required, or what the response looks like. For a mutation tool, this is insufficient behavioral context.

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, front-loaded sentence that directly states the tool's purpose with no redundant content. It is concise and easy to parse.

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 7 parameters, no output schema, and no annotations, the description is too minimal. It does not explain partial update behavior, error cases, or operation semantics. The schema covers parameter descriptions but lacks the contextual completeness expected for a mutation tool.

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?

Schema coverage is 100% with all parameters described in the input schema. The description itself only generically refers to 'properties' and adds no additional meaning beyond the schema. Baseline 3 is appropriate since the schema handles parameter semantics adequately.

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 edits or updates properties of an existing item in a shopping list, using a specific verb and resource. It distinguishes from add/delete/create, though it could more explicitly differentiate from the sibling 'set_item_completion_status' which also updates a property of an item.

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 alternatives. A sibling tool 'set_item_completion_status' exists for updating just the checked status, but the description does not mention this distinction or provide any usage context beyond the core action.

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

edit_shopping_listB

Edita o nome ou orçamento (budget) de uma lista de compras existente.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNovo nome da lista de compras
budgetNoNovo orçamento limite da lista de compras
listIdYesO ID da lista de compras a ser editada

TDQS

B3.4/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 states that name or budget can be edited, but it does not reveal whether partial updates are allowed, what happens if the list does not exist, any permission requirements, or the return format. This is minimal disclosure for a mutating operation.

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, front-loaded sentence that directly states the action and objects. There is no redundancy or filler; every word contributes to the meaning.

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?

Despite having 3 parameters and no output schema or annotations, the description provides minimal contextual guidance. It lacks mention of how this tool differs from edit_item_in_list, whether updates are partial or full, and expected return values. For a tool with these characteristics, the description is incomplete for guiding an agent to invoke it correctly.

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?

Schema description coverage is 100%, with each parameter already described. The description adds no extra semantic value beyond restating that name and budget can be edited, which is already in the schema. It does not clarify relationships, constraints, or formatting beyond what the schema provides.

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 ('Edita' = edits), the resource ('lista de compras' = shopping list), and the specific attributes (name or budget). It effectively distinguishes from sibling tools like edit_item_in_list, which edits items rather than the list itself.

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 usage for editing an existing shopping list's name or budget, but it does not explicitly contrast with alternatives such as edit_item_in_list or provide scenarios. The word 'existente' suggests the list must already exist, but no when-to-use or when-not-to-use guidance is given.

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

get_shopping_listsA

Lista todas as listas de compras disponíveis no sistema.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/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 says that all shopping lists are listed, but does not disclose return format, pagination, sorting, permission requirements, or any side effects, which is a significant gap.

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 one concise sentence that directly states the tool's purpose without any filler. It is front-loaded and efficient, earning a perfect score for conciseness.

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 lack of output schema and annotations, the description is the primary source of information. It covers the basic action but lacks details about the response structure or additional behaviors, making it minimally complete but with clear gaps.

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

Parameters4/5

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

The tool has zero parameters, and the baseline for 0 params is 4. There is nothing for the description to add beyond the schema, so this score is appropriate.

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 verb 'list' and the resource 'shopping lists', and specifies scope ('all'), which distinguishes it from the mutation-focused sibling tools. This provides a specific and unambiguous purpose.

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 alternatives. The description only states what it does, without any mention of sibling tools or situational context, leaving the agent to infer usage.

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

set_item_completion_statusB

Marca ou desmarca um item como comprado (isChecked).

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesO ID do item a ser marcado/desmarcado
listIdYesO ID da lista de compras que contém o item
isCheckedYestrue se o item foi comprado, false se não foi

TDQS

B3.3/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It states the toggle action but does not mention side effects, permission requirements, reversibility, or response behavior; it largely restates what the isChecked parameter already implies.

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, front-loaded sentence with no redundant words. It efficiently communicates the core action for a simple toggle operation.

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?

For a simple three-parameter tool with a fully documented schema, the description is minimally adequate. However, it lacks guidance on how it differs from sibling tools and any return-value or failure context that would make it fully self-sufficient.

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 covers all three parameters with clear descriptions (100% coverage), so the baseline is 3. The description adds no additional parameter semantics beyond naming isChecked, which is already documented in the schema.

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 uses a specific verb ('Marca ou desmarca') and clearly identifies the resource (an item) and the exact state being toggled (isChecked/purchased). This distinguishes it from sibling tools like edit_item_in_list, which target other item modifications.

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 about when to use this tool versus alternatives such as edit_item_in_list. The description does not state any exclusions, prerequisites, or context that would help an agent choose it over similar operations.

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.

  1. 8 tool updatesv1.0.0
    • First observedadd_item_to_list
    • First observedcreate_shopping_list
    • First observeddelete_item_from_list
    • First observeddelete_shopping_list
    • First observededit_item_in_list
    • First observededit_shopping_list
    • First observedget_shopping_lists
    • First observedset_item_completion_status

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct action on either shopping lists or items. List-level and item-level operations are clearly separated, with no overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, with clear verbs (create, get, edit, delete, add, set). Item operations uniformly use prepositions like 'to', 'from', 'in'.

Tool Count5/5

8 tools is well-scoped for a shopping list domain, covering list and item operations without being excessive or too thin.

Completeness4/5

CRUD operations are present for both lists and items, plus item completion status. The main gap is a dedicated 'get items for a list' tool, but get_shopping_lists likely includes items, so agents can work around this.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to read and manage your Bring! shopping lists through natural language commands like adding items, marking purchases, and retrieving list contents.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to manage shopping lists, recipes, meal plans, and shared expenses with a KitchenOwl instance via its REST API.
    MIT