Tracelink MCP Server
OfficialThis MCP server gives AI assistants read/write access to Tracelink business data: master data, orders, objects, journals, and relations.
Company & user info: get company details, departments, current user, users, and user groups
Order management: list, view, create, update, and delete orders and suborders
Object operations: list/get/create/update objects across modules such as purchase, customer, supplier, CRM, docs, stock locations, tickets, and bait
Order-related modules: read and add time registrations or tasks on orders
Journal/chat: read and add journal messages or events to objects
Relations: list relations between two modules
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., "@Tracelink MCP ServerRetrieve orders for customer 789"
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.
Tracelink MCP Server
MCP server that gives Claude, ChatGPT and GitHub Copilot access to the Tracelink API.
There are two ways to connect: a hosted HTTPS server (recommended) or the local stdio server in this repo.
HTTPS — Tracelink hosts the server at
https://tracelink.dk/api/mcp. Your client talks to it directly over the internet, authenticating with an API key in thex-access-tokenheader. No installation, no local process, always up to date, and it exposes a broader/better tool set (e.g. document upload, tags, relations, schema introspection).stdio — the client starts this repo's
index.jsas a local child process and talks to it over stdin/stdout. Requires Node.js, a local checkout, andnpm install.
The stdio server in this repo is no longer being actively developed and will be removed at a later point. New setups should use the hosted HTTPS server below; existing stdio configurations should migrate when convenient.
Recommended: hosted HTTPS server
Connect directly to Tracelink's hosted MCP server at https://tracelink.dk/api/mcp. This requires no local installation — just an API key sent via the x-access-token header.
You can configure this either by editing the config file directly (examples below), or through the user interface:
Claude Desktop: Settings → Connectors → Add custom connector, enter the URL
https://tracelink.dk/api/mcpand add a header namedx-access-tokenwith your API key.VS Code: Run the command "MCP: Add Server" from the Command Palette, choose "HTTP", enter the URL
https://tracelink.dk/api/mcp, and add a header namedx-access-tokenwith your API key.
Claude Desktop
{
"mcpServers": {
"tracelink": {
"type": "http",
"url": "https://tracelink.dk/api/mcp",
"headers": {
"x-access-token": "your-api-key-here"
}
}
}
}VS Code (GitHub Copilot)
{
"servers": {
"tracelink": {
"type": "http",
"url": "https://tracelink.dk/api/mcp",
"headers": {
"x-access-token": "your-api-key-here"
}
}
}
}ChatGPT
Custom MCP connectors require Developer mode, which must be enabled first:
Go to Settings → Connectors → Advanced settings and turn on Developer mode.
Go back to Settings → Connectors and click Create (or Add custom connector).
Fill in a name (e.g.
Tracelink), and set the MCP Server URL tohttps://tracelink.dk/api/mcp.Under Authentication, choose the API key / custom header option, set the header name to
x-access-token, and enter your API key as the value.Save, then enable the Tracelink connector in a chat via the + → More → Connectors menu (or in Deep Research) to make its tools available.
Availability of custom connectors and the exact menu wording depends on your ChatGPT plan (Plus/Pro/Team/Enterprise) and may change over time.
Related MCP server: claude-for-abap
Local stdio server (deprecated)
⚠️ This local server is no longer actively developed and will be removed at a later point. Use the hosted HTTPS server above instead.
Installation
npm installConfiguration in Claude Desktop
Add the following to your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"tracelink": {
"command": "node",
"args": ["/full/path/to/tracelink-mcp/index.js"],
"env": {
"TRACELINK_TOKEN": "your-api-token-here"
}
}
}
}Restart Claude Desktop — the server starts automatically.
Configuration in VS Code (GitHub Copilot)
Requires VS Code 1.99+ and GitHub Copilot with Agent mode enabled.
Create .vscode/mcp.json in your workspace:
{
"servers": {
"tracelink": {
"type": "stdio",
"command": "node",
"args": ["/full/path/to/tracelink-mcp/index.js"],
"env": {
"TRACELINK_TOKEN": "your-api-token-here"
}
}
}
}Tools are then available in Copilot Chat when Agent mode is active.
Available tools (stdio server)
The hosted HTTPS server exposes a broader tool set (including document upload, tags, relations, and schema introspection); the table below lists only what the local stdio server supports.
Tool | Description |
| Company master data |
| Departments |
| Current authenticated user |
| All users |
| User groups |
| Orders with filter/sort/paging |
| Specific order |
| Create order |
| Update order |
| Delete order |
| Suborders |
| Specific suborder |
| Create suborder |
| Objects from a module (purchase, genobj, customer, ...) |
| Specific object |
| Create object |
| Update object |
| Time registrations / tasks on an order |
| Add time registration / task |
| Journal/chat messages on an object |
| Add message or event to journal |
| Relations between modules |
Available Tools
22 toolsadd_journalB
Tilføjer en journal besked eller hændelse til et objekt i et modul
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | Modulnavn, f.eks. 'bait', 'crm', 'genobj' | |
| item_id | Yes | ID på objektet der skal tilføjes journal til | |
| type | Yes | 'text' for besked, 'event' for hændelse med ikon | |
| log | Yes | Beskedtekst (type=text) eller kort hændelsestekst (type=event) | |
| icon | No | Fontello ikon-navn, f.eks. 'icon-play', 'icon-pause' (kun ved type=event) | |
| color | No | Hex farve på ikon, f.eks. '#3AA64C' (kun ved type=event) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only states the action without revealing side effects, permissions, or whether it appends or overwrites. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it is in Danish and not front-loaded for an English-speaking agent. It is efficient but could benefit from additional context.
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 6 parameters and no output schema, the description is minimal. It lacks details on return values, error conditions, and the overall effect on the system, making it incomplete.
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 all parameters are described in the schema. The description adds no extra meaning 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 clearly states the verb 'Tilføjer' (adds) and the resource 'journal besked eller hændelse' (journal message or event) to a target 'objekt i et modul'. It is specific and distinguishes the tool from siblings like list_journal.
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 no guidance on when to use this tool versus alternatives, such as update_object or create_object. No conditions or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_order_moduleC
Tilføjer en registrering til et ordre-modul, f.eks. tidsregistrering
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | Modulnavn: timereg eller task | |
| data | Yes | Data inkl. order_id og relevante felter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only states the action (adding a registration) without disclosing side effects, permissions, or whether the operation is idempotent. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It efficiently conveys the core functionality.
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, no annotations, and a nested object parameter, the description is too brief. It does not explain expected return values, error handling, or the behavior of the 'module' enum. More detail is needed 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?
The schema already covers both parameters with descriptions (module enum and data object). The description adds a concrete example ('time registration'), providing extra context despite the schema having 100% coverage. 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 that the tool adds a registration to an order module, with a specific example (time registration). It uses a verb+resource pattern and is distinct from siblings like 'add_journal' due to the focus on order modules.
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 given on when to use this tool versus alternatives like 'create_object' or 'update_order'. 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.
create_objectC
Opretter et nyt objekt i et modul (f.eks. en indkøbsordre, kunde, leverandør)
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | Modulnavn | |
| data | Yes | Feltværdier for objektet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description lacks details on side effects, permissions, error handling, or whether the operation is idempotent. It simply states it creates, which is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, efficient and to the point. No extra words, but could be slightly more informative without losing conciseness.
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 (nested data object, 10 module options, no output schema), the description is too sparse. It does not explain what the tool returns, how to construct the data object, or what specific modules entail.
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 baseline is 3. The description repeats the schema's 'field values for the object' without adding new meaning. It does not explain the enum values for module.
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 creates a new object in a module, with examples (purchase order, customer, supplier). It differentiates from sibling tools like 'create_order' by being more general.
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 versus alternatives like create_order. The description does not specify scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_orderC
Opretter en ny ordre i Tracelink
| Name | Required | Description | Default |
|---|---|---|---|
| number | No | Ordrenummer | |
| name | Yes | Ordrenavn | |
| description | No | Beskrivelse | |
| deadline_date | No | Deadline dato, format: 'YYYY-MM-DD HH:MM:SS' | |
| metadata_1 | No | ||
| metadata_2 | No | ||
| metadata_3 | No | ||
| metadata_4 | No | ||
| metadata_5 | No |
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, yet it fails to disclose any behavioral traits like return values, side effects, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence, but it is under-specified and does not earn its place by providing adequate 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?
Despite 9 parameters and 5 metadata fields without descriptions, the description offers no help, and there is no output schema or usage 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?
The description adds no parameter information beyond the schema, which already has low coverage (44%).
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 creates a new order in Tracelink, but does not differentiate from sibling tools like create_object or create_suborder.
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 versus alternatives, such as when to create a suborder instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_suborderB
Opretter en underordre på en eksisterende ordre
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Overordnet ordre ID | |
| number | No | Underordre nummer | |
| name | Yes | Navn på underordren | |
| description | No |
TDQS
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, but it only states the basic action. It does not mention side effects, required permissions, error conditions, or the nature of the operation (e.g., whether it is immediate or asynchronous). For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It is front-loaded with the core purpose. However, it could be slightly expanded to include essential behavioral or usage information without losing conciseness.
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 lack of annotations and output schema, the description is too terse. It does not explain what happens upon success (e.g., returns a suborder object?), what prerequisites are needed (e.g., existence of parent order), or error scenarios. For a creation tool, this leaves significant gaps for the agent.
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 75%, so the schema already explains most parameters. The description adds no extra meaning beyond the schema. It does not clarify parameter relationships, valid formats (e.g., for 'number'), or constraints (e.g., uniqueness).
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 'Opretter en underordre på en eksisterende ordre' clearly identifies the action (create suborder), the resource (underordre/suborder), and the constraint (on an existing order). It effectively distinguishes from sibling tools like create_order, which creates a main order, and other suborder-related 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?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites (e.g., existence of parent order), and no conditions for appropriate usage. It is purely declarative without contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_orderB
Sletter en ordre permanent
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Ordre ID der skal slettes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions 'permanent' which hints at irreversibility, but fails to disclose other behavioral traits such as authorization requirements, cascading effects on related data, or whether the operation can be undone. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence), which is concise, but it is written in Danish while the tool name is English. This language inconsistency may cause confusion for non-Danish-speaking agents. The structure is front-loaded but lacks clarity for a multilingual audience.
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 that there is no output schema, the description should explain what the tool returns (e.g., success status, deleted entity). It does not. As a mutation tool with one parameter, it is minimal but incomplete for an agent to fully understand the tool's behavior.
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 its single parameter. The description adds no meaningful information beyond what the schema already provides ('Ordre ID der skal slettes'). With full schema coverage, a 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 'Sletter en ordre permanent' clearly states the action (delete) and the resource (order), with 'permanent' indicating irreversibility. This sufficiently distinguishes it from sibling tools like 'get_order', 'create_order', and 'update_order'.
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 no explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. However, the tool name and description imply it is for deletions, and the context of sibling tools (e.g., 'create_order', 'update_order') provides some implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_companyB
Henter Tracelink virksomhedens stamdata
| 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 must disclose behaviors. It implies a read operation ('Henter' = retrieves), but does not mention aspects like authentication, rate limits, or any side effects. For a parameterless getter, this is minimally acceptable 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, concise sentence that efficiently communicates the tool's purpose. However, it lacks any structured elements like examples or notes, which would be beneficial for clarity.
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 simplicity of the tool (no parameters, no output schema), the description is reasonably complete. It conveys the core function, though additional details about the returned data structure would improve 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?
The input schema has zero parameters, so the baseline score is 4. No additional parameter information is needed, as there are no parameters to describe.
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 retrieves company master data using a specific verb ('Henter' meaning retrieves) and resource ('Tracelink virksomhedens stamdata'). It distinguishes from sibling tools like get_current_user or get_object, though the exact scope of 'stamdata' could be more explicit.
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. The tool has no parameters, but the description does not clarify that it is safe for initial data retrieval or if there are any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_userA
Henter den aktuelt autentificerede bruger
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description does not disclose behavioral traits beyond the basic action (e.g., no mention of read-only nature, authentication requirements, or response format).
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 short sentence, no waste, appropriately front-loaded with key 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, description could specify what the return object typically contains (e.g., user id, name, email) but only states 'gets user'.
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?
No parameters in schema (100% coverage, 0 params), so baseline is 4; description adds no parameter info but none is needed.
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 verb 'Henter' (gets) and resource 'aktuelt autentificerede bruger' (currently authenticated user), distinguishing it from sibling tools like 'list_users' which list all users.
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 versus alternatives; no context or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_objectB
Henter et specifikt objekt fra et modul
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | Modulnavn | |
| object_id | Yes | Objekt ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read operation ('henter'), but lacks details on error handling, permissions, or side effects. Adequate for a simple read tool but not thorough.
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, concise and front-loaded. Every word is necessary and descriptive.
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 description does not explain what is returned. For a simple get tool, agents may infer, but completeness is lacking given minimal 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 covers 100% of parameters with descriptions. The description adds no additional meaning beyond the schema, so baseline 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 tool retrieves a specific object from a module, using the verb 'henter' and resource 'specifikt objekt fra et modul'. It distinguishes from sibling list tools like list_objects and other get tools like get_order.
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 versus alternatives such as get_company, get_order, or list_objects. No when-not or usage context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderA
Henter en specifik ordre med alle detaljer
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Ordre ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'all details' without specifying behavior like error handling, prerequisites, or side effects, leaving the agent guessing.
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?
A single, clear sentence with no wasted words; appropriately concise for a simple get operation.
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 low complexity (1 param, no output schema), the description is minimal but adequate; however, it doesn't explain return format or error conditions, which could help the agent.
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 no extra meaning beyond the schema parameter 'order_id', which is already documented.
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 (Henter/get) and resource (specifik ordre/specific order) with scope (alle detaljer/all details), distinguishing it from sibling tools like list_orders or create_order.
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 when-to-use or alternatives are mentioned, but the purpose of retrieving a single order is implied; lacks exclusions or context for when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_suborderB
Henter en specifik underordre
| Name | Required | Description | Default |
|---|---|---|---|
| order_sub_id | Yes | Underordre ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states retrieval without disclosing potential errors, authentication needs, or read-only nature. Leaves behavioral assumptions to agent.
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, no redundancy. Every word carries meaning, fitting conciseness ideal.
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 one parameter and no output schema. Description covers basic purpose but omits return value details. Adequate but not enriched.
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 covers parameter fully with description 'Underordre ID'. Description adds no extra meaning beyond schema, achieving baseline for 100% coverage.
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 uses specific verb 'Henter' (retrieves) and clearly identifies resource 'specifik underordre' (specific suborder), distinguishing from siblings like list_suborders and get_order.
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 versus alternatives like list_suborders or get_order. Lacks prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_departmentsA
Henter liste over afdelinger i virksomheden
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, or potential side effects. For a tool without annotations, the description should compensate but it only states the 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?
A single, concise sentence conveys the purpose without any waste. The structure is 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?
Given the tool has no parameters, no output schema, and a simple function, the description is complete enough. It adequately explains what the tool does, and no additional information is needed for this use case.
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, and the schema coverage is 100%. Per the guidelines, a baseline of 4 is appropriate since the description adds no parameter details but the lack of parameters makes further elaboration unnecessary.
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 a list of departments, with a specific verb ('Henter liste') and resource ('afdelinger'). It is easily distinguished from sibling tools which deal with orders, objects, users, etc.
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 versus alternatives is provided. However, since it is the only department-listing tool, the need for such guidance is minimal. The score reflects the absence of explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_journalA
Henter journal/chat beskeder for et specifikt objekt i et modul
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | Modulnavn, f.eks. 'bait', 'crm', 'genobj' | |
| item_id | Yes | ID på objektet hvis journal skal hentes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It implies a read operation ('Henter') but does not explicitly state it is non-destructive or disclose any behavioral traits like permissions or rate limits. Adequate but not explicit.
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-loading the verb and resource. Efficient and to the point with 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?
For a simple 2-parameter tool without output schema, the description provides basic purpose but lacks information on pagination, error conditions, or return format. Moderately 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?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds minimal extra meaning beyond mapping 'specifikt objekt' to item_id and 'modul' to module. 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?
Description clearly states the tool retrieves journal/chat messages for a specific object in a module. Uses a specific verb ('Henter') and resource ('journal/chat beskeder'), distinguishing it from sibling tools like add_journal.
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 versus alternatives such as list_objects or add_journal. 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.
list_objectsB
Henter objekter fra et Tracelink modul. Tilgængelige moduler: purchase, genobj, customer, supplier, crm, docs, batch_genobj, stockloc, ticket, bait
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | Modulnavn | |
| filter | No | Filterfelt, f.eks. { locked: '=0', name: 'Stål' } | |
| filter_or | No | Brug OR i stedet for AND på filter | |
| sort | No | Sorteringsfelt(er) | |
| reverse | No | Omvendt sortering | |
| limit | No | Max antal rækker (max 1000) | |
| page | No | Sidenummer, 0-indekseret |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description is minimal but implies a read operation ('Henter'). Does not disclose additional behavioral traits like pagination behavior or limits beyond what is in the schema.
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, one sentence with a list of modules. However, the list could be formatted as a bullet for better readability.
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?
Lacks description of output format (e.g., returns an array of objects). With no output schema and no guidance on siblings, the agent is left guessing about return value and when to use this tool.
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 description adds no new parameter information beyond the schema. The tool description simply repeats the module list already present as an enum.
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 it retrieves objects from a Tracelink module and lists available modules, but does not differentiate from sibling list tools like list_orders or list_users, which have more specific purposes.
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. The description only lists modules without indicating that dedicated list tools exist for specific modules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_order_moduleC
Henter registreringer fra et ordre-modul, f.eks. tidsregistreringer eller opgaver
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | Modulnavn: timereg eller task | |
| order_id | No | Filtrér på specifik ordre ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only says 'fetches records', omitting details about read-only nature, pagination, or side effects. This leaves agents guessing about safety and operation.
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?
A single sentence that is front-loaded with the key action 'Henter' (fetches). No wasted words, but could be slightly more structured (e.g., listing parameters explicitly).
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 2 parameters and no output schema, the description is too brief. It does not explain return format, optionality of order_id, or prerequisites. It is minimally adequate but leaves gaps for autonomous decision-making.
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 already covers both parameters with descriptions (100% coverage). The description adds context about the module parameter (time registrations, tasks) but does not enhance meaning beyond the schema. 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 it fetches records from an order module with specific examples (time registrations, tasks), distinguishing it from sibling tools like list_orders which list orders themselves. However, it could be more explicit about the exact resource type.
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 this tool vs alternatives. The examples imply usage for sub-records of orders, but without clear when-to-use or when-not-to-use statements, an agent may confuse it with other list tools like list_objects or list_journal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ordersA
Henter liste over ordrer. Brug ved spørgsmål om aktive ordrer, deadlines, status eller fremdrift.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filterfelt, f.eks. { locked: '=0', name: 'Stål' } | |
| filter_or | No | Brug OR i stedet for AND på filter | |
| sort | No | Sorteringsfelt(er) | |
| reverse | No | Omvendt sortering | |
| limit | No | Max antal rækker (max 1000) | |
| page | No | Sidenummer, 0-indekseret |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like read-only nature, pagination behavior, or authentication needs. It only says 'retrieves list' without any such details, leaving significant gaps.
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, front-loaded with the action, and no superfluous words. Every sentence 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?
No output schema exists, so the description should explain return values or pagination. It does not. With 6 parameters including a complex filter object, the description is too brief to be 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?
Schema coverage is 100%, so baseline is 3. The description adds no parameter details beyond what the schema provides, but the schema already documents each parameter adequately.
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 'Henter' (retrieves) and resource 'liste over ordrer' (list of orders), and provides specific usage contexts like active orders, deadlines, status, or progress, distinguishing it from siblings like 'get_order'.
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 when to use the tool (questions about active orders, deadlines, status, progress), but does not mention when not to use it or explicitly name alternative sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_relationsC
Henter relationer mellem to moduler
| Name | Required | Description | Default |
|---|---|---|---|
| from_module | Yes | Kilde-modul | |
| to_module | Yes | Mål-modul | |
| to_id | Yes | ID på mål-objektet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only implies a read operation ('Henter') without detailing any other behavioral aspects like permissions, rate limits, or side effects. The tool's behavior beyond the basic action is opaque.
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, short sentence that efficiently communicates the tool's purpose without any filler. It is front-loaded and 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 lack of an output schema and the tool's listing nature, the description should explain what kind of relations are returned (e.g., IDs, names, types). It provides no such detail, leaving the agent uninformed about the response format.
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 already covers all three parameters with descriptions (Kilde-modul, Mål-modul, ID på mål-objektet) and enums. The description adds no additional meaning beyond summarizing the operation, so it meets the baseline for 100% schema coverage.
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 'Henter relationer mellem to moduler' (Get relations between two modules), which clearly identifies the tool's action and resource. It distinguishes from sibling list tools like list_objects or list_orders by focusing on inter-module relations.
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 no guidance on when to use this tool versus alternatives. No context about prerequisites, typical use cases, or when not to use it is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subordersC
Henter liste over underordrer
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filterfelt, f.eks. { locked: '=0', name: 'Stål' } | |
| filter_or | No | Brug OR i stedet for AND på filter | |
| sort | No | Sorteringsfelt(er) | |
| reverse | No | Omvendt sortering | |
| limit | No | Max antal rækker (max 1000) | |
| page | No | Sidenummer, 0-indekseret |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for behavioral disclosure. It does not mention that this is a read-only operation, nor does it explain pagination, filtering behavior, or any side effects. The description adds minimal value beyond the name.
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, concise sentence that conveys the core purpose efficiently. However, it is so brief that it may be under-specified, but it earns points for lack of verbose 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 list tool with 6 parameters, no output schema, and no annotations, the description is incomplete. It fails to explain what the list contains, how pagination works, or how the parameters like filter, sort, and limit interact. The description is too sparse for an agent to fully understand the tool's behavior.
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% for all 6 parameters, so the baseline is 3. The description does not add any additional meaning to the parameters beyond what the schema already documents. It simply repeats the list concept without elaborating on usage.
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 'Henter liste over underordrer' clearly states the action (retrieve list) and the resource (suborders). It is specific and uses a verb+resource structure, but does not differentiate from sibling tools like list_orders or get_suborder, which handle similar entities.
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. For instance, there is no indication of when to prefer list_suborders over list_orders or get_suborder. The description lacks any contextual cues for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_user_groupsB
Henter liste over brugergrupper
| 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 the full burden. It only states that the tool lists user groups, with no disclosure of whether it is read-only, whether pagination or sorting is supported, or what the response contains.
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 sentence that is concise and front-loaded with the core action. Every word is necessary and no extraneous information is included.
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 parameterless list tool, the description is minimal but adequately conveys the basic purpose. However, it lacks details about output structure, read-only nature, and potential limits, which would be helpful for an agent.
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 no parameters, so schema coverage is 100%. The description adds no parameter information, but none is needed. Baseline score of 4 is appropriate as the schema already conveys everything about the input.
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 'Henter liste' (get list) and the resource 'brugergrupper' (user groups), making the purpose explicit. However, it does not distinguish from sibling list tools like list_users or list_departments, which also return lists of entities.
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 usage guidelines are provided. The description does not indicate when to use this tool versus alternative list tools (e.g., list_users), nor does it specify any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usersB
Henter liste over alle brugere i systemet
| 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 the full burden. It only says 'gets list of all users' with no disclosure of behavior such as pagination, permissions, rate limits, or whether it returns active/inactive users. The minimal description does not add behavioral context beyond the obvious.
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 one short sentence, approximately 5 words. It is maximally concise and contains no unnecessary information. 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?
Given the tool's simplicity (no parameters, no output schema), the description is minimally adequate. However, it could be more complete by noting, for example, that it returns all users without pagination or that it includes certain default fields. As it stands, it is functional but leaves room for ambiguity.
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 no parameters and the schema coverage is 100% (no params to describe). According to guidelines, high schema coverage yields a baseline of 3 even without parameter info in the description. The description does not add parameter semantics because none 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 'Henter liste over alle brugere i systemet' (Gets a list of all users in the system). It clearly identifies the verb (hente) and resource (brugere), and distinguishes from sibling tools like list_departments or list_orders which deal with different resources.
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 no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, filters, or context-specific use cases. With no parameters, the usage is straightforward, but there is no explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_objectB
Opdaterer et objekt i et modul
| Name | Required | Description | Default |
|---|---|---|---|
| module | Yes | Modulnavn | |
| data | Yes | Feltværdier inkl. ID-felt |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose mutation behavior such as whether it overwrites, merges, or requires permissions. Critical gaps for a write operation.
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 sentence, but it sacrifices necessary detail for brevity. Not appropriately sized given the tool's complexity.
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?
With no output schema, nested data object, and mutation semantics, the description is insufficient for an agent to safely and correctly invoke the tool.
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 covers 100% of parameters with descriptions and enums, so the description adds no extra semantic value. Baseline score 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 'opdaterer' (updates) and the resource 'objekt i et modul' (object in a module), distinguishing it from siblings like create_object or get_object.
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 versus alternatives like update_order. No mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_orderC
Opdaterer en eksisterende ordre
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | Ordre ID | |
| name | No | Nyt navn | |
| description | No | Ny beskrivelse | |
| deadline_date | No | Ny deadline, format: 'YYYY-MM-DD HH:MM:SS' | |
| metadata_1 | No | ||
| metadata_2 | No | ||
| metadata_3 | No | ||
| metadata_4 | No | ||
| metadata_5 | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It only says 'updates an existing order' without specifying whether it performs a partial update, what fields are affected, or any side effects. This is insufficient for safe invocation.
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 short (one phrase), but it is under-specified rather than concise. It fails to provide essential information, making it inadequate rather than 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?
Given the tool has 9 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain parameter usage, return values, or constraints. The tool cannot be used safely based solely on this description.
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 only 44% (4 of 9 parameters lack descriptions), and the description adds no additional meaning beyond the schema. The metadata fields are completely undocumented. The description does not compensate for the low coverage.
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 'Updates an existing order' clearly states the verb and resource. However, it does not differentiate from sibling tools like 'update_object' or 'create_order'. The purpose is clear but lacks distinctiveness.
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. There is no mention of prerequisites, when not to use it, or any trade-offs. The description is entirely silent on usage context.
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.
22 tool updates
v1.0.0- First observed
add_journal - First observed
add_order_module - First observed
create_object - First observed
create_order - First observed
create_suborder - First observed
delete_order - First observed
get_company - First observed
get_current_user - First observed
get_object - First observed
get_order - First observed
get_suborder - First observed
list_departments - First observed
list_journal - First observed
list_objects - First observed
list_order_module - First observed
list_orders - First observed
list_relations - First observed
list_suborders - First observed
list_user_groups - First observed
list_users - First observed
update_object - First observed
update_order
TDQS
Each tool targets a distinct entity and action (e.g., create_object vs. create_order, list_objects vs. list_orders). Descriptions clearly differentiate overlapping concepts like orders and suborders, leaving no ambiguity.
All tool names follow a consistent verb_noun pattern with lowercase and underscores (e.g., add_journal, create_object, list_orders). No mixing of conventions or irregular naming.
With 22 tools covering objects, orders, suborders, users, departments, journals, and relations, the count is well-scoped for an enterprise system. Each tool serves a necessary purpose without redundancy.
Significant gaps exist: no delete_object, no update/delete for suborders, and many entities (companies, users, departments) only have list/get tools with no create/update/delete. This will cause agent failures in full lifecycle 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
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
- mcp-serverOAuthio.klokin
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceMCP server for connecting Claude Desktop to FHIRfly healthcare reference data APIs, enabling lookup of drugs, providers, clinical codes, and more.209MIT- AlicenseNot gradedqualityAmaintenanceMCP server giving Claude (and any MCP-compatible client) live access to SAP systems via ADT for reading, searching, editing, and activating ABAP objects.20514MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that integrates with Microsoft Dynamics 365 Business Central, enabling querying of customers, items, and sales orders through natural language commands in Claude Desktop.10-
- FlicenseAqualityCmaintenanceMCP server for the ONE Framework ERP that enables Claude to explore data models, run queries, and understand business logic through autonomous access.10-
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/Tracelink-Devops/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server