Skip to main content
Glama
theperrygroup

Dotloop MCP

Dotloop MCP

Read-first MCP server for Dotloop.

This initial implementation wraps dotloop==1.3.2 behind service adapters and exposes safe read tools for account, profiles, loops, loop details, folders, documents, participants, tasks, activity, and templates. State-changing tools remain deferred by the planning docs under docs/planning/dotloop-mcp-buildout/.

MCP resources

  • dotloop://api-coverage-matrix: domain-level library and MCP exposure status.

  • dotloop://library-method-coverage: method-level dotloop==1.3.2 coverage generated from the installed package surface.

The local docs/ tree is intentionally ignored by this repo. Runtime coverage resources and make validate are self-contained for clean checkouts without local planning docs.

Related MCP server: flin-meta-ads-mcp

Install

uv sync

Configure

Set a local Dotloop access token outside version control:

export DOTLOOP_ACCESS_TOKEN="..."

The legacy DOTLOOP_API_KEY variable is also accepted because the underlying dotloop package uses that name.

Use .env.example for the supported non-secret variable names. Keep real values in your shell or a local ignored .env file. The server and live readiness check load DOTLOOP_* values from .env in the current working directory when those variables are not already exported. Set DOTLOOP_ENV_FILE to point at a different local env file.

Run

uv run python -m dotloop_mcp.cli stdio
uv run python -m dotloop_mcp.cli streamable-http --host 127.0.0.1 --port 8000 --path /mcp

AI Client Battle Testing

Battle testing uses deterministic fixture data and a JSONL tool-call recorder so Claude, ChatGPT, and local harnesses can be scored against the same scenario corpus without touching live Dotloop data.

export DOTLOOP_BATTLE_FIXTURE_MODE=1
export DOTLOOP_BATTLE_RECORD_PATH="tmp/ai-battle/<run-id>/<client>/mcp_calls.jsonl"

Fixture mode is incompatible with DOTLOOP_RUN_LIVE_TESTS=1 and never builds a real Dotloop API client. Use these targets for local validation and report scoring:

make battle-smoke
make battle-test
DOTLOOP_BATTLE_CALL_LOG=tmp/ai-battle/<run-id>/<client>/mcp_calls.jsonl make battle-report

The scenario corpus lives at tests/battle/scenarios/dotloop_ai_battle_scenarios.json and covers 150 identity/navigation, loop/document, people/workflow, template, multi-turn, and negative-safety prompts. ChatGPT hosted connector checks should use the staging HTTPS MCP URL with fixture mode enabled before any live Dotloop credentials are attached.

Authenticate the MCP URL

Streamable HTTP can be protected as an MCP OAuth resource server. The server can validate tokens from an external OAuth/OIDC issuer and JWKS URL, then clients must send Authorization: Bearer <token> on every MCP HTTP request. Tokens in URL query strings are not supported.

export DOTLOOP_TRANSPORT=streamable-http
export DOTLOOP_MCP_AUTH_ENABLED=1
export DOTLOOP_MCP_AUTH_ISSUER_URL="https://auth.example.com"
export DOTLOOP_MCP_AUTH_RESOURCE_SERVER_URL="https://dotloop-mcp.example.com/mcp"
export DOTLOOP_MCP_AUTH_JWKS_URL="https://auth.example.com/.well-known/jwks.json"
export DOTLOOP_MCP_AUTH_REQUIRED_SCOPES="dotloop:read"

DOTLOOP_MCP_AUTH_RESOURCE_SERVER_URL is the public MCP endpoint URL clients authenticate for. It is also used for protected-resource metadata discovery. Set DOTLOOP_MCP_AUTH_AUDIENCE only when the issuer uses a separate JWT audience value. Stdio transport is unchanged and should continue to load local credentials from the environment.

Hosted staging can also expose built-in OAuth issuer endpoints for MCP clients that expect URL-based browser authentication. Hosted live-read deployments should enable Dotloop app OAuth so the connector flow first authorizes the MCP URL and then, when needed, redirects through Dotloop's own OAuth app flow:

export DOTLOOP_MCP_HOSTED_OAUTH_ENABLED=1
export DOTLOOP_MCP_HOSTED_OAUTH_PUBLIC_CONSENT_ENABLED=0
export DOTLOOP_APP_OAUTH_ENABLED=1
export DOTLOOP_API_CLIENT_ID="..."
export DOTLOOP_API_SECRET="..."
export DOTLOOP_APP_OAUTH_REDIRECT_URL="https://tpgstats.com/agents/dotloop/callback"
export DOTLOOP_APP_OAUTH_TOKEN_SECRET_ARN="arn:aws:secretsmanager:..."

That built-in issuer serves:

/.well-known/oauth-authorization-server
/.well-known/openid-configuration
/.well-known/jwks.json
/oauth/register
/oauth/authorize
/oauth/dotloop/callback
/oauth/token

When DOTLOOP_APP_OAUTH_ENABLED=1, /oauth/authorize checks the hosted Dotloop token store before issuing an MCP authorization code. If no valid Dotloop API token is available, it redirects to Dotloop OAuth and resumes the original MCP PKCE flow after /oauth/dotloop/callback stores refreshable token state. The caller's MCP Bearer token is never passed through to Dotloop. For the hosted Perry Group deployment, Dotloop app authorization uses the registered https://tpgstats.com/agents/dotloop/callback redirect URI, and that Django callback relays MCP-prefixed OAuth states back to https://dotloop.theperry.group/oauth/dotloop/callback.

Hosted Staging Deployment

Dotloop staging is designed to run as a Docker image with the dotloop-mcp-hosted entrypoint on ECS/Fargate behind an HTTPS load balancer, with the public MCP endpoint expected at:

https://dotloop.theperry.group/mcp

The hosted entrypoint is streamable HTTP only and requires inbound MCP URL auth:

DOTLOOP_TRANSPORT=streamable-http
DOTLOOP_HOST=0.0.0.0
DOTLOOP_PORT=8000
DOTLOOP_STREAMABLE_HTTP_PATH=/mcp
DOTLOOP_MCP_AUTH_ENABLED=1
DOTLOOP_MCP_AUTH_ISSUER_URL=https://dotloop.theperry.group
DOTLOOP_MCP_AUTH_RESOURCE_SERVER_URL=https://dotloop.theperry.group/mcp
DOTLOOP_MCP_AUTH_JWKS_URL=https://dotloop.theperry.group/.well-known/jwks.json
DOTLOOP_MCP_HOSTED_OAUTH_ENABLED=1
DOTLOOP_MCP_HOSTED_OAUTH_PUBLIC_CONSENT_ENABLED=0
DOTLOOP_APP_OAUTH_ENABLED=1
DOTLOOP_APP_OAUTH_REDIRECT_URL=https://tpgstats.com/agents/dotloop/callback
DOTLOOP_APP_OAUTH_TOKEN_SECRET_ARN=arn:aws:secretsmanager:...

Deployment assets live under deploy/ecs/. The staging GitHub Actions workflow is .github/workflows/deploy-staging.yml; it validates the repo, builds and pushes a multi-architecture ECR image, renders the ECS task definition, updates the configured ECS service, and waits for stability. DNS should point dotloop.theperry.group at the public load balancer before enabling client use.

Validate

make validate

Live checks are disabled by default and require explicit opt-in:

make live-readiness-check
make live-read-check

Available Tools

33 tools
dotloop_download_documentC

Download a Dotloop document as base64 with a byte-size limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
folder_idNo
max_bytesNo
profile_idYes
document_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description provides minimal behavior info: it mentions a byte-size limit but does not explain what happens if exceeded (truncation? error?), nor any side effects, auth requirements, or rate limits.

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

Conciseness4/5

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

The description is very concise (one sentence, 9 words) and front-loaded. However, given the tool has 5 parameters and no parameter documentation, the description is under-specified; a bit more detail would be beneficial.

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

Completeness2/5

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

The description is minimally complete. It does not explain how to use optional parameters, error handling, or confirm if the output schema sufficiently describes return values. More context is needed for a tool with multiple parameters.

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

Parameters2/5

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

Schema coverage is 0% (no parameter descriptions), and the tool description adds no explanation of parameters like folder_id or max_bytes beyond their names. The names are somewhat self-explanatory, but lack of detail reduces usefulness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool downloads a Dotloop document, specifies the format as base64, and mentions a byte-size limit. This distinguishes it from sibling tools like dotloop_get_document (metadata) and dotloop_list_documents.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., dotloop_get_document) or when not to use it. Missing context about suitable scenarios or prerequisites.

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

dotloop_find_template_by_nameC

Find a Dotloop template by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idYes
exact_matchNo
template_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits, but it only says 'find by name.' It does not explain whether exact_match affects behavior, whether partial matching occurs, or what happens if no template is found. The return format is also not discussed.

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

Conciseness2/5

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

The description is a single sentence, which is concise but under-specified. It lacks structure and does not front-load essential information. As a result, it fails to earn its place.

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

Completeness2/5

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

Although an output schema exists, the description omits context for input parameters, lacks guidance for sibling differentiation, and does not clarify search semantics (e.g., case sensitivity, partial vs. exact match). It is incomplete for a tool with three parameters and multiple siblings.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the three parameters (profile_id, exact_match, template_name). It does not explain their roles, defaults, or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'find' and resource 'template by name,' which is clear but lacks differentiation from sibling tools like get_loop_template or list_loop_templates. It is not a tautology but could be more specific about the search behavior.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as dotloop_get_templates_by_type or dotloop_get_default_templates. The description does not mention any prerequisites or context for usage.

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

dotloop_get_accountB

Get the current Dotloop account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states the action, omitting authentication needs, read-only nature, or what the response contains (though output schema exists). This is insufficient for an agent to understand side effects or constraints.

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

Conciseness5/5

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

The description is a single clear sentence with no extraneous words. It is perfectly concise and front-loaded.

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

Completeness3/5

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

Given zero parameters and an existing output schema, the description is minimal but still lacks context about what 'current account' means, especially relative to similar tools like dotloop_get_profile. It meets minimum viability but leaves gaps.

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

Parameters4/5

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

There are zero parameters and schema coverage is 100%. The description adds no parameter information, which is acceptable since none exist. Baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get the current Dotloop account', which clearly identifies the action and resource. However, it does not distinguish from the sibling tool dotloop_get_profile, which might cause confusion since 'account' and 'profile' could overlap in meaning.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not indicate when to use this tool over alternatives like dotloop_get_profile or other get_* tools, nor does it mention 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.

dotloop_get_activity_by_typeD

Get Dotloop loop activity filtered by type.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
batch_sizeNo
profile_idYes
activity_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.8/5.0
Behavior1/5

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

With zero annotations, the description carries full burden but only mentions filtering by type, omitting whether it is read-only, pagination behavior, rate limits, 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.

Conciseness2/5

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

Only one short sentence, but it is vague and does not convey necessary information; conciseness here sacrifices clarity.

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

Completeness1/5

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

Despite having an output schema, the description lacks behavioral context and parameter details, making it insufficient for an agent to correctly invoke the tool.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any parameter meaning beyond the bare schema names (e.g., what constitutes an activity type).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it gets loop activity filtered by type, but doesn't specify what 'activity_type' means or differentiate from siblings like dotloop_get_activity_by_user or dotloop_list_loop_activity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no prerequisites or exclusion criteria provided.

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

dotloop_get_activity_by_userC

Get Dotloop loop activity filtered by user.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
user_nameYes
batch_sizeNo
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It fails to disclose behavioral traits such as pagination, rate limits, or what happens if the user has no activity. The description is too brief to inform the agent about side effects or safety.

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

Conciseness3/5

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

The description is a single, concise sentence. However, it could be restructured to include more detail without becoming overly long. It is adequate but not exemplary.

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

Completeness1/5

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

Given the complexity (4 parameters, 3 required, no schema descriptions) and the large set of sibling tools, the description is wholly inadequate. It provides no context for how to use the parameters or when to invoke this tool.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any parameter. The agent is left to infer the meaning of 'user_name', 'batch_size', etc., without any assistance. This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'Dotloop loop activity', and the filter 'by user'. It effectively distinguishes from sibling tools like dotloop_get_activity_by_type and dotloop_get_activity_summary.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as dotloop_list_loop_activity or dotloop_get_activity_by_type. The description does not mention any prerequisites or constraints for using this tool.

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

dotloop_get_activity_summaryC

Get Dotloop activity summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose whether the tool is read-only, requires permissions, or has any side effects. The agent cannot infer behavioral traits.

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

Conciseness3/5

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

The single-sentence description is concise but lacks necessary context; it is not verbose but is under-specified.

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

Completeness2/5

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

Given the existence of an output schema and multiple sibling tools, the description fails to explain what the activity summary contains or how it differs from other activity endpoints, leaving significant gaps.

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

Parameters1/5

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

The input schema has 0% description coverage, and the tool description adds no extra meaning to the two parameters (loop_id, profile_id). The agent must rely solely on parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'Get' and resource 'Dotloop activity summary', but provides no distinction from sibling tools like dotloop_get_recent_activity, dotloop_list_loop_activity, or dotloop_get_activity_by_type, leaving ambiguity about what 'summary' specifically means.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool over alternatives such as dotloop_get_activity_by_user or dotloop_get_activity_by_type. The agent must guess the appropriate context.

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

dotloop_get_all_tasks_in_loopC

Get all tasks in a Dotloop loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'Get all tasks', implying read-only but provides no details on idempotency, safety, or side effects. No mention of pagination or result structure.

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

Conciseness4/5

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

The description is a single concise sentence. It could be slightly more structured but is appropriately short for a simple query tool.

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

Completeness2/5

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

Despite having an output schema, the description lacks context about required parameters and does not clarify how this tool relates to other task-list tools. Incomplete for effective agent usage.

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

Parameters2/5

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

Schema description coverage is 0%, and the tool description adds no meaning to the parameters loop_id and profile_id. An agent cannot infer what these identifiers mean or where to find them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get all tasks in a Dotloop loop' clearly states the verb and resource. However, it does not differentiate from sibling tools like dotloop_get_task, dotloop_list_tasks, or dotloop_get_completed_tasks, which also deal with tasks.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No mention of prerequisites or context for using dotloop_get_all_tasks_in_loop among many task-related siblings.

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

dotloop_get_completed_tasksC

Get completed tasks in a Dotloop loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states 'Get completed tasks.' It does not disclose whether the operation is read-only, the side effects, or behavior when no tasks exist. The read-only nature is implied 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.

Conciseness2/5

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

The description is extremely terse—one sentence—but under-specifies the tool. While there is no wasted text, the lack of necessary detail makes it inadequate, not concisely effective.

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

Completeness1/5

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

Despite having an output schema, the description omits any detail about the return format, prerequisites (e.g., valid profile/loop IDs), error handling, or what constitutes a 'completed task.' This is insufficient for a tool with zero schema description coverage and no annotations.

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

Parameters1/5

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

The parameter schema has 0% description coverage, and the tool description does not explain the purpose of 'profile_id' or 'loop_id.' The agent receives no additional meaning beyond parameter names and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'completed tasks', and the scope 'in a Dotloop loop.' This distinguishes it from sibling tools like dotloop_get_all_tasks_in_loop and dotloop_get_pending_tasks.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as dotloop_get_all_tasks_in_loop or dotloop_list_tasks. The description does not mention context or exclusion criteria.

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

dotloop_get_custom_templatesC

Get custom Dotloop templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states 'get', implying read-only, but does not disclose what the call returns (e.g., list of templates) or any prerequisites like permissions. The description is too brief to be informative.

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

Conciseness3/5

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

The description is a single sentence, which is concise but overly minimal. While it avoids verbosity, it sacrifices clarity and completeness. A balance of brevity and informativeness is needed.

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

Completeness2/5

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

Given the tool has one parameter with no description in the schema, and there are many sibling tools with overlapping functionality, the description should provide more context about what 'custom templates' means and how this tool differs from others like dotloop_get_default_templates. The presence of an output schema is noted but not leveraged.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the profile_id parameter. There is no explanation of what profile_id is or how to obtain it, leaving the agent without necessary context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get custom Dotloop templates' clearly states the verb (get) and resource (custom templates). However, it does not differentiate from sibling tools like dotloop_get_default_templates or dotloop_get_templates_by_type, which also retrieve templates with specific scopes.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. For example, there is no mention that this tool retrieves only custom templates (not defaults) or what the profile_id parameter represents.

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

dotloop_get_default_templatesD

Get default Dotloop templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.9/5.0
Behavior1/5

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

No annotations are provided, and the description gives no behavioral details (e.g., read-only, authentication needs, rate limits). The agent cannot infer safety or side effects from 'Get default Dotloop templates'.

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

Conciseness2/5

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

While short, the description is under-specified rather than efficiently concise. One sentence lacks structure and fails to provide necessary context for a 1-param tool with many siblings.

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

Completeness2/5

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

Despite having an output schema, the description does not hint at return values. Given the complexity of sibling tools, the description is incomplete for confident selection and use.

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

Parameters1/5

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

The single parameter 'profile_id' has 0% schema description coverage, and the description adds no information about its meaning, source, or format. The agent must guess what to supply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get default Dotloop templates', which identifies the action and resource. However, it does not clarify what 'default' means or differentiate from sibling tools like dotloop_get_custom_templates or dotloop_get_templates_by_type, leaving ambiguity.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. With many template-related tools (e.g., find_template_by_name, get_custom_templates), the agent lacks criteria to select this one.

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

dotloop_get_documentC

Get Dotloop document metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
folder_idNo
profile_idYes
document_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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 simply states 'get metadata' implying a read operation, but provides no details on permissions, potential failures, or what constitutes metadata. The behavior is unclear.

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

Conciseness3/5

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

The description is concise at one sentence, but it is too minimal, offering no structure or front-loading of critical details. Conciseness alone does not compensate for lack of substance.

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

Completeness2/5

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

Given the complexity (4 parameters, no annotations, no schema descriptions) and the presence of an output schema, the description should provide more context about parameters and usage. It fails to do so, leaving the agent with insufficient information.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any parameters. The schema has four parameters (profile_id, loop_id, document_id required, folder_id optional) but their meaning is left entirely to the schema, which lacks descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get Dotloop document metadata.' clearly states the verb (get) and resource (document metadata), and distinguishes from siblings like dotloop_download_document and dotloop_list_documents. However, it could be more specific about what metadata is retrieved.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or context for selection among the many sibling tools.

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

dotloop_get_folderC

Get one Dotloop loop folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
folder_idYes
profile_idYes
include_archivedNo
include_documentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits such as whether the tool is read-only, what happens if the folder is not found, or if it requires specific permissions. The word 'Get' implies a read operation, but no additional context is given. With no annotations, the description carries the full burden and fails to provide sufficient 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.

Conciseness2/5

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

The description is extremely short (one sentence) but lacks substance. It is under-specified rather than concise; it does not earn its place as it fails to provide useful information. A concise description should be informative without verbosity, but this is too minimal.

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

Completeness2/5

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

Given the tool has 5 parameters (3 required), an output schema, and numerous siblings, the description is insufficient. It does not explain the input parameters, expected output (though output schema exists, it could still describe return value briefly), or how it differs from listing folders. The description misses critical context for effective use.

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

Parameters1/5

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

Schema description coverage is 0%, meaning no parameter descriptions exist in the schema. The description does not add any meaning to the parameters beyond their names and types. For example, it does not explain what profile_id, loop_id, folder_id refer to, or the purpose of include_archived and include_documents. The tool has 5 parameters, and the description adds no semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get one Dotloop loop folder,' which clearly indicates the verb and resource. However, it does not differentiate from sibling tools like dotloop_list_folders, which lists folders, or dotloop_get_loop, which gets a loop. The purpose is adequately clear but lacks specificity to distinguish it from alternatives.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool over siblings. For instance, there is no mention that this tool is for retrieving a single folder by ID, while list_folders is for obtaining a list. The description offers no context for usage decisions.

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

dotloop_get_loopC

Get one Dotloop loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description only says 'Get one Dotloop loop,' implying a read operation but offering no details on permissions, side effects, or return behavior beyond what the output schema may provide.

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

Conciseness3/5

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

The description is extremely concise at four words, which is efficient but lacks any structure or additional information that could aid the agent.

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

Completeness2/5

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

Given the absence of annotations and the existence of many sibling tools, the description is too minimal to provide complete context for correct tool selection and invocation.

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

Parameters1/5

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

The schema has 0% description coverage, and the description does not explain the meaning of 'loop_id' or 'profile_id', leaving the agent without semantic context for the required parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get one Dotloop loop' clearly specifies the verb 'Get' and the resource 'one Dotloop loop', distinguishing it from sibling tools that list or retrieve other entities.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like dotloop_list_loops or dotloop_get_loop_details, nor any conditions or exclusions.

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

dotloop_get_loop_detailsC

Get details for one Dotloop loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden but only says 'get details', which is already implied by the name. No behavioral traits like idempotency, auth requirements, or side effects are mentioned.

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

Conciseness3/5

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

The description is a single concise sentence, but it is too vague to be useful. It earns its place but lacks substance.

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

Completeness2/5

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

Given 0% parameter documentation and no annotations, the description fails to provide sufficient context for correct usage. The output schema exists but is not leveraged.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain what 'loop_id' or 'profile_id' represent. The agent gains no additional meaning beyond the parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'get details' and resource 'one Dotloop loop', but it does not differentiate from similar sibling tools like dotloop_get_loop, causing ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., dotloop_get_loop). The description lacks any when-to-use or when-not-to-use context.

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

dotloop_get_loop_templateC

Get one Dotloop loop template.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idYes
template_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

The description solely states the action with no behavioral details such as side effects, authentication needs, or rate limits. Given no annotations, the description should provide more context.

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

Conciseness3/5

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

The description is very concise at six words, but it sacrifices necessary detail. It is front-loaded but lacks completeness.

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

Completeness3/5

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

While the tool is simple with two integer parameters and an output schema exists, the description does not confirm it retrieves a template by ID. For completeness, it should specify that it gets a specific template using the provided identifiers.

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

Parameters1/5

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

With 0% schema description coverage, the description does not explain what 'profile_id' and 'template_id' represent or how they constrain the result. The tool name and description only refer to a generic template.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get one Dotloop loop template' clearly states the action and object. However, it does not differentiate from sibling tools like 'dotloop_list_loop_templates' or 'dotloop_get_loop_details', which could cause confusion.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, filters, or use cases.

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

dotloop_get_participantC

Get one Dotloop loop participant.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes
participant_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden. It merely states 'Get' without mentioning return format, side effects, or permissions. The lack of detail on behavior leaves agents uninformed.

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

Conciseness2/5

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

The description is a 4-word sentence, which is overly terse. While it is structurally concise, it sacrifices necessary information. A useful description should include more context without being verbose.

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

Completeness1/5

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

Despite having an output schema, the description omits any context about the participant, such as what fields are returned or typical usage. With 3 required parameters and no behavioral hints, the description is vastly incomplete for an agent to use effectively.

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

Parameters1/5

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

The input schema has no descriptions (0% coverage), and the description adds no explanation of the parameters (profile_id, loop_id, participant_id). It fails to clarify how these IDs relate or how to obtain them, providing no semantic value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get one Dotloop loop participant,' specifying the action and resource. It implicitly distinguishes from the sibling 'dotloop_list_participants' by including 'one' for a single participant, but does not explicitly differentiate among other get tools.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided. The description implies this tool is for fetching a single participant by ID, but does not discuss alternatives or prerequisites.

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

dotloop_get_pending_tasksC

Get pending tasks in a Dotloop loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only states the action without clarifying whether the operation is read-only, what the return format includes (beyond the output schema), or any side effects. Minimal disclosure for a read operation, but insufficient detail for an agent to understand constraints like pagination or filtering.

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

Conciseness3/5

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

The description is a single sentence, which is concise but lacks structure. It conveys the core purpose without waste, but could benefit from additional detail (e.g., parameter hints) without becoming overly long. It is functional but minimal.

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

Completeness2/5

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

Given the presence of multiple sibling tools for tasks (all, completed, pending) and an output schema, the description is insufficient. It does not differentiate usage scenarios, explain what constitutes a 'pending' task, or provide any additional context to help the agent decide when to use this tool versus alternatives.

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

Parameters1/5

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

The input schema has 0% documentation coverage and the description does not explain the purpose or usage of 'loop_id' or 'profile_id'. An agent must infer their meaning from context, increasing the risk of incorrect invocation. The description adds no value beyond the schema's raw type and requirement status.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get'), the resource ('pending tasks'), and the scope ('in a Dotloop loop'). It distinguishes itself from sibling tools like dotloop_get_all_tasks_in_loop and dotloop_get_completed_tasks by specifying 'pending', making the purpose unambiguous.

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

Usage Guidelines2/5

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 over alternatives such as dotloop_get_all_tasks_in_loop or dotloop_list_tasks. It does not explain the context of 'pending' or suggest any exclusion criteria, leaving the AI agent to infer usage without support.

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

dotloop_get_profileC

Get one Dotloop profile by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description does not disclose behavioral traits such as permissions, rate limits, or data freshness. It only states the basic operation, failing to add value beyond the action itself.

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

Conciseness3/5

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

The description is extremely concise (one sentence), which is positive, but it omits critical details, making it insufficiently informative. It is front-loaded but under-specified.

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

Completeness2/5

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

Despite having an output schema and a single parameter, the description fails to provide context about what a profile is, what data is returned, or any prerequisites. For a simple get tool, it is still incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain the parameter 'profile_id' (e.g., format, source, or meaning). The agent receives no additional context beyond the schema's minimal 'Profile Id' label.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'one Dotloop profile by ID', making the action unambiguous and distinguishing it from sibling tools like dotloop_list_profiles.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., dotloop_list_profiles) or any prerequisites. The description lacks context for proper selection.

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

dotloop_get_recent_activityC

Get recent Dotloop loop activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
loop_idYes
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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

No annotations provided, so the description must fully convey behavioral traits. It claims to get 'recent' activity but does not define recency (e.g., time window, ordering), disclose whether it is read-only, or mention any side effects, rate limits, or authorization requirements.

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

Conciseness3/5

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

The description is a single sentence, making it concise, but it sacrifices necessary detail. It is front-loaded but does not add enough value to compensate for missing information.

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

Completeness2/5

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

Given 3 parameters, no schema descriptions, no annotations, and 24 sibling tools, the description is too vague to uniquely identify the tool's purpose and usage. It fails to cover what the output schema returns or how parameters affect results.

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

Parameters1/5

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

Schema description coverage is 0% with 3 parameters (limit, loop_id, profile_id). The description does not explain any parameter, leaving the agent to infer meanings from names alone, which is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get recent Dotloop loop activity' which is a clear verb+resource combination, but it lacks specificity about what type of activity (e.g., tasks, document actions, status changes) and does not differentiate from siblings like dotloop_get_activity_by_type or dotloop_list_loop_activity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as dotloop_get_activity_by_type or dotloop_list_loop_activity. There is no mention of prerequisites, limitations, or scenarios where this tool is preferred.

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

dotloop_get_taskC

Get one Dotloop task.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
task_idYes
profile_idYes
tasklist_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'Get one Dotloop task' without mentioning read-only behavior, expected input validity, error handling, 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.

Conciseness4/5

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

The description is extremely concise with a single sentence. While it wastes no words, it lacks necessary detail for a tool with multiple required parameters.

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

Completeness2/5

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

Given four required parameters and no output schema details (though present), the description fails to explain how the parameters relate or what the tool returns. It is insufficient for correct invocation without external knowledge.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the four required integer parameters (profile_id, loop_id, tasklist_id, task_id). It does not explain their roles or relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get one Dotloop task.' clearly indicates the verb and resource, but it does not differentiate from sibling tools like dotloop_get_all_tasks_in_loop or dotloop_get_task_list. The purpose is understandable but lacks specificity about scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusion criteria.

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

dotloop_get_task_listC

Get one Dotloop task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes
tasklist_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits (e.g., read-only, return format). It only states the action without mentioning what the response contains or any side effects, 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.

Conciseness3/5

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

The description is very short and to the point, but it lacks any structure beyond a single sentence. While concise, it does not provide enough substance to be considered highly effective.

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

Completeness2/5

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

Given the presence of an output schema, the description is partially adequate, but it omits any mention of the output or contextual details about when to use this tool. It feels insufficient for a complete understanding.

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

Parameters1/5

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

The input schema has 0% description coverage, and the description adds no information about parameter semantics. Parameter names like 'profile_id', 'loop_id', and 'tasklist_id' are somewhat self-explanatory, but the tool description provides no additional context or usage hints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a single task list. It uses a specific verb ('Get') and resource ('task list'), distinguishing it from sibling tools like 'dotloop_list_task_lists' which retrieves multiple lists.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'dotloop_list_task_lists' or 'dotloop_get_task'. The description lacks context for decision-making.

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

dotloop_get_task_summaryC

Get task summary for a Dotloop loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It merely states the operation without mentioning read-only status, side effects, permissions, or any constraints. The agent cannot infer safety or prerequisites from this description alone.

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

Conciseness3/5

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

The description is extremely concise at one sentence, but it lacks structure and front-loads no critical details. While it avoids verbosity, it sacrifices informative content to the point of being minimally useful.

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

Completeness2/5

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

Given the simple parameter set (2 required integers) and existence of an output schema, the description still fails to contextualize what 'task summary' encompasses or how the returned data relates to other tools. An agent would need to infer or test to understand the tool's full purpose.

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

Parameters1/5

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

Schema description coverage is 0%, and the tool description adds no explanation for the required parameters 'profile_id' and 'loop_id'. An agent must rely solely on parameter names, which are ambiguous without context (e.g., 'profile_id' could refer to different entities).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get task summary for a Dotloop loop' clearly states the verb ('Get') and resource ('task summary for a Dotloop loop'), making the primary purpose understandable. However, it does not differentiate this tool from numerous sibling tools like 'get_task', 'get_task_list', or 'get_all_tasks_in_loop', which could cause confusion.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not explain what constitutes a 'task summary' or how it differs from related tools, leaving an agent without contextual decision-making support.

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

dotloop_get_templates_by_typeC

Get Dotloop templates by type.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idYes
template_typeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states the basic action, omitting side effects, permissions, error conditions, or what happens when no templates match. Minimal disclosure.

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

Conciseness3/5

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

The description is a single sentence, making it concise, but it is overly brief and lacks structure. It sacrifices completeness for brevity, with no breakdown of key details.

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

Completeness2/5

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

Given the tool's moderate complexity (2 required params) and the existence of an output schema, the description fails to provide enough context for correct invocation. Missing parameter semantics and usage guidance make it incomplete.

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

Parameters1/5

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

Schema coverage is 0%, meaning the description adds no meaning to the two required parameters (`profile_id` and `template_type`). The description does not mention them or explain their role, leaving the agent with no additional context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Get) and resource (Dotloop templates by type), making the purpose obvious. However, it does not differentiate from similar sibling tools like `dotloop_get_default_templates` or `dotloop_get_custom_templates`.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description lacks context on prerequisites, typical use cases, or exclusions.

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

dotloop_get_template_summaryC

Get Dotloop template summary for a profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Get', implying a read operation, but provides no details about what the summary includes, any side effects, or limitations.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but lacks sufficient information. It does not waste words, but it is too minimal to be fully useful.

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

Completeness2/5

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

Given the tool has one required parameter and an output schema, the description should explain what a 'template summary' is and what it returns. The current description is too vague for an agent to understand the tool's purpose fully.

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

Parameters1/5

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

The description does not mention the parameter 'profile_id' or its meaning. With 0% schema description coverage, the agent gets no help understanding what value to provide for this required parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'Dotloop template summary for a profile'. However, it does not differentiate from similar sibling tools like dotloop_get_loop_template or dotloop_get_templates_by_type, which reduces clarity for an agent choosing among them.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives, nor any mention of when not to use it. The description lacks contextual information to help an agent decide.

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

dotloop_list_documentsC

List Dotloop loop documents.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
folder_idNo
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are present, so the description must disclose behavior. It only states the action but does not mention if it is read-only, whether it requires authentication, pagination, 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.

Conciseness3/5

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

The description is a single sentence with no extraneous text, but it is too brief to be informative. It lacks structure and fails to convey necessary details.

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

Completeness2/5

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

Given the tool has three parameters, no schema descriptions, no annotations, and many sibling tools, the description is entirely inadequate. It does not explain parameter usage, filter capabilities, or distinguish from similar list tools.

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

Parameters1/5

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

The input schema has 0% description coverage, and the description adds no meaning to the parameters. It does not explain what profile_id, loop_id, or folder_id represent or how they are used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List Dotloop loop documents' uses a specific verb 'list' and resource 'documents', but it is essentially a tautology of the tool name. It does not clarify whether it lists all documents in a loop or filtered, nor does it differentiate from other list tools like dotloop_list_folders.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like dotloop_get_document for a single document. No context 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.

dotloop_list_foldersC

List folders for a Dotloop loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes
include_archivedNo
include_documentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

Without annotations, the description must disclose behavior. It only states 'List folders' with no information about side effects, read-only nature, pagination, or result structure.

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

Conciseness2/5

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

The description is extremely short but lacks essential details, making it under-specified rather than concise.

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

Completeness2/5

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

Given 4 parameters, no parameter descriptions, and a large sibling list, the description is inadequate. An output schema exists but doesn't compensate for missing behavioral and param context.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameters. It provides no details on what profile_id and loop_id represent or how include_archived and include_documents affect results.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description includes a specific verb ('List') and resource ('folders') but does not differentiate from sibling tools like 'dotloop_get_folder' or 'dotloop_list_documents'. It also omits the required identifiers (profile_id, loop_id) in the description.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., dotloop_get_folder for a single folder). No prerequisites 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.

dotloop_list_loop_activityC

List Dotloop loop activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
batch_sizeNo
profile_idYes
batch_numberNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits. It only says 'List', implying a read operation, but does not disclose pagination (via batch parameters), required inputs, or what the activity list contains. Minimal transparency.

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

Conciseness3/5

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

The description is extremely concise at four words, which is efficient but sacrifices necessary detail. It is front-loaded but lacks substance.

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

Completeness2/5

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

Despite having an output schema, the description does not explain return values or the nature of 'activity'. With four parameters and many siblings, the description is too sparse to guide correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds zero meaning to parameters like loop_id, profile_id, batch_size, and batch_number. No parameter explanations are provided, forcing the agent to guess their roles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List Dotloop loop activity' restates the tool name without adding specificity. It does not clarify what kind of activity (e.g., audit log, recent changes) is listed, nor does it distinguish from sibling tools like dotloop_get_recent_activity or dotloop_get_activity_by_type.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as dotloop_get_activity_by_user or dotloop_get_activity_by_type. The description lacks any when-to-use or when-not-to-use context.

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

dotloop_list_loopsC

List loops for a Dotloop profile.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
batch_sizeNo
profile_idYes
batch_numberNo
include_detailsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations provided. The description does not disclose behavioral traits such as read-only status, pagination behavior, or required permissions. The agent must infer from parameter names only.

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

Conciseness3/5

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

The description is a single sentence, making it concise and front-loaded. However, it is too brief and sacrifices essential information for brevity.

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

Completeness2/5

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

Given 5 parameters, no annotations, and many siblings, the description is insufficient. It omits details on pagination, sorting, and the output format, leaving the agent with incomplete context.

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

Parameters2/5

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

Schema description coverage is 0% and the description provides no parameter details. Properties like 'batch_size' and 'include_details' are left unexplained, forcing the agent to guess their meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists loops for a profile, using a specific verb and resource. However, it does not distinguish from sibling tools like dotloop_get_loop or dotloop_list_loop_activity, which could be ambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. With 30+ sibling tools, the agent receives no context for appropriate usage.

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

dotloop_list_loop_templatesC

List Dotloop loop templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are available, so the description must fully convey behavior. It fails to mention pagination, sorting, filtering, or whether all templates are listed. The output schema exists but the description adds no behavioral context.

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

Conciseness2/5

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

While the single sentence is concise, it is under-specified to the point of being unhelpful. The tool requires at least explanation of the required parameter and return structure.

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

Completeness2/5

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

Given the presence of an output schema and a single parameter, the description should cover scope and expected results. It lacks sufficient detail for reliable agent selection, making it incomplete.

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

Parameters1/5

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

Schema description coverage is 0%—the input schema lacks descriptions. The tool description does not explain the 'profile_id' parameter's meaning or format, leaving the agent with no guidance beyond the name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('Dotloop loop templates'). However, it does not differentiate from sibling tools like 'dotloop_get_loop_template' or 'dotloop_find_template_by_name' that may perform similar listing functions.

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

Usage Guidelines2/5

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

No usage context is provided. The description does not specify when to use this tool versus alternatives, nor does it mention prerequisites or typical scenarios.

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

dotloop_list_participantsC

List Dotloop loop participants.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose behavioral traits such as whether listing is paginated, requires permissions, or includes any filters. For an unannotated 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.

Conciseness2/5

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

The description is extremely short (4 words), but this conciseness comes at the cost of substance. It does not provide enough information to be considered effectively concise.

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

Completeness2/5

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

Despite having an output schema, the description lacks context for inputs and overall purpose. With no annotations and poor parameter semantics, the description is incomplete for an agent to use correctly.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds no explanation beyond the parameter names 'profile_id' and 'loop_id'. It does not clarify how to obtain these IDs or their meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and resource 'Dotloop loop participants', indicating it returns multiple participants. While the name and verb distinguish it from the singular 'dotloop_get_participant', the description does not explicitly differentiate from siblings.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'dotloop_get_participant' or other list tools. No prerequisites or context are given.

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

dotloop_list_profilesC

List Dotloop profiles.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to specify whether the list includes all profiles, requires authentication, or exhibits any pagination or ordering. The single sentence offers no behavioral context.

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

Conciseness3/5

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

The description is very concise (one sentence) and front-loaded. However, it lacks structure and additional helpful context that would warrant a higher score. While not verbose, it may be too sparse for an agent to fully understand the tool's scope.

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

Completeness2/5

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

Given the lack of annotations and the presence of an output schema, the description does not explain what the output contains (e.g., list of profile IDs or full objects). It also does not cover any scope or limitations, making it incomplete for a tool in a large set of siblings.

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

Parameters4/5

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

The tool has zero parameters, and the schema coverage is trivially 100%. Although the description adds no parameter-specific meaning, the baseline for zero parameters is 4, and the description does not provide misleading information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'List Dotloop profiles' clearly identifies the verb 'list' and the resource 'profiles', making the basic purpose understandable. However, it does not differentiate from the sibling tool 'dotloop_get_profile' which retrieves a single profile, so it lacks explicit sibling distinction.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'dotloop_get_profile' or other listing tools. There is no mention of context, prerequisites, or situations where this tool is appropriate.

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

dotloop_list_task_listsC

List task lists for a Dotloop loop.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should carry behavioral details. It omits whether the operation is read-only, any authentication requirements, pagination behavior, or response format. The output schema exists but is not referenced.

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

Conciseness4/5

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

The description is extremely concise at one sentence. While it is efficient, it sacrifices necessary detail for brevity.

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

Completeness2/5

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

Given the tool's complexity and the presence of 2 required parameters and an output schema, the description is too sparse. It fails to explain what task lists are, how they relate to loops, or any usage nuances.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should clarify parameter meaning. It only implies that loop_id identifies a loop, but profile_id is left unexplained. No additional context is added beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb+resource pattern: 'List task lists for a Dotloop loop.' It effectively distinguishes from sibling tools like dotloop_get_task_list and dotloop_list_tasks, which operate on individual task lists or tasks respectively.

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

Usage Guidelines2/5

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

No guidance provided on when to use this tool versus alternatives, nor on prerequisites or limitations. The description lacks context about when it's appropriate to invoke this function.

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

dotloop_list_tasksC

List Dotloop tasks in a task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
loop_idYes
profile_idYes
tasklist_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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

No annotations; description only states 'list', implying a read operation but does not disclose pagination, ordering, or empty result behavior. Minimal behavioral disclosure.

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

Conciseness3/5

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

The description is extremely concise (one sentence), but it lacks necessary context. It is not front-loaded with useful information beyond the action.

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

Completeness2/5

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

With 3 required parameters, many siblings, and no output schema description, the tool description is incomplete. It does not explain what a task list is, how to use the IDs, or what the response contains.

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

Parameters1/5

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

Schema coverage is 0%; description adds no meaning to parameters (profile_id, loop_id, tasklist_id). Does not explain how to obtain these IDs or their role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it lists tasks in a task list, which is a clear verb+resource. However, it does not distinguish from siblings like dotloop_get_all_tasks_in_loop or dotloop_get_completed_tasks, making the purpose slightly ambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description lacks any context about prerequisites, filtering, or when not to use it.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 33 tool updatesv0.1.0
    • First observeddotloop_download_document
    • First observeddotloop_find_template_by_name
    • First observeddotloop_get_account
    • First observeddotloop_get_activity_by_type
    • First observeddotloop_get_activity_by_user
    • First observeddotloop_get_activity_summary
    • First observeddotloop_get_all_tasks_in_loop
    • First observeddotloop_get_completed_tasks
    • First observeddotloop_get_custom_templates
    • First observeddotloop_get_default_templates
    • First observeddotloop_get_document
    • First observeddotloop_get_folder
    • First observeddotloop_get_loop
    • First observeddotloop_get_loop_details
    • First observeddotloop_get_loop_template
    • First observeddotloop_get_participant
    • First observeddotloop_get_pending_tasks
    • First observeddotloop_get_profile
    • First observeddotloop_get_recent_activity
    • First observeddotloop_get_task
    • First observeddotloop_get_task_list
    • First observeddotloop_get_task_summary
    • First observeddotloop_get_template_summary
    • First observeddotloop_get_templates_by_type
    • First observeddotloop_list_documents
    • First observeddotloop_list_folders
    • First observeddotloop_list_loop_activity
    • First observeddotloop_list_loop_templates
    • First observeddotloop_list_loops
    • First observeddotloop_list_participants
    • First observeddotloop_list_profiles
    • First observeddotloop_list_task_lists
    • First observeddotloop_list_tasks

TDQS

C2.6/5.0
Disambiguation4/5

Most tools have distinct purposes with clear verb_noun patterns, but pairs like get_loop and get_loop_details or multiple activity tools could confuse an agent without careful reading.

Naming Consistency5/5

All tools consistently follow the dotloop_verb_noun pattern in snake_case, with verbs like get, list, find, download; no mixing of conventions.

Tool Count3/5

With 33 tools, the set is slightly over-scoped for a single server, though many are read-only retrievals; borderline heavy but can be justified by the domain's complexity.

Completeness2/5

The tools are heavily focused on retrieval (get/list) with only a download and a find operation; missing essential write operations like create, update, or delete for loops, documents, and other resources, limiting agent capabilities.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/theperrygroup/Dotloop-MCP'

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