Skip to main content
Glama
GTA7-Lab

gta7-lab-city

by GTA7-Lab

GTA7 Lab — Core Orchestrator

A cidade da GTA7 Lab como servidor MCP. Ele conhece as entidades registradas, chama as MCP tools delas e combina os resultados em uma única resposta.

Rodando

npm install
npm run build
npm run smoke

npm run smoke sobe as duas entidades demo, descobre as tools delas por MCP, roda três pedidos de exemplo e verifica o CRUD do registro.

Related MCP server: MCP360 Universal Gateway

Tools do Core

Tool

Para quê

list_entities / get_entity

ler o registro

register_entity / update_entity / remove_entity

CRUD do registro

submit_entity / submission_status

uma entidade pede para entrar, e acompanha

list_submissions / approve_entity / deny_entity

decidir quem entra

list_residentsremove_resident

CRUD de moradores

list_city_tools

tools que as entidades expõem agora (compara com o registro)

call_entity_tool

proxy direto para uma tool de uma entidade

plan_request

mostra o plano sem executar nada

orchestrate

plano + execução + combinação

Conectando o Core

Claude Desktop / Claude Code (claude_desktop_config.json):

{
  "mcpServers": {
    "gta7-lab-city": {
      "command": "node",
      "args": ["C:/caminho/para/gta7-lab-city/dist/src/stdio.js"]
    }
  }
}

Via HTTP (ChatGPT, Claude connectors): POST https://gta7-lab-city.vercel.app/mcp.

O endereço antigo gta7-lab-core.vercel.app/mcp serve o mesmo projeto e continua válido. Se um conector travar mostrando uma lista de tools velha, adicioná-lo pelo outro endereço força uma descoberta nova — o servidor também atende em /api/mcp.

Palavra mágica

O endpoint MCP é público, então as tools que alteram o registro — register_entity, update_entity e remove_entity — exigem a palavra mágica da cidade, conferida contra a variável de ambiente GTA7_MAGIC_WORD. Sem ela definida, ninguém altera nada, inclusive rodando local:

GTA7_MAGIC_WORD=escolha-uma npm run dev

Na Vercel, defina em Settings → Environment Variables. Consultar a cidade e orquestrar pedidos continua livre para qualquer um.

As tools de morador (list_residents, get_resident, register_resident, update_resident, remove_resident) pedem a palavra mágica até para ler: entidade é serviço público da cidade, morador é gente.

Moradores gravam no próprio repositório

O filesystem da Vercel é somente-leitura, então cadastrar um morador em produção precisa de outro lugar para gravar. Em vez de um banco, o Core escreve data/residents.json de volta neste repositório, pela API do GitHub — cada cadastro vira um commit, com [skip ci] para não disparar um deploy.

Defina GTA7_GITHUB_TOKEN com um token de acesso que tenha permissão de Contents: read and write neste repositório. Sem ele, o Core grava no arquivo local, que é o comportamento em desenvolvimento.

O repositório é público, então a lista de moradores é pública. Não guarde aí nada que não possa ser lido por qualquer um.

Registrando uma entidade

A entidade pede sozinha, pela tool submit_entity — não precisa de senha. Ela informa apenas como chegar nela e em que tipo de pedido entra:

{
  "id": "cinema",
  "name": "Cinema Central",
  "description": "Cinema da GTA7 Lab",
  "endpoint": "https://cinema.example/mcp",
  "tags": ["movie", "activity"],
  "contato": "quem procurar em caso de dúvida"
}

Não declare suas tools. O Core conecta no seu endpoint e descobre pelo próprio MCP o que você sabe fazer. Ele chama sozinho só o que parece vitrine: nome de verbo de catálogo, sem parâmetro obrigatório, e que não seja dado de cliente. Se nada seu se encaixar, o pedido é recusado na hora com o motivo — porque você entraria na cidade e nunca seria acionado.

As tags decidem em que pedidos você é chamado. Peça só as suas: elas são recurso compartilhado, e quem reivindica demais aparece em tudo e atrapalha os outros. Para uma tag que ainda não existe, ela precisa entrar em src/lexicon.ts.

Os argumentos são casados por apelido contra o schema das suas tools — partySize, groupSize e seats são todos entendidos como "quantidade de pessoas", e o Core só envia quando o tipo bate.

Sua entidade não precisa seguir schema de resposta. O Core aceita um array direto, um objeto com items/results/data, ou qualquer envelope com uma lista dentro, e reconhece apelidos comuns de campo (name/nome/title/band, pricePerPerson/ticketPrice/preco, capacity/capacidade, area/bairro). Devolver uma área e um preço por pessoa faz você aparecer nas combinações.

Entrar de verdade depende da aprovação de quem cuida da cidade.

Deploy na Vercel

O Core está na raiz do repo e a Vercel usa src/server.ts como entrypoint do servidor.

npx vercel deploy --prod

O filesystem da Vercel é somente-leitura: em produção as tools de escrita do registro valem só durante a requisição e devolvem um warning. Para mudar o registro publicado, edite data/entities.json e faça deploy.

Entidades demo

src/entities/restaurants.ts e src/entities/venues.ts existem só para desenvolvimento, para o Core ter dois servidores MCP reais com que conversar. Substitua-as pelas entidades dos participantes quando elas estiverem no ar.

Available Tools

9 tools
call_entity_toolChamar tool de uma entidadeD

Proxy direto para uma MCP tool de uma entidade registrada.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYes
entityIdYes
argumentsNo

TDQS

D1.9/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full behavioral burden. The term 'proxy direto' suggests transparent forwarding to another MCP tool, but nothing is said about side effects, error handling, validation of arguments, or whether the call is synchronous. The description provides minimal behavioral context beyond the word 'proxy'.

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 vague sentence. It is technically concise, but it is under-specified rather than efficiently detailed. There is room for several clarifying statements about tool invocation and arguments without becoming verbose.

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 generic dynamic proxy with 3 parameters, no output schema, and zero annotations, this description is completely inadequate. The agent cannot determine valid entityId or tool values, expected argument shapes, returned data, or failure modes. It is not possible to invoke this tool reliably based on the provided definition.

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 needs to compensate, but it does not mention any of the three parameters. While the parameter names (entityId, tool, arguments) are somewhat self-explanatory, the 'tool' parameter is ambiguous and no guidance is given on how to structure arguments for dynamically invoked tools. The description adds no semantic value beyond schema-visible names.

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 'Proxy direto para uma MCP tool de uma entidade registrada' is essentially a restatement of the name and title: it says the tool directly proxies to an MCP tool of a registered entity. It adds only the words 'direct' and 'registered' without clarifying what calling an entity tool actually does, what an entity tool is, or how this differs from sibling tools like list_entities or orchestrate.

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 does not state selection criteria, mention the need for a pre-registered entity, or note when call_entity_tool would be preferable to plan_request or orchestrate. This is a clear absence of usage guidance.

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

get_entityObter entidadeB

Devolve o registro completo de uma entidade.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.1/5.0
Behavior3/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 that the result is the 'registro completo' (full record), which adds some return-value context, but it does not mention error behavior, authentication needs, or explicitly confirm there are no side effects. 'Devolve' does imply a read operation, so it is minimally transparent.

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 filler, front-loaded with the action verb and resource. Every word earns its place, making it appropriately concise for such a simple tool.

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 one-parameter retrieval tool, the description plus schema is mostly sufficient: the agent knows the tool returns a full entity record and that an ID is required. However, with no output schema and no usage guidance versus siblings, the description is only minimally complete and lacks edge-case context.

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%, and the description does not compensate by explaining the 'id' parameter or how it relates to the returned entity. The property name 'id' is self-explanatory, but the description adds no semantic value beyond the schema's field name and type.

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 states a clear retrieval action ('Devolve') and a specific resource ('o registro completo de uma entidade'), making it evident this is a read operation for a single entity. It does not explicitly differentiate itself from list_entities by mentioning lookup by ID, so it stops short of a 5.

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 gives no guidance on when to use this tool instead of siblings like list_entities, update_entity, or remove_entity. There are no conditions, exclusions, or alternative recommendations, leaving the agent to infer usage from the name and schema alone.

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

list_city_toolsListar tools da cidadeA

Conecta nos servidores MCP das entidades e devolve as tools que elas realmente expõem agora. Útil para conferir se o registro está de acordo com a realidade.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdNoomita para consultar todas as ativas

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses that the tool connects to MCP servers, performs a live check ('agora'), and returns currently exposed tools. It does not cover failure modes, but for a read-only listing operation this is a meaningful and sufficient disclosure.

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?

Two sentences with no filler: the first explains what the tool does, and the second gives a concrete use case. It is front-loaded and every word earns its place.

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

Completeness4/5

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

For a tool with one optional parameter, no output schema, and no annotations, the description provides enough context: the action, result, and a real-world scenario. It could mention behavior on unreachable servers, but that is a minor gap for this simple live-listing 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?

The input schema has 100% description coverage for the only parameter (entityId), including the 'omit to query all active' guidance. The tool description adds no extra parameter detail, 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 states a specific action ('Conecta nos servidores MCP das entidades') and a clear result ('devolve as tools que elas realmente expõem agora'). This distinguishes it from sibling tools like list_entities and call_entity_tool by focusing on live tool introspection.

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

Usage Guidelines4/5

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

The description explicitly gives a use case: 'Útil para conferir se o registro está de acordo com a realidade', which tells the agent when this tool is appropriate. It does not name alternatives or exclusions, but the context is clear enough for a simple listing operation.

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

list_entitiesListar entidadesA

Lista as entidades registradas na cidade.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledOnlyNopadrão: false

TDQS

A4/5.0
Behavior3/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. The verb 'Lista' makes the read-only intent reasonably clear, but the description does not disclose behavior such as whether the result includes disabled entities, ordering, pagination, or any scope beyond 'na cidade'. It is adequate but not richly transparent.

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 short sentence with no filler or redundant wording. It is front-loaded and immediately communicates the action and target resource.

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

Completeness4/5

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

For a low-complexity listing tool, the description is largely complete: it identifies what is listed and the scope. No output schema exists, but the verb 'Lista' sufficiently implies a list return. The only minor gap is the lack of elaboration on the enabledOnly parameter's effect.

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 has 100% coverage for the single parameter 'enabledOnly', including a default value, but the description does not add any explanation of what the parameter controls. The baseline of 3 applies because the schema already documents the parameter, though the description could have clarified the enabled-only filtering behavior.

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 ('Lista') and resource ('entidades registradas na cidade'), clearly identifying the tool's function as listing registered entities. It is immediately distinguishable from siblings like get_entity (single entity), register_entity, update_entity, and remove_entity.

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

Usage Guidelines4/5

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

The description clearly implies the tool is for retrieving a collection of entities within a city, which is a distinct use case from the sibling tools. It does not explicitly state when not to use it or name alternatives, but the context is clear enough for an agent to select it for listing scenarios.

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

orchestrateOrquestrar pedidoA

Recebe um pedido em linguagem natural, escolhe as entidades pelas tags, chama as MCP tools delas em paralelo, aplica as restrições (pessoas, orçamento por pessoa) e devolve os resultados por entidade mais combinações entre entidades.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoitens por entidade; padrão 5
requestYesex.: 'Quero jantar e depois fazer alguma atividade'

TDQS

A4/5.0
Behavior4/5

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

No annotations are present, and the description takes on the burden by explicitly disclosing parallel execution, tag-based entity selection, constraint handling, and the return shape (per entity plus combinations). It does not discuss failure handling or side effects of the invoked tools, but the core runtime behavior is transparent.

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

Conciseness4/5

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

One dense sentence communicates all core behavior with no filler and is front-loaded with the main action. It could be split for readability, but it is appropriately sized.

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 includes return behavior and mentions constraints, and the schema covers inputs, which is enough for basic invocation. It leaves open details such as how constraints are expressed in the request, error behavior, and the exact result structure, and there is no output schema to fill those gaps.

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%, so request and limit are already documented with examples and defaults. The description adds little at the parameter level beyond the general natural-language context, so the schema baseline 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 opens with a specific verb and resource ('Recebe um pedido em linguagem natural') and spells out a distinctive orchestration flow: tag-based entity selection, parallel MCP tool calls, constraint application, and result aggregation. This clearly separates it from direct entity tools like get_entity/update_entity and from plan_request.

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

Usage Guidelines4/5

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

It defines its input as a natural-language request and states that it orchestrates multiple entities and constraints, so the intended use is evident for multi-entity requests. It does not explicitly contrast itself with siblings such as call_entity_tool or plan_request, but the context is clear enough.

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

plan_requestPlanejar pedidoA

Mostra, sem executar nada, o que o Core entendeu do pedido: tags detectadas, restrições extraídas e quais tools de quais entidades seriam chamadas, com os argumentos já traduzidos.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
requestYespedido em linguagem natural

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 explicitly discloses the key behavioral trait — nothing is executed — and describes the output content (tags, restrictions, tool calls, arguments). This gives an agent an accurate safety and behavior model, though it does not discuss limit semantics or response format details.

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?

Single sentence, front-loaded with the core safety behavior, and every part of the sentence adds meaning. It is compact without losing important information.

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

Completeness4/5

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

For a planning/preview tool, the description explains the non-execution behavior and the main output components well. It is incomplete only because the limit parameter is left undefined and no explicit alternative (orchestrate) is named for execution.

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 coverage is only 50%: request is documented, but limit has no description in the schema and the tool description never mentions it. An agent cannot determine what limit limits (e.g., number of tool calls, number of tags, or plan entries), which is a significant gap.

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 tool's purpose: it shows, without executing, what the Core understood from a request — detected tags, extracted restrictions, and which entity tools would be called with translated arguments. This distinguishes it from execution-oriented siblings like orchestrate and call_entity_tool.

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

Usage Guidelines4/5

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

The phrase 'sem executar nada' establishes a clear preview/dry-run context, so an agent can infer this tool should be used before executing a request. It does not explicitly name alternatives or say when not to use it, but the behavior is clear enough.

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

register_entityRegistrar entidadeA

Adiciona uma entidade à cidade. As 'tags' definem quando o orquestrador aciona a entidade; as tools com kind 'search' são as que ele pode chamar sozinho.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesidentificador único, minúsculo (ex.: 'restaurants')
argsNo
nameYes
tagsNocapacidades da entidade; use as tags conhecidas: food, music, movie, event, lodging, transport, grocery, dessert, finance, activity
toolsNo
commandNoexecutável (transport stdio)
enabledNo
endpointNoURL do MCP da entidade (transport http)
transportNopadrão: http
descriptionNo

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral transparency burden. It adds useful context about tags defining when the orchestrator triggers the entity and about kind 'search' tools being autonomously callable. It does not disclose side effects, overwrite behavior, permissions, or expected response.

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?

Two sentences, each purposeful: the first states the core operation, and the second explains key configuration semantics. There is no redundancy or padding.

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?

With 10 parameters, no annotations, and no output schema, a two-sentence description is insufficient for correct invocation. It omits how to construct the tools array, what enabled and args mean, whether an existing id is replaced, and what a successful registration returns.

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 only 50%, so the description must compensate for undocumented parameters. It clarifies the role of tags and search-kind tools beyond the schema, but it does not help with undocumented fields such as args, enabled, or description.

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: 'Adiciona uma entidade à cidade' (adds an entity to the city), with a specific resource and scope. It does not explicitly contrast with update_entity or other siblings, so it stops short of a 5.

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

Usage Guidelines4/5

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

The description provides a clear usage context: use this tool to add an entity to the city. However, it does not mention when not to use it or point to update_entity as the alternative for modifying an existing entity, so exclusions and alternative routing are missing.

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

remove_entityRemover entidadeB

Remove uma entidade do registro.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.1/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 'Remove', implying deletion, but does not disclose whether the removal is permanent, whether it has side effects, whether missing IDs cause errors, or whether confirmation is needed.

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 short sentence with no filler words. The core action and object are front-loaded, making it easy to parse quickly.

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 destructive operation with no annotations and no output schema, the description is too thin. It does not explain irreversibility, error behavior, required existence of the entity, or what happens after removal. An agent cannot fully predict the tool's effects from this definition alone.

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%, and the description does not mention the 'id' parameter at all. The meaning of 'id' as the entity identifier is implied by the tool name, but the description adds no explicit parameter semantics beyond what the property name already suggests.

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 ('Remove') and a specific resource ('entidade do registro'), clearly identifying a deletion operation. This distinguishes it from sibling tools like get_entity, update_entity, and register_entity.

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 given about when to use this tool versus alternatives. There are no stated preconditions, context cues, or comparisons to sibling tools like update_entity or register_entity. Usage is only implied by the name and basic description.

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

update_entityAtualizar entidadeA

Atualiza campos de uma entidade já registrada (merge raso).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
patchYescampos a sobrescrever; 'id' é ignorado

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden of behavioral disclosure. It does disclose the key non-obvious behavior of a 'merge raso' (shallow merge), which tells the agent that omitted existing fields are preserved. However, it says nothing about failure behavior when the entity is missing, side effects, or the return value, leaving notable gaps for a mutation without annotation coverage.

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 compact sentence with no filler, and the valuable 'merge raso' behavioral note is tucked into a parenthetical rather than cluttering the main clause. Every word contributes, so it is appropriately concise.

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?

With no output schema and no annotations, an agent is left without information about the return value or error semantics, though the core operation is captured. For a two-parameter update utility the description is adequate but incomplete around edge cases, making it a minimum-viable definition.

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 describes the patch parameter as 'campos a sobrescrever; id é ignorado', which covers half of the parameters, but the id parameter has no schema description. The tool description itself adds no parameter-level meaning beyond the operation, so it does not compensate for the id gap; nevertheless, both parameters' roles are reasonably inferable from the operation semantics.

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 opens with the verb 'Atualiza' (updates) and specifies the resource as 'campos de uma entidade já registrada' (fields of an already registered entity), clearly distinguishing the operation from sibling tools like register_entity, get_entity, and remove_entity. The parenthetical 'merge raso' adds a precise scoping detail that further identifies what the tool does.

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 phrase 'já registrada' implies the entity must already exist, so an agent can infer this is not for creation, but the description never explicitly states when to prefer update_entity over register_entity or other siblings. No exclusions or alternative tools are named, leaving the usage context implicit.

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. 9 tool updatesv0.1.0
    • First observedcall_entity_tool
    • First observedget_entity
    • First observedlist_city_tools
    • First observedlist_entities
    • First observedorchestrate
    • First observedplan_request
    • First observedregister_entity
    • First observedremove_entity
    • First observedupdate_entity

TDQS

A3.5/5.0
Disambiguation5/5

Every tool has a clearly distinct role: entity CRUD, tool discovery, direct proxying, planning, and full orchestration. The descriptions explicitly separate non-executing plan_request from executing orchestrate, and list_entities from list_city_tools.

Naming Consistency5/5

All tools use a consistent snake_case verb_noun pattern: list_entities, get_entity, update_entity, remove_entity, register_entity, list_city_tools, call_entity_tool. The verb-first convention is predictable and matches the registry/orchestration domain.

Tool Count5/5

Nine tools is well-scoped for a server that manages entity lifecycles and orchestration. Each tool earns its place and there is no redundant clutter.

Completeness5/5

The tool set covers the full entity lifecycle (register, get, list, update, remove), live tool discovery, direct invocation, plan preview, and final orchestration execution. Agents can complete the main workflows without hitting dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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
    Not graded
    maintenance
    Aggregates multiple MCP servers behind a single, secure endpoint with unified tool/resource discovery, OAuth authentication, and resilient request routing. Enables users to manage and interact with multiple MCP backends through one centralized interface with load balancing and circuit breakers.
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Aggregates multiple MCP services into a single unified interface with self-configuration capabilities, enabling dynamic addition and removal of tools via conversation.
    26
    70
    MIT

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/GTA7-Lab/gta7-lab-city'

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