TaskLogger MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TaskLogger MCPList pending tasks assigned to me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TaskLogger MCP
A Model Context Protocol server that gives AI agents programmatic access to TaskLogger.io tasks — create, update, search, assign, and complete tasks directly from an agent's toolset, no browser automation.
The server talks to the TaskLogger REST API (https://api.tasklogger.io/api/v1) over stdio. Tasks are TaskLogger logs with logTypeId = 2.
Features
Full task lifecycle — create, update, delete, mark done
Rich filtering — by status, priority, assignee, creator, problem type, category, company, vendor, date ranges, free-text search, and pagination
Reference lookups — statuses, priorities, problem types, categories, sub-types, users, departments, companies
Secure auth — password is read only from a local env file, never passed as a tool parameter
Token persistence — access/refresh tokens cached to disk and auto-refreshed across restarts
Related MCP server: pith
Tools
Tool | Purpose |
| Authenticate with credentials from env vars |
| Clear saved tokens |
| Check the authenticated user |
| List/filter/search tasks |
| Get one task by ID |
| Create a task (defaults sub-type to Report Bug) |
| Update fields on a task |
| Shortcut → Completed + 100% |
| Delete a task |
| Look up valid IDs |
Tasks are identified by their numeric DB
idin tool calls. TaskLogger also exposes a human-friendly transaction number (TN /trans_num) in responses, which is what humans usually quote — report TN to the user, pass the numericidto the tools.
Requirements
Node.js 18+ (uses global
fetch,FormData,crypto.randomUUID)An account on a TaskLogger.io branch
Setup
# 1. Clone and install
git clone https://github.com/khodorrrhajjj/TaskLogger-Mcp.git
cd TaskLogger-Mcp
npm install
# 2. Build
npm run build # outputs dist/index.js3. Credentials
Create a local credential file (the server reads it on startup). It is created in your home directory, deliberately outside the repo, so it is never committed.
Create ~/.tasklogger-mcp/env:
TASKLOGGER_EMAIL=you@example.com
TASKLOGGER_PASSWORD=yourpassword
TASKLOGGER_BRANCH_ID=74TASKLOGGER_PASSWORDis required and never passed as a tool parameter.TASKLOGGER_BRANCH_IDselects the branch (only needed if you have multiple).
Alternatively, set the same keys as regular environment variables in your shell.
Connecting to an agent
OpenCode
Add to opencode.json (or your project/global config):
{
"mcp": {
"tasklogger": {
"type": "stdio",
"command": "node",
"args": ["C:/Users/<you>/projects/TaskLogger-Mcp/dist/index.js"],
"env": {}
}
}
}Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"tasklogger": {
"command": "node",
"args": ["C:/Users/<you>/projects/TaskLogger-Mcp/dist/index.js"]
}
}
}Any other MCP client
Point it at node /absolute/path/to/tasklogger-mcp/dist/index.js over the stdio transport.
Usage examples
# List tasks pending, created by users 214/215
list_tasks status_id="8" created_by="214,215"
# Search
list_tasks search="product setup"
# Create a Task Logger bug report
create_task problem_description="...bug..." problem_type_id="96" category_id="22" assigned_to_id="80"
# Update a task's status (TN 152 → Pending)
get_task id=24077 # ← confirm the numeric id
update_task id=24077 status_id="8"Common status IDs: Pending = 8, To be tested = 10, Completed = 1, On Hold = 16. Sub-type Report Bug = 27. Always get_statuses / get_users to confirm current IDs.
How login works
On startup the server reads
~/.tasklogger-mcp/envinto the process environment (existing env vars win).On the first authenticated call it POSTs to
/users/loginwith email, password,rememberMe: true, andbranchId. It holds the two HttpOnly cookies the API returns:accessToken— short-lived (~15 min) bearerrefreshToken— longer-lived (~7 days)
Tokens are persisted to
~/.tasklogger-mcp/auth.json(chmod0600) so a restart doesn't force a re-login.Before every request, if the
accessTokenis expired the server tries to refresh it (POST/users/refresh, fallbackGET /users/authenticate), then falls back to a fresh env-file login.The dedicated
logintool re-authenticates on demand;logoutclears tokens from disk.
The password itself never appears in any tool parameter, MCP log, or conversation — only inside env.
Available Tools
17 toolscreate_taskA
Create a new task. Only problem_description, problem_type_id, category_id, and assigned_to_id are required. sub_type_id defaults to 'Report Bug' (27). Any field not specified gets the TaskLogger default.
| Name | Required | Description | Default |
|---|---|---|---|
| hint | No | Hints text | |
| notes | No | Notes text | |
| branch_id | No | Branch ID (omit for default) | |
| status_id | No | Status ID (omit for default) | |
| is_private | No | Private mode | |
| percentage | No | Progress 0-100 (omit for 0) | |
| category_id | Yes | Task category ID — REQUIRED | |
| keep_unread | No | Keep unread | |
| priority_id | No | Priority ID (omit for default) | |
| sub_type_id | No | Sub-type ID (defaults to '27' — Report Bug) | |
| due_datetime | No | Due date ISO string (omit for default) | |
| is_monitored | No | Monitor this task | |
| assigned_to_id | Yes | Assignee user ID — REQUIRED | |
| problem_type_id | Yes | Problem type ID — REQUIRED | |
| problem_description | Yes | Task description (plain text) — REQUIRED |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral transparency burden. It discloses that sub_type_id defaults to 'Report Bug' (27) and that any unspecified field gets the TaskLogger default. This goes beyond the obvious 'create' action and gives agents needed insight into default behavior. It doesn't mention authentication or return value, but for a create operation, the safety profile is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the main action, and contains no fluff. Every sentence adds value: the first states the purpose, the second explains required fields and default behavior. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 15 parameters, no output schema, and no annotations, the description is reasonably complete. It covers the essential invocation requirements (required fields, defaults) but doesn't describe the return value or any prerequisite like authentication. However, these may be inferred from the action type. Overall, the description is sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, giving baseline of 3. The description adds meaningful value by explicitly listing the four required fields and explaining the semantic of omitted optional fields (they get defaults). It also clarifies the specific default for sub_type_id. This enhances understanding beyond the schema's per-field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly and specifically states the tool's purpose: 'Create a new task.' It distinguishes this tool from siblings like update_task and delete_task by focusing on creation. It also adds specific details about required fields and the default sub_type_id, which makes the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by indicating which fields are required and which can be omitted to use defaults. It doesn't explicitly state when to use this versus alternatives, but the tool name and description make it obvious this is the creation tool. The guidance about defaults provides useful context for when to omit optional parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskB
Delete a task by its numeric ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Task numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It only states the action without explaining side effects (e.g., permanence, cascading, permissions, idempotency). The word 'delete' implies destruction, but the description adds no useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's purpose without unnecessary words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter and no output schema. The description is minimally sufficient for a delete action, but it fails to disclose behavioral outcomes (e.g., success/failure indication, irreversibility). Given the absence of annotations, a bit more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 'id' parameter. The description's phrase 'by its numeric ID' reinforces the schema but adds no new semantic details (e.g., error handling, ID ranges). Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and the resource ('a task'), with the specific parameter ('numeric ID'). It unambiguously distinguishes this from sibling tools like create_task, update_task, and get_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as mark_task_done or update_task. There is also no mention of prerequisites, consequences, or scenarios where deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_companiesA
Get available companies (for linking to tasks).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations provided, and the description doesn't disclose behavioral details such as return format, required authentication, or side effects. Beyond stating that it retrieves available companies, it offers no additional transparency, making it insufficient for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single, front-loaded sentence with no filler words. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description is reasonably complete: it states what is retrieved and why. It could specify that it returns a list, but that's implied by 'companies' and the nature of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema coverage, so the description doesn't need to explain parameters. The baseline of 4 applies, and the description doesn't add or require parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' with the resource 'companies', clearly distinguishing it from sibling tools that retrieve other entities (users, departments, statuses). It also provides context ('for linking to tasks'), clarifying its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It indicates the tool is used when linking tasks to companies, giving a clear use case. However, it doesn't explicitly name alternatives or state when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_departmentsA
Get available departments.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits, but it only says 'Get available departments.' It doesn't specify return format, whether authentication is required, or any limitations, offering minimal transparency beyond the resource name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It front-loads the key action and resource, achieving maximum efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, simple list tool, 'Get available departments' conveys the essential purpose. However, without an output schema or details on return structure, it's slightly incomplete, but likely sufficient given the straightforward nature of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema fully covers semantics. The baseline for 0 params is 4, and no further description is needed since there is nothing to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get available departments' uses a clear verb and resource, distinguishing it from sibling tools like get_users and get_companies. It unambiguously indicates a read operation for department data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., login) or typical use cases like populating a dropdown, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_prioritiesA
Get available priority levels.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavior. It only says 'Get available priority levels' and does not describe return format, ordering, pagination, or any side effects. This is minimal and lacks useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise and immediately communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with no parameters, the description is minimally sufficient. However, without an output schema, it does not specify the return structure (e.g., array of strings, objects), and no annotations provide additional context, leaving some gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the baseline score of 4 applies. The description adds no parameter semantics because none exist; the schema is empty and fully covers the invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves available priority levels, using a specific resource ('priority levels') that distinguishes it from sibling lookup tools like get_statuses. It is succinct and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_statuses or get_problem_types. The description only states the function without context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_problem_typesB
Get available problem types.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It only states 'Get available problem types' and offers no information about whether authentication is required, if the operation is read-only, whether the list could be empty, or any side effects. This is insufficient for a tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words, earning high marks for brevity. However, it is slightly under-specified—'available problem types' could be interpreted ambiguously—so it falls short of a perfect 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, no-parameter, no-output-schema tool, the description is minimally adequate: it names the resource and the action. Still, it omits any context about output format, optional filters, or relationship to the broader task domain, leaving the agent to infer too much.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so the baseline is 4. The description does not need to explain parameters, and the schema coverage is 100% (trivially). No additional parameter semantics are necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get available problem types' clearly states the verb (Get) and resource (problem types), making the tool's purpose unambiguous. However, it does not explicitly distinguish itself from sibling tools like get_statuses or get_sub_types beyond the resource name, so it lacks the explicit differentiation that would warrant a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites (e.g., authentication via login), and no exclusions. Given the many sibling get-* tools, this lack of usage direction is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statusesB
Get available task statuses.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get available task statuses,' implying a read operation, but doesn't mention authentication requirements, response format, or whether it returns all statuses or just a subset. That lack of detail is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler words. It is appropriately sized for the tool's simplicity, conveying the essential purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no params or output schema, and the description is minimal. It adequately conveys the core action but omits context like authentication needs or the nature of the returned data. For a simple zero-param getter, this is a minimum viable description but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is inherently complete. The description adds no parameter details (as none exist), but the baseline for 0 parameters is 4, indicating there's no missing parameter information to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'available task statuses,' with a specific verb ('Get') and resource. However, it doesn't explicitly distinguish this from sibling tools like get_priorities or status, so it falls short of marking it unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'status' or 'get_priorities.' It gives no context about prerequisites (e.g., login) 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.
get_sub_typesB
Get available sub-types.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Get available sub-types' and does not disclose return format, authentication requirements, or any potential side effects, leaving the agent with incomplete behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no filler words, making it easy to parse and remember. It is appropriately sized for a simple getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a simple getter with no output schema, the description minimally indicates the action but does not clarify what a 'sub-type' is or what the response contains. It is adequate but leaves some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema already covers everything. The description adds no parameter information, but none is needed; the baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Get' as a specific verb and 'available sub-types' as the resource, but it does not distinguish this from sibling getter tools like get_statuses or get_priorities, and 'sub-types' is ambiguous without additional context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives, no exclusions, and no mention of related tools. The description simply states the action without any context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskB
Get a single task by its numeric ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Task numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations or output schema, the description carries full burden for behavioral disclosure. It does not mention whether this is a read-only operation, what fields are returned, or behavior for non-existent IDs. The word 'get' implies safe read, but lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that is entirely on-topic with no filler. Every word contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (1 parameter, no output schema), but without annotations, the description should compensate by explaining the response shape or error scenarios. It does neither, leaving the agent uncertain about what to expect after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% since 'id' is described as 'Task numeric ID'. The description repeats 'numeric ID' but adds no additional semantics beyond the schema. Baseline of 3 applies when schema fully documents parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get a single task by its numeric ID' uses a specific verb (get) and resource (task), and clearly distinguishes from siblings like list_tasks. It precisely identifies the scope (single task) and the key (numeric ID).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a specific task ID is known, but it does not explicitly contrast with list_tasks or other sibling tools. No 'when not to use' guidance is provided, though the purpose is self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_categoriesA
Get available task categories.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, and the description does not disclose any behavioral traits beyond the basic action. It does not state that the operation is read-only, the response format, or any potential side effects. For a simple lookup tool, this is a gap, though the simplicity reduces the risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It directly states the tool's purpose, which is appropriate for a parameterless lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description provides minimum viable information. However, it does not clarify what the returned categories look like or how they relate to other taxonomy endpoints, leaving some ambiguity for agents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to add parameter information because there are none to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('available task categories'), making the tool's purpose unambiguous. It also distinguishes itself from sibling lookup tools like get_statuses and get_priorities by naming 'task categories' specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While the purpose is clear, there is no mention of typical use cases (e.g., when creating or editing a task) or why one would choose this over get_statuses or get_priorities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usersA
Get available users (for assignment).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only states 'Get available users' but does not explain what 'available' means, whether the response includes all user fields, or any authentication or filtering behavior. This is a significant gap for a tool with no structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that leads with the verb 'Get' and immediately conveys the resource and purpose. Every word earns its place with no redundancy or extraneous detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description is the only source of context. It adequately conveys the tool's intent but fails to specify what information is returned (e.g., user IDs, names) or any response structure. This is a minimal but viable description for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the description carries no burden of parameter explanation. According to the rubric, a baseline of 4 is appropriate when there are no parameters. The description does not need to compensate for any schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get available users (for assignment)' clearly states the verb 'Get' and the specific resource 'users', with a parenthetical clarifying the intended use case. This distinguishes it from sibling tools that retrieve other resources like statuses or priorities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '(for assignment)' provides clear context that this tool is intended for retrieving users who can be assigned tasks, and there are no other user-listing siblings to differentiate. However, it does not explicitly state exclusions or alternative tools for other purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksB
List tasks with pagination, search, and filters. Use get_users/get_statuses/get_priorities/get_problem_types first to find IDs. To mark done: set status_id to the Completed status ID and percentage to 100.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (0-based) | |
| due_to | No | Filter by due date to (YYYY-MM-DD) | |
| search | No | Full-text search across all columns (description, notes, hints, etc.) | |
| sort_by | No | Sort field | creation_date |
| to_date | No | Filter by creation date to (YYYY-MM-DD) | |
| due_from | No | Filter by due date from (YYYY-MM-DD) | |
| sort_dir | No | Sort direction | desc |
| from_date | No | Filter by creation date from (YYYY-MM-DD) | |
| page_size | No | Items per page (max 100) | |
| status_id | No | Filter by status ID(s). Comma-separated for multiple (e.g. '8' or '8,14'). Use get_statuses to find IDs. | |
| vendor_id | No | Filter by vendor ID | |
| company_id | No | Filter by company ID | |
| created_by | No | Filter by creator user ID(s). Comma-separated for multiple (e.g. '214,215'). Use get_users to find IDs. | |
| category_id | No | Filter by task category ID | |
| priority_id | No | Filter by priority ID(s). Comma-separated for multiple. Use get_priorities to find IDs. | |
| completion_to | No | Max completion percentage (0-100) | |
| assigned_to_id | No | Filter by assignee user ID(s). Comma-separated for multiple. | |
| completion_from | No | Min completion percentage (0-100) | |
| problem_type_id | No | Filter by problem type ID | |
| show_unassigned | No | Include unassigned tasks (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states it lists tasks, with no mention of side effects, permissions, or return format. The 'To mark done' sentence even suggests a mutating behavior not actually present, adding confusion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, but the second sentence about marking done is off-topic and doesn't belong in a list tool's description. It would be more concise if limited to listing behavior and filtering guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 20 parameters and no output schema, yet the description doesn't explain the returned structure, default pagination behavior, or how filters combine. It also omits any mention of alternatives like get_task for single-task lookup, leaving the tool under-specified for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by telling the agent to resolve IDs via getter tools (e.g., 'Use get_users/get_statuses/get_priorities/get_problem_types first to find IDs'), which clarifies how to populate filter fields like status_id and priority_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List tasks with pagination, search, and filters.' This distinguishes it from sibling tools like get_task (single task) and create/update/delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises using get_users/get_statuses/get_priorities/get_problem_types first to find IDs, which is useful context for filtering. However, it includes an unrelated instruction about marking tasks done ('To mark done: set status_id to the Completed status ID and percentage to 100'), which belongs to update_task or mark_task_done and could mislead an agent into thinking list_tasks can modify tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loginA
Authenticate to TaskLogger using credentials from environment variables (TASKLOGGER_EMAIL, TASKLOGGER_PASSWORD). No password is ever passed as a parameter — it stays in env vars only. Call after setting env vars or when tokens expire.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Email address (optional — reads TASKLOGGER_EMAIL env var if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It discloses a key security behavior: password is never passed as a parameter and stays in env vars only. It also implies token-based session expiration. While it doesn't describe failure modes or session state details, this is adequate for a login tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise, front-loaded sentences with no redundancy. Each sentence serves a purpose: what it does, how it handles credentials, and when to call it. Excellent use of space for a distinct and simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple login tool with no output schema and one optional parameter, the description is complete. It explains the authentication method, environment variable dependency, and call timing. It adequately covers the tool's use within the broader task management context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the single parameter with 100% coverage, stating that email reads from env var if omitted. The description reinforces this and additionally clarifies that password is never a parameter, which is not present in the schema. This adds meaningful security context beyond the structured field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's core function with a specific verb ('Authenticate') and resource ('TaskLogger'). It clearly distinguishes this tool from task-related siblings by focusing on authentication and credential handling. The use of environment variables is explicit, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit timing guidance: call 'after setting env vars or when tokens expire.' This tells the agent when to use the tool, though it does not explicitly mention when not to use it or name alternative tools. The context is sufficiently clear for a login tool among task-operation siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logoutA
Clear saved auth tokens. Next call will require login.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states that it clears saved auth tokens and that subsequent calls will need login, which are the key behavioral effects. It does not elaborate on edge cases (e.g., calling while already logged out), but the core action is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences that front-load the primary action and its immediate consequence. Every word contributes to understanding, with no unnecessary detail or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, no parameters, and no output schema, the description fully covers what the agent needs to know: what the tool does and what to expect afterward. It is complete for the intended usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there are no parameter semantics to explain. Per calibration guidelines, a tool with 0 parameters receives a baseline score of 4, as the description need not elaborate on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Clear' and the resource 'saved auth tokens', making it obvious that this tool logs out the user by removing authentication. This distinguishes it from sibling tools like 'login' (which would set tokens) and other task-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when you want to end the authenticated session, and the consequence ('Next call will require login') clarifies its role as the counterpart to 'login'. However, it does not explicitly mention alternatives or when not to use it, though the context makes this reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_task_doneA
Shortcut: mark a task as completed (status=Completed) with 100% progress.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Task numeric ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly states the behavioral effect (status=Completed, progress=100%) but does not mention permissions, reversibility, or possible error conditions. The disclosed behavior is transparent enough for the tool's simple scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that directly conveys the tool's purpose and effect. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter shortcut with no output schema, the description sufficiently explains the outcome. It lacks discussion of return values or edge cases, but the low complexity makes the description adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides a full description for the id parameter (100% coverage). The description adds no extra parameter semantics, but the schema already fully documents the only parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action: marking a task as completed with 100% progress. It distinguishes itself from the generic update_task by labeling itself a 'Shortcut' and specifying the exact resulting status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a convenient alternative to update_task but does not explicitly state when to prefer it or mention exclusions. The context is somewhat clear but lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusA
Check if authenticated and which user is logged in.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It states the purpose but does not explicitly disclose side effects, return format, error behavior if unauthenticated, or whether it is a read-only operation. The verb 'Check' hints at safety but does not confirm it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the tool's purpose. There is no wasted text, and it is appropriately concise for a tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (zero parameters, no output schema), and the description covers the core function. However, it lacks details about the response structure (e.g., whether it returns a boolean or user object) and any edge-case behavior such as what happens when not authenticated. More explicit return information would make it more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema fully covers parameter semantics. The baseline for 0-param tools is 4, and the description does not need to explain anything further since there is nothing to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') and clearly identifies the resource (authentication status and current user). It distinguishes itself from sibling tools like login and logout by focusing on status inspection rather than auth changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: it is the tool to call when you need to know if the user is authenticated and who they are. However, it does not explicitly state when to use this versus alternatives, nor does it provide exclusions or mention that login/logout cover auth changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskA
Update an existing task. Only send fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Task numeric ID | |
| hint | No | ||
| notes | No | ||
| status_id | No | ||
| is_private | No | ||
| percentage | No | ||
| category_id | No | ||
| keep_unread | No | ||
| priority_id | No | ||
| sub_type_id | No | ||
| due_datetime | No | ||
| is_monitored | No | ||
| assigned_to_id | No | ||
| problem_type_id | No | ||
| problem_description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosure. It adds the meaningful behavioral trait of partial updates (PATCH-like semantics), which is beyond what 'update' alone conveys. However, it does not disclose return value, permission requirements, validation behavior, or side effects, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two short, purposeful clauses in a single sentence. Every word earns its place, with no redundant information or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 15 parameters, no output schema, and no annotations, yet the description is minimal. It omits information about the return value, error conditions, field semantics, and whether the update is idempotent, making it insufficient for such a parameter-rich tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 7% (only the 'id' field is documented). The description's 'Only send fields you want to change' provides a general rule for all 14 optional parameters but fails to explain the meaning of ambiguous fields such as 'hint', 'keep_unread', and 'sub_type_id'. This does not adequately compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Update' with the resource 'existing task', clearly distinguishing this from sibling tools like create_task and delete_task. The additional phrase 'Only send fields you want to change' clarifies the tool's partial-update scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage rule (send only changed fields) but does not explicitly state when to use this tool versus alternatives like mark_task_done or create_task. The usage context is implied by the name and description, but no exclusions or alternative tool references are provided.
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.
17 tool updates
v1.0.0- First observed
create_task - First observed
delete_task - First observed
get_companies - First observed
get_departments - First observed
get_priorities - First observed
get_problem_types - First observed
get_statuses - First observed
get_sub_types - First observed
get_task - First observed
get_task_categories - First observed
get_users - First observed
list_tasks - First observed
login - First observed
logout - First observed
mark_task_done - First observed
status - First observed
update_task
TDQS
Each tool targets a distinct resource/action. The mark_task_done shortcut is clearly a convenience wrapper for update_task, not a competing operation, and all reference data getters are uniquely named.
Most tools follow a consistent verb_noun pattern (create_task, update_task, delete_task, get_statuses). Minor deviations include list_tasks vs get_task and mark_task_done, but they remain intuitive.
At 17 tools, the set is slightly above the ideal range, but the combination of CRUD, reference data lookups, and auth tools is appropriate for a task management system and each tool serves a clear purpose.
CRUD operations are fully covered, along with pagination, search, filtering, and necessary reference data for valid IDs. Auth lifecycle is complete with login/logout/status. No obvious gaps exist for task management workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP Server for an Agent Task Marketplace
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server that connects to a Laravel Tasks API, enabling AI assistants to perform CRUD operations on tasks.-
- AlicenseNot gradedqualityDmaintenanceMCP server for task management that enables AI agents to read, create, update tasks, and track work sessions, allowing agents and humans to collaborate on the same task board.38MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that wraps the Taskwarrior CLI to allow AI assistants to create, query, modify, and manage tasks directly from agentic coding tools.10MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that exposes the full Task-Tracker REST API as MCP tools, enabling AI agents to manage trackers, tasks, notes, checklists, and projects conversationally.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/khodorrrhajjj/TaskLogger-Mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server