bcquality/custom/knowledge/mcp/bc-mcp-naming-convention-must-be-reverified.md
Michael Dieringer 3d1e1c1950 Fix BC MCP discovery guidance og gør Francis->Immanuel-hand-off autonom
- bc-mcp.agent.md-templaten fik en manglende "preload de tre bc_actions_*
  værktøjer via ToolSearch select:"-sektion, som ellers kun levede i
  bc-mcp-tools-must-be-preloaded.md og derfor aldrig blev håndhævet.
- Rettet forkert antaget navnemønster (ListUpdate<entity>_PAG<id> ->
  Modify_<Entity>_PAG<id>, bekræftet empirisk via bc_actions_search).
  Ny regel bc-mcp-naming-convention-must-be-reverified.md kræver at
  navnekonventioner altid markeres som "forvent, reverificér" fremover.
- francis.agent.md + immanuel.agent.md: hand-off fra Francis til Immanuel
  er nu eksplicit automatisk. Michael er ikke et mellemstop i pipelinen -
  han involveres først når PR'en er klar til merge.

Observeret 2026-07-04: en session brugte ToolSearch med keyword-søgning
i stedet for select: (fandt irrelevante værktøjer), ledte derefter efter
et ListUpdate-værktøj der ikke findes, og spurgte om lov til at fortsætte
til Immanuel midt i pipelinen.
2026-07-04 08:31:43 +02:00

2.4 KiB

bc-version domain keywords technologies countries application-area
all
mcp
mcp
tools
naming
bc-actions-search
verification
bc
al
w1
all

--- rule: bc-mcp-naming-convention-must-be-reverified title: BC MCP action-naming conventions must be reverified, not assumed category: mcp severity: required

BC MCP action-naming conventions must be reverified, not assumed

Description

Documentation describing the businesscentral MCP server's action-naming pattern (List_<Entity>_PAG<id>, Modify_<Entity>_PAG<id>, Create_<Entity>_PAG<id>) must state it as an expectation to reverify per call with bc_actions_search, never as a guaranteed fact. The verb prefix is not uniform across every entity.

Why

The bc-mcp.agent.md template asserted the modify-action name as ListUpdate<entity> _PAG<id> as fact. The real action returned by bc_actions_search for updating projectRepositories was Modify_ProjectRepository_PAG6102904 - singular entity name, Modify_ prefix, not ListUpdate. An agent that trusts the documented pattern without verifying hunts for a tool that does not exist, wasting a round trip exactly like the one this rule replaces.

Meanwhile Create_NewTask_PAG6102905 (used elsewhere in the same template) DOES match the documented Create_<entity>_PAG<id> shape - so the pattern is a reasonable starting guess, just not one to assert as fact without confirming it that call.

What counts as a violation

  • A BC MCP agent template states an action name or naming pattern as guaranteed, without an instruction to confirm it via bc_actions_search before relying on it.
  • An agent session assumes an action name from documentation and calls bc_actions_invoke with it directly, without first getting the exact name from bc_actions_search or bc_actions_describe.

Correct pattern

1. bc_actions_search(SearchText: "<entity keywords>", SearchMode: keyword,
   ActionType: [List|Modify|Create])
2. Use the exact name returned - do not construct it from a remembered pattern.
3. bc_actions_describe on that exact name before invoking it.

Documentation may state the expected shape as a memory aid, but must mark it explicitly as unverified per-entity, e.g.: "expect Modify_<Entity>_PAG<id> - reverify, do not assume."

Scope

Applies to every BC MCP agent template and every session that calls bc_actions_search / bc_actions_describe / bc_actions_invoke in any CURABIS project.