bc-code-intelligence-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bc-code-intelligence-mcpSam, help me write a function to calculate weighted average cost"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BC Code Intelligence MCP Server
Get instant help from AI Business Central experts right in your favorite AI tool. No more searching docs - just ask and get expert guidance tailored to your specific BC development challenges.
π Quick Start
Click the blue "Install with NPX" button above (VS Code users)
Switch to Agent Mode in VS Code's Copilot Chat
Just ask! - Start with any prompt below
Other platforms? See the Installation Guide for Claude Desktop, Cursor, and more.
Related MCP server: Dynamics 365 Business Central Admin MCP Server
π€ New to AI-Assisted Development? Start with Parker
If you're not sure how to work with AI tools, or you're skeptical about letting AI touch your codeβthat's exactly why Parker exists.
Parker is a grizzled veteran who helps you work WITH AI safely:
Creates reviewable proposals instead of making direct changes
Explains AI reasoning so you understand what's happening and why
Coordinates other specialists to validate suggestions before you commit
Builds trust gradually through transparency and verification
Just say:
"Parker, I'm new to AI development tools. Help me understand how this works."
"Parker, I don't trust AI to write my code. What's a safe way to start?"
"Parker, review what the AI just suggested before I accept it."
Once you're comfortable, you can work directly with any specialistβbut Parker's always there when you want that extra layer of verification and explanation.
π¬ Just Ask - Example Prompts
The BC Code Intelligence specialists are ready to help. Just type naturally - here are some examples:
π Debugging & Performance (Dean)
"Dean, help me debug this error: 'The record in table Customer already exists'"
"I'm seeing slow performance when posting sales orders. Can Dean take a look?"
"Ask Dean why my FlowField is always showing zero"
ποΈ Legacy Code & Upgrades (Logan)
"Logan, I need to upgrade my extension from BC v24 to v27"
"I inherited this old extension - can Logan help me understand what it does?"
"Help me modernize this C/AL-style code to proper AL patterns"
π Version Migration & Breaking Changes (Victor)
"Victor, help me upgrade from BC25 to BC26"
"I'm seeing obsolete warnings after upgrading - what do I need to change?"
"What breaking changes should I know about in BC27?"
"Help me resolve this compile error after a runtime upgrade"
π§ DevOps & CI/CD (Lena)
"Lena, help me set up AL-Go for my BC extension"
"I need to configure an Azure DevOps pipeline with ALOps"
"How do I use BCContainerHelper for local BC development?"
"Help me integrate Cosmo Alpaca for automated testing"
ποΈ Architecture & Design (Alex)
"Alex, review my extension's architecture before I submit to AppSource"
"I need to design an integration with an external warehouse system"
"What's the best way to structure a multi-company solution?"
π» Coding & Implementation (Sam)
"Sam, help me write a function to calculate weighted average cost"
"I need to create a FactBox that shows related sales history"
"Show me the best way to implement a posting routine"
π§ͺ Testing & Quality (Quinn)
"Quinn, help me create test coverage for my posting codeunit"
"What test scenarios should I include for this validation?"
"Review my test codeunit for completeness"
π Code Review (Roger)
"Roger, review this codeunit for best practices"
"Check if my code follows BC naming conventions"
"Are there any code smells in my Customer Card extension?"
π Security (Seth)
"Seth, review my permission sets for security issues"
"How should I handle user permissions for this sensitive data?"
"Check if my API is exposing too much information"
π Integration & Events (Jordan)
"Jordan, help me design an event-driven integration"
"What's the best way to subscribe to posting events?"
"How do I create a clean API for external systems?"
β οΈ Error Handling (Eva)
"Eva, help me implement proper error handling for this process"
"What's the best way to validate user input before posting?"
"Review my Try/Catch implementation"
π¨ User Experience (Uma)
"Uma, help me improve my page layout for better usability"
"Can we switch from simple Error calls in this app to ErrorInfo with suggested actions?"
"Review my action menu structure"
πͺ AppSource & ISV (Morgan)
"Morgan, help me prepare my app for AppSource submission"
"What are the common AppSource validation failures?"
"Review my app's technical baseline for AppSource"
π©βπ« Learning & Mentoring (Maya)
"Maya, explain how dimensions work in BC"
"I'm new to AL - help me understand events and subscribers"
"Walk me through how posting routines work"
π Documentation (Taylor)
"Taylor, help me document this complex codeunit"
"Generate XML documentation for my public procedures"
"Review my app's README for completeness"
π₯ Meet Your BC Specialist Team
Specialist | Expertise | Best For |
π€ Parker | AI Trust & Transparency | New to AI tools, safe collaboration, verification-first |
ποΈ Alex | Architecture & Design | Solution design, extension structure, integration patterns |
π» Sam | Expert Coder | Writing AL code, implementation patterns, coding questions |
π Dean | Debugging & Performance | Errors, slow queries, troubleshooting |
β οΈ Eva | Error Handling | Validation, Try/Catch, error messages |
π§ͺ Quinn | Testing | Test codeunits, test scenarios, code coverage |
π Roger | Code Review | Best practices, naming conventions, code quality |
π Seth | Security | Permissions, data protection, API security |
π Jordan | Integration | APIs, events, external connections |
ποΈ Logan | Legacy & Upgrades | Version migrations, old code, modernization |
π Victor | Version Migration | BC upgrades, breaking changes, deprecations |
π§ Lena | DevOps & CI/CD | AL-Go, ALOps, BCContainerHelper, pipelines |
π¨ Uma | User Experience | Page design, usability, UI patterns |
πͺ Morgan | AppSource & ISV | Publishing, validation, business concerns |
π©βπ« Maya | Mentoring | Learning concepts, explanations, training |
π Taylor | Documentation | Code docs, READMEs, knowledge sharing |
βοΈ Chris | MCP Configuration | Company/Project MCP knowledge layer help |
π Learn More
Topic | Link |
Full Installation Options | |
Common Scenarios | |
All MCP Tools | |
Company Standards | |
Structured Workflows | |
Troubleshooting |
π‘ Tips
Just use first names - "Ask Dean" works just as well as "Ask Dean Debug"
Be specific - Include error messages, code snippets, or version numbers when relevant
Specialists collaborate - They'll hand off to each other when needed
Context carries over - Continue conversations naturally
π€ Contributing
See the Contributing Guide for how to contribute to this project.
π License
MIT License - see LICENSE for details.
Available Tools
21 toolsanalyze_al_codeB
Analyze AL code files in a workspace or specific files. IMPORTANT: Use workspace_path or file_path parameters - the MCP reads files directly. Do NOT pass code content unless you have inline code that is not in a file.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_path | No | PREFERRED: Absolute path to workspace root (e.g., "C:/Projects/MyApp"). The MCP scans for all .al files automatically. | |
| file_path | No | Absolute path to a single .al file (e.g., "C:/Projects/MyApp/src/Codeunit.al"). The MCP reads the file directly. | |
| file_paths | No | Array of absolute .al file paths to analyze. | |
| code | No | DEPRECATED: Only use for inline code snippets not in files. Never pass "workspace" or file paths as code - use workspace_path or file_path instead. | |
| analysis_type | No | Type of analysis to perform | comprehensive |
| operation | No | Analysis operation mode: "analyze" (conversational), "validate" (compliance check + auto-fixes), "suggest_fixes" (code transformations) | analyze |
| bc_version | No | Business Central version for version-specific analysis | |
| suggest_workflows | No | Include workflow recommendations based on analysis |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the MCP reads files directly, which is a key behavioral trait. However, it does not discuss permissions, side effects, or return format, limiting transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences: one for purpose and one for critical usage warning. It is well-structured and front-loaded, though it could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 100% schema coverage, the description is incomplete for a complex tool with 8 parameters and no output schema. It lacks guidance on choosing analysis_type, operation, or other options, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds general guidance on using workspace_path vs file_path but does not significantly elaborate on individual parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes AL code files, which is a specific verb and resource. It distinguishes from siblings by emphasizing file-reading capability, though it doesn't explicitly contrast with related tools like ask_bc_expert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes usage guidance about using workspace_path or file_path and warns against passing code content, implying when to use this tool for local file analysis. However, it does not explicitly state when to prefer this over alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_bc_expertA
Consult a BC specialist for direct expert guidance. Returns specialist instructions and relevant BC knowledge. Auto-selects best specialist or use preferred_specialist parameter. Set autonomous_mode=true for structured action plans instead of conversational responses.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | Your specific question or challenge about BC development | |
| context | No | Optional context about your situation, code, or project | |
| preferred_specialist | No | Optional: specific specialist to consult (will auto-detect if not provided) | |
| autonomous_mode | No | Enable autonomous agent mode: returns structured action plan instead of conversational response. For GitHub Coding Agents and automated workflows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses return types (instructions and knowledge) and mode behavior. Does not mention potential latency or destructive actions, but reasonable for a consult tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose. No fluff, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers the main purpose, parameter details, and mode differentiation. Lacks explicit return format description but is sufficient for agent selection and invocation given the 100% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds context on auto-detection for preferred_specialist and explains autonomous_mode's effect on response format, going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool consults a BC specialist and returns instructions and knowledge. Distinguishes from sibling tools like find_bc_knowledge and list_specialists by offering direct expert consultation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on auto-selection vs. preferred_specialist and explains the autonomous_mode for structured action plans. Could be improved by explicitly mentioning when to use alternatives like find_bc_knowledge.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_layer_contentB
Create a new topic, specialist, or prompt in a BC Code Intelligence layer with proper frontmatter formatting.
| Name | Required | Description | Default |
|---|---|---|---|
| layer_path | Yes | Absolute path to the layer | |
| content_type | Yes | Type of content to create | |
| name | Yes | Name/ID for the content (used in filename and identifiers) | |
| title | Yes | Display title for the content | |
| domain | No | For topics: domain folder name (e.g., "security", "performance") | |
| metadata | No | Additional metadata specific to content type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions frontmatter formatting but fails to disclose prerequisites (e.g., layer existence), side effects, or operation safety. The agent is left with unknowns for a creation action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key action and scope. Concise but could benefit from slight expansion for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations; description fails to explain return values or side effects. For a tool with 6 params, this is insufficient for full agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds minimal value beyond the schema. Baseline 3 is appropriate, as the description does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Create) and the resource (topic, specialist, or prompt in a BC Code Intelligence layer). It also mentions proper frontmatter formatting, which distinguishes it from sibling read/list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like scaffold_layer_repo or workflow_start. The description does not provide context for selecting this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_bc_snapshotA
Extract a Business Central snapshot (.snap) file to analyze debug traces, AL source code, and execution flow. Snapshots are ZIP archives containing .mdc debug trace files and .al source files. Returns temp directory path where files can be read using standard file tools.
| Name | Required | Description | Default |
|---|---|---|---|
| snapshot_path | Yes | Absolute path to the .snap file to extract |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that snapshots are ZIP archives containing .mdc and .al files, and that it returns a temp directory path. However, it does not mention any side effects (e.g., whether the original file is modified), authentication needs, or rate limits. Given the simple nature of extraction, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, each serving a distinct purpose: first states action and content, second explains internal structure and return value. No extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single required parameter, no output schema, and no nested objects, the description is fully adequate. It covers what the tool does, what the snapshot contains, and what the output is (temp directory). No additional information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'snapshot_path' is fully documented in the schema with a description ('Absolute path to the .snap file to extract'). The tool description adds no additional meaning beyond the schema, which has 100% coverage. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Extract' and resource 'Business Central snapshot (.snap) file', and explains the purpose: 'to analyze debug traces, AL source code, and execution flow'. This distinguishes it from sibling tools like 'analyze_al_code' or 'ask_bc_expert' which are for analysis rather than extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need to extract a snapshot for analysis, but does not provide explicit guidance on when not to use it or alternatives. No exclusions or comparisons to siblings are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_bc_knowledgeB
Search BC knowledge topics, find specialists, or discover workflows. Use this when users want to find information about BC development.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query or question about BC development | |
| search_type | No | Type of search to perform | all |
| bc_version | No | Business Central version (e.g., "BC22", "BC20") | |
| limit | No | Maximum number of results to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It describes the tool as performing searches, which suggests read-only behavior, but it does not explicitly state safety, required permissions, or potential 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no extraneous words, and the main action is front-loaded. Every sentence serves a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description should provide hints about the return format or behavior. It does not mention what the tool returns, how to interpret results, or how it differs from similar tools like ask_bc_expert or get_bc_topic. This leaves the agent with insufficient context for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 4 parameters are fully described in the input schema (100% coverage), so the baseline is 3. The description adds no further meaning beyond mentioning the types of searches (topics, specialists, workflows) which are already enumerated in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool searches BC knowledge topics, finds specialists, or discovers workflows. It uses specific verbs and resources, but does not explicitly differentiate from sibling tools like get_bc_topic or list_specialists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using this tool when users want information about BC development, providing a general usage context. However, it does not include when not to use it or mention alternative tools, leaving the agent with only implied guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bc_topicC
Get detailed content for a specific BC knowledge topic with examples and best practices.
| Name | Required | Description | Default |
|---|---|---|---|
| topic_id | Yes | Unique topic identifier (e.g., "sift-technology-fundamentals") | |
| include_samples | No | Include companion AL code samples if available | |
| specialist_context | No | Optional: Current specialist ID (e.g., "sam-coder", "chris-config") to provide domain-specific suggestions if topic is not found |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It does not disclose read/write behavior, error handling, or what happens if the topic is not found. The mention of 'with examples and best practices' hints at output but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, moderately concise sentence. It could be better structured with a front-loaded summary (e.g., 'Retrieve detailed content...') but contains no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description is insufficient. It does not mention fallback behavior (e.g., when topic is not found), pagination, or the structure of the returned content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description adds no additional meaning beyond the field descriptions. The baseline of 3 is appropriate as the schema already documents all parameters clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed content for a specific BC knowledge topic, including examples and best practices. It distinguishes from the sibling find_bc_knowledge (which implies search) by focusing on a single topic by ID, but does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 find_bc_knowledge or ask_bc_expert. The description lacks context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_codelens_mappingsA
Get merged CodeLens pattern-to-specialist mappings from all active layers. Used by VSCode extension to show inline specialist suggestions in AL code.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool reads data ('Get') but provides no details on authentication, rate limits, or side effects. Behavioral traits beyond reading are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and usage context. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with no parameters, purpose and context are adequately described. Lacks explicit statement that it requires no arguments, but this is implied by the schema. Without an output schema, the return type is only vaguely described as 'mappings'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description correctly omits parameter details. Baseline score of 4 applies as no parameter information is needed beyond what the schema (empty) provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves 'merged CodeLens pattern-to-specialist mappings from all active layers' and specifies its use by a VSCode extension. It effectively distinguishes from sibling tools like 'analyze_al_code' or 'list_specialists' by focusing on CodeLens functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates the tool is used by the VSCode extension to show inline specialist suggestions, providing context. However, it does not explicitly state when not to use it or mention alternative tools for similar tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_infoA
Get the currently configured workspace root directory and available MCP servers, if any.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read operation but does not elaborate on safety, auth, or side effects. Since no annotations are provided, the information is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action and result, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with no parameters and no output schema; the description succinctly covers what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters; the schema fully describes this. The description does not add further meaning but also doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'workspace root directory and available MCP servers', distinguishing it from sibling tools like set_workspace_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs alternatives, but the purpose is straightforward enough that usage context is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_promptsA
List all available prompts from all active layers. Returns prompt metadata for UI display.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by prompt type | all |
| include_content | No | Include full prompt content (for sync to .github/prompts/) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It correctly indicates a read-only operation (listing data) and that it returns metadata. However, it does not mention any side effects, authorization requirements, or limits. The behavior is simple, so the disclosure is adequate but not enriched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences, no redundancy. It is front-loaded with the core action and scope, followed by the return purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description only mentions 'returns prompt metadata' without specifying the fields or structure. For a simple list tool, this may be sufficient, but the agent is left without knowledge of what metadata keys to expect, which is a gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add any additional meaning beyond the schema descriptions for 'type' and 'include_content'. The schema itself clearly documents the enum values and the boolean flag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'prompts', and the scope 'from all active layers'. It also specifies the return type 'prompt metadata for UI display'. No sibling tool has a similar purpose, so it is well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, but its purpose is straightforward (listing prompts). Usage context is implied by the tool name and function, but no explicit guidance or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_specialistsA
Browse available BC specialists and their expertise areas. Useful for discovering the specialist team and understanding who helps with what. After browsing, use ask_bc_expert with preferred_specialist parameter to connect with a specific specialist.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Filter by domain (e.g., performance, security, api-design) - optional | |
| expertise | No | Filter by expertise area (e.g., caching, authentication) - optional |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It implies a read operation but does not disclose any behavioral traits like rate limits, auth needs, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with front-loaded purpose, usage context, and a clear follow-up action. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with two optional parameters and no output schema, the description covers purpose, usage guidelines, and next steps completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description repeats the schema's parameter descriptions. It adds no extra meaning beyond the schema, thus baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Browse available BC specialists and their expertise areas,' providing a clear verb and resource. It distinguishes itself from sibling tools like ask_bc_expert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using this tool to discover specialists before using ask_bc_expert, offering clear when-to-use and next-step guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scaffold_layer_repoA
Create BC Code Intelligence layer folder structure with templates. Use this to bootstrap a new company, team, or project layer.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute path where layer structure should be created | |
| layer_type | Yes | Type of layer being created | |
| layer_name | Yes | Display name for the layer (e.g., "Acme Corp Standards") | |
| include_examples | No | Include example content files to demonstrate structure |
TDQS
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 describes creation of folder structure and templates but fails to disclose behavioral traits like overwrite behavior, required permissions, or side effects. This is insufficient for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The first sentence states the core action, the second provides usage context. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters (3 required) and no output schema. The description gives minimal context about what is created (folder structure with templates) but lacks details on return values, side effects, or prerequisites. Adequate but with room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters clearly. The description adds no additional parameter-specific meaning beyond restating the tool's purpose. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'BC Code Intelligence layer folder structure with templates'. It explicitly distinguishes from siblings by stating 'bootstrap a new company, team, or project layer', differentiating it from tools like 'create_layer_content'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use ('Use this to bootstrap a new company, team, or project layer') but lacks explicit exclusions or alternatives. The usage is well implied, earning a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_workspace_infoA
Set workspace root directory and available MCP server IDs. Enables project-specific knowledge layers and ecosystem-aware specialist recommendations. Call before other BC tools to activate workspace context.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_root | Yes | Absolute path to the workspace/project root directory (e.g., C:/projects/my-bc-app or /home/user/projects/my-bc-app) | |
| available_mcps | Yes | List of MCP server IDs available in your context (e.g., ["bc-telemetry-buddy", "al-objid-mcp-server"]) |
TDQS
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 tool sets values but does not disclose whether settings persist across sessions, if it validates inputs, or if it is idempotent. Basic mutational behavior is implied, but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. The first sentence specifies the action and resources, the second explains purpose and usage timing. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only two simple parameters and no output schema, the description covers the purpose and usage timing adequately. However, it lacks some behavioral details like error handling or idempotency, which would be helpful for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions. The tool description adds high-level context about enabling knowledge layers but does not provide additional semantic meaning beyond what the schema already offers. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resources 'workspace root directory and available MCP server IDs', and distinguishes this tool from siblings like get_workspace_info by mentioning project-specific knowledge layers and specialist recommendations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to call this tool before other BC tools to activate workspace context, providing clear timing guidance. It implicitly differentiates from read-only sibling tools but does not explicitly mention when not to use it or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_layer_repoA
Check if a directory has valid BC Code Intelligence layer structure. Returns validation status, missing items, and suggestions for fixing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Absolute path to the directory to validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description partially carries the burden. It states the tool 'returns' results, implying it is a read-only check, but does not explicitly confirm non-destructive behavior, performance characteristics, or any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences that convey purpose and output without any redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter and no output schema, the description adequately covers the validation purpose and return values (status, missing items, suggestions). It could mention criteria for what constitutes a valid structure, but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 'path' (described as 'Absolute path to the directory to validate'). The tool description adds no additional semantic value beyond the schema's existing documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') and resource ('BC Code Intelligence layer structure') and clearly states the outputs (validation status, missing items, suggestions). This distinguishes it from siblings like 'scaffold_layer_repo' (creation) and 'analyze_al_code' (code analysis).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for validating layer structure but does not explicitly state when to use this tool versus alternatives such as 'scaffold_layer_repo' or 'analyze_al_code'. No guidance on when not to use it is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_batchA
Apply batch operations to multiple pattern instances in a Workflow Engine v2 session.
For pattern-based workflows (like error-to-errorinfo-migration), this allows efficient bulk operations:
apply_fixes: Apply auto-fixes to matching instances
skip_instances: Mark instances as skipped
flag_for_review: Mark instances for manual review
group_by_type: Get instances grouped by type
Use dry_run=true (default) to preview changes before applying. Use confirmation_token from dry_run to execute the operation.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Workflow session ID | |
| operation | Yes | Batch operation to perform | |
| filter | No | Filter criteria for selecting instances | |
| dry_run | No | Preview changes without applying (default: true) | |
| confirmation_token | No | Token from dry_run to confirm actual execution |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behaviors. It explains the two-step dry-run/confirmation mechanism but does not mention potential destructive impacts, permissions needed, or error handling for the batch operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence purpose, a bullet list of operations, and two sentences on usage. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, nested objects, no output schema), the description is fairly complete but lacks details on return values (e.g., success counts, errors) and whether updates are synchronous or require confirmation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. The description adds value by explaining each operation's purpose and the dry_run/confirmation workflow, providing more context than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies batch operations to pattern instances in Workflow Engine v2, listing specific operations like apply_fixes, skip_instances, flag_for_review, and group_by_type. This distinguishes it clearly from sibling tools like workflow_cancel or workflow_start.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides good usage context: mentions pattern-based workflows, recommends dry_run=true for preview, and explains confirmation_token for execution. However, it doesn't explicitly state when not to use this tool or mention alternatives for single-instance operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_cancelA
Cancel a workflow session or clear all workflow sessions.
Use cases:
Cancel a stale/orphaned workflow from a previous session
Reset workflow state when restarting work
Clear all workflows to start fresh
Options:
session_id: Cancel a specific workflow session
cancel_all: true to cancel ALL active workflow sessions
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No | Specific workflow session ID to cancel. If not provided and cancel_all is false, lists active sessions. | |
| cancel_all | No | Set to true to cancel ALL active workflow sessions |
TDQS
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 discloses that cancel_all cancels ALL active sessions, indicating destructive behavior, and implies that omitting both parameters lists active sessions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise with bullet points for use cases and options. The main action is front-loaded, and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a cancellation tool with no output schema or annotations, the description covers the main behaviors and use cases. It could mention error scenarios or return values, but current coverage is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds context by explaining the behavior when session_id is omitted and cancel_all is false (lists sessions), which goes beyond the schema's property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Cancel' and the resource 'workflow session', distinguishing it from sibling tools like workflow_start or workflow_list. It also covers both single and bulk cancellation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides specific use cases (cancel stale workflows, reset state, clear all) and explains the two options. However, it does not explicitly mention when not to use it or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_completeA
Complete a Workflow Engine v2 session and generate the final report.
Call this when all files have been processed (next_action.type === "complete_workflow").
Options:
generate_report: Create a summary report (default: true)
apply_changes: Apply all auto-applicable proposed changes (default: false)
report_format: markdown, json, or html (default: markdown)
Returns the final summary and report content.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Workflow session ID | |
| generate_report | No | Generate markdown summary report | |
| apply_changes | No | Apply all auto-applicable proposed changes | |
| report_format | No | Report output format | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must cover behavior. It discloses that the tool completes a session, generates a report, and allows optional changes. However, it does not explicitly state whether the action is idempotent or what happens if called prematurely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (about 6 lines) with clear sections: purpose, condition, options, return. Every sentence serves a purpose and is front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions return content ('final summary and report'). It covers necessary parameters, usage condition, and behavior. For a completion tool, it is complete and leaves no critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds value by explaining the options (generate_report, apply_changes, report_format) with defaults and the return type, exceeding what the schema alone provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Complete a Workflow Engine v2 session and generate the final report,' using a specific verb and resource. It differentiates from sibling tools like workflow_start, workflow_cancel, etc., which handle other phases of the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call this when all files have been processed (next_action.type === "complete_workflow")', providing a clear condition for use. No alternatives mentioned, but the context is sufficient given the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_listA
List all available BC Code Intelligence workflows.
Use this tool to discover structured workflows that can guide the user through complex processes like code reviews, debugging, or app development.
Returns a list of available workflows with:
workflow_type: The ID to pass to workflow_start
name: Human-readable workflow name
description: What the workflow helps with
specialist: The recommended specialist for this workflow
phases: The phases/steps in the workflow
Call this early in conversations to see if a workflow matches the user's intent.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It accurately describes the tool as a read-only listing operation (implied by 'List all'), and details the return fields. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise with a bullet list that aids readability. Every sentence adds value, though it could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description thoroughly explains the return structure (workflow_type, name, description, specialist, phases). It also provides usage context for a discovery tool, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema_description_coverage is 100%. Baseline is 4. The description adds no parameter info, which is appropriate since no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List all available BC Code Intelligence workflows,' clearly identifying the action (list) and resource (workflows). It distinguishes from sibling tools like workflow_start and workflow_status by focusing on discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to 'Call this early in conversations to see if a workflow matches the user's intent,' providing explicit when-to-use guidance. It does not specify when not to use, but the context is clear and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_nextA
Get the next action to perform in a workflow session.
Call this when you're ready for the next task. The engine returns:
Current progress (phase, files completed, percent)
Current file's checklist status
Next action with explicit instructions
Tool call suggestions for the action
The agent MUST follow the next_action instructions exactly.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Workflow session ID from workflow_start |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It lists return data (progress, checklist, next action, tool suggestions) and instructs the agent to follow next_action instructions exactly, offering good behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at six sentences, with the main purpose upfront, followed by bullet-like clarifications. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and no output schema, the description covers the tool's functionality and expected return values. It could mention idempotency or side effects, but overall it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter (session_id) has full schema description coverage (100%). The tool description does not add additional semantic information beyond the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get the next action to perform in a workflow session,' which clearly identifies the tool's purpose using a specific verb and resource. This distinguishes it from sibling tools like workflow_start or workflow_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises to 'call this when you're ready for the next task,' providing clear usage context. However, it does not explicitly state when not to use or list alternatives, but the workflow series implies progression.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_progressA
Report progress on current workflow action and get the next action.
Call this after completing each action (analyzing a file, applying a topic, converting an instance). Include any findings, proposed changes, and topics to add to the checklist.
The engine updates session state and returns the next action to perform.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Workflow session ID | |
| completed_action | Yes | Information about the completed action | |
| findings | No | Issues or observations found during this action | |
| proposed_changes | No | Code changes proposed during this action | |
| expand_checklist | No | Additional topics to add to current file's checklist (from analyze_al_code suggested_topics) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description mentions session state updates and return of next action but lacks detail on side effects, error handling, or state mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with clear front-loading of purpose and usage. Efficient but could be more structured for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main usage and inputs but lacks details on output format, error behavior, or assumptions about session validity. Adequate but incomplete given complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. Description does not add significant meaning beyond the schema, only mentions example inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports progress on current workflow action and returns the next action, using specific verbs and resource. It distinguishes from sibling tools by focusing on workflow progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call after completing each action and provides examples. However, no mention of when not to use or alternatives among siblings, though context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_startA
Start a workflow session - a stateful checklist management system that drives agents through systematic, file-by-file processing.
Workflows provide:
File inventory with per-file checklists
Dynamic checklist expansion based on analysis
Pattern scanning for migrations (e.g., ErrorβErrorInfo)
Batch operations for large-scale changes
Progress tracking and session persistence
The workflow drives the agent with explicit next-action instructions.
Example usage:
Start a code review: workflow_type="code-review"
Start an error migration: workflow_type="error-to-errorinfo-migration"
Start a BC upgrade: workflow_type="bc-version-upgrade" with source_version and target_version
| Name | Required | Description | Default |
|---|---|---|---|
| workflow_type | Yes | Type of workflow to start. Built-in types: code-review, proposal-review, performance-audit, security-audit, onboarding, error-to-errorinfo-migration, bc-version-upgrade. Custom workflow types defined in company/project layers are also supported. | |
| scope | No | Scope of files to include. "workspace" scans entire workspace, "directory" scans a specific path, "files" targets specific files. | workspace |
| path | No | Directory path (if scope=directory) or comma-separated file paths (if scope=files) | |
| options | No | Workflow-specific options | |
| initial_processing | No | Control server-side autonomous processing before returning |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden. It discloses stateful behavior, file inventory, dynamic checklists, pattern scanning, batch operations, and session persistence. No contradictions or omissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with bullet points and examples, but slightly verbose. Information is front-loaded and each section earns its place, though some repetition could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with nested parameters and no output schema, the description covers purpose, workflow features, and examples. Missing return value details, but session persistence and progress tracking imply sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; baseline 3. Description adds value by providing workflow type examples and explaining options like bc_version in context (e.g., BC upgrade), enhancing parameter understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool starts a workflow session (specific verb+resource) and lists built-in types with examples. It distinguishes from sibling tools like workflow_batch, workflow_cancel, etc., by focusing on initiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use the tool (e.g., start a code review, error migration) and examples. Lacks explicit when-not-to-use guidance but implicitly differentiates from siblings through its initiation role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_statusA
Get current workflow v2 session status without advancing.
Returns:
Overall progress (phase, percent complete)
Summary of findings by severity
Summary of proposed changes
Optionally: status of all files
Use this to check on workflow progress or recover context after interruption.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Workflow session ID | |
| include_all_files | No | Include status of all files (can be large for big workspaces) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States it does not advance the workflow, and lists return values. Implies read-only safety; could be more explicit about non-destructive nature but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise paragraphs: primary action in first sentence, then returns, then usage. Front-loaded with key info, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description lists return categories (progress, findings, changes, optional file status). Adequate for a simple status check tool. Could specify return format, but sufficient for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are described in schema (100% coverage). Description adds useful warning: 'can be large for big workspaces' for include_all_files, providing value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'get', resource 'workflow v2 session status', and important distinction 'without advancing'. Also lists specific return items, distinguishing it from siblings like workflow_progress and workflow_next.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to check on workflow progress or recover context after interruption', providing clear use cases. Implicitly advises against use when advancement is needed, but no explicit alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action or resource: workspace management, knowledge browsing, workflow control, etc. Overlaps are minimal and clarified by descriptions.
All tool names follow a consistent verb_noun pattern in snake_case, with workflow_ prefix for workflow tools. No mixing of conventions.
21 tools are well-scoped across multiple subsystems (workspace, knowledge, workflows, analysis) with no redundancy. Each tool serves a clear purpose.
The tool surface covers the full lifecycle: workspace setup, knowledge retrieval, layer management, workflow orchestration, and code analysis. No obvious missing operations.
Maintenance
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
Debug, build, and manage Power Automate cloud flows with AI agents
Build, deploy, and sell AI agents for local-service businesses - from your IDE.
AI colleagues that keep your standards, your project and their reasoning between sessions
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to perform Business Central AL development tasks including language server operations, container management, Git version control, and file system operations for professional BC development workflows.
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Dynamics 365 Business Central environments through natural language commands, including environment, app, session, and extension management.189MIT
- FlicenseNot gradedqualityDmaintenanceGenerates AL code for Business Central directly from your IDE, enhancing developer efficiency by providing tools, prompts, and resources for code generation.1
- AlicenseBqualityAmaintenanceEnables intelligent access to AL-Go documentation, workflows, and domain expertise for Business Central development automation through specialized personas and cross-source semantic search.174115MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/JeremyVyska/bc-code-intelligence-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server