Gathering detailed insights and metrics for @purinton/tasklit-mcp
Gathering detailed insights and metrics for @purinton/tasklit-mcp
Gathering detailed insights and metrics for @purinton/tasklit-mcp
Gathering detailed insights and metrics for @purinton/tasklit-mcp
A Model Context Protocol (MCP) server for task management, providing tools for creating, updating, searching, and tracking tasks via API for AI and automation workflows.
npm install @purinton/tasklit-mcp
Typescript
Module System
Node Version
NPM Version
JavaScript (94.63%)
Dockerfile (5.37%)
Total Downloads
0
Last Day
0
Last Week
0
Last Month
0
Last Year
0
MIT License
108 Commits
1 Branches
1 Contributors
Updated on Jul 11, 2025
Latest Version
1.0.19
Package Id
@purinton/tasklit-mcp@1.0.19
Unpacked Size
25.67 kB
Size
7.14 kB
File Count
16
NPM Version
10.9.2
Node Version
22.17.0
Published on
Jul 11, 2025
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
4
1
Tasklit MCP is a Model Context Protocol (MCP) server providing a set of custom tools for AI and automation workflows, focused on task management. It is designed for integration with AI agents and automation clients, and is easily extendable with your own tools.
This project is an MCP server built on @purinton/mcp-server
. It exposes a set of tools via the Model Context Protocol, making them accessible to AI agents and automation clients.
tools/
directoryBelow is a list of tools provided by this MCP server. Each tool can be called via the MCP protocol or HTTP API.
task-create
Description: Creates one or more tasks. Returns an array of the task IDs that were created.
Input Schema:
1{ 2 "tasks": [ 3 { 4 "details": "string (optional)", 5 "parent_id": "number (optional)", 6 "scheduled_time": "string (optional)", 7 "sort_order": "number (optional)", 8 "status": "pending | in progress | on hold | blocked | review | cancelled | completed (optional)", 9 "title": "string" 10 } 11 ] 12}
Example Request:
1{ 2 "tool": "task-create", 3 "args": { 4 "tasks": [ 5 { "title": "Write documentation", "status": "pending" } 6 ] 7 } 8}
Example Response:
1{ 2 "message": "task-create-reply", 3 "data": { "task_ids": [123] } 4}
task-update
Description: Updates one or more tasks by ID.
Input Schema:
1{ 2 "tasks": [ 3 { 4 "id": "number", 5 "details": "string (optional)", 6 "parent_id": "number (optional)", 7 "scheduled_time": "string (optional)", 8 "sort_order": "number (optional)", 9 "status": "pending | in progress | on hold | blocked | review | cancelled | completed (optional)", 10 "time_logged": "number (optional)", 11 "title": "string (optional)" 12 } 13 ] 14}
Example Request:
1{ 2 "tool": "task-update", 3 "args": { 4 "tasks": [ 5 { "id": 123, "status": "completed" } 6 ] 7 } 8}
Example Response:
1{ 2 "message": "task-update-reply", 3 "data": { "success": true } 4}
task-delete
Description: Delete one or more tasks by their IDs.
Input Schema:
1{ 2 "task_ids": [123, 124] 3}
Example Request:
1{ 2 "tool": "task-delete", 3 "args": { "task_ids": [123] } 4}
Example Response:
1{ 2 "message": "task-delete-reply", 3 "data": { "deleted": [123] } 4}
task-get
Description: Get all of a task's info by its ID.
Input Schema:
1{ 2 "task_ids": [123] 3}
Example Request:
1{ 2 "tool": "task-get", 3 "args": { "task_ids": [123] } 4}
Example Response:
1{ 2 "message": "task-get-reply", 3 "data": { "tasks": [ { "id": 123, "title": "Write documentation", ... } ] } 4}
task-search
Description: Search/list all task titles and details for given statuses.
Input Schema:
1{ 2 "search_string": "string (optional)", 3 "includes": { 4 "pending": true, 5 "in progress": true, 6 "on hold": false, 7 "blocked": false, 8 "review": false, 9 "cancelled": false, 10 "completed": false 11 } 12}
Example Request:
1{ 2 "tool": "task-search", 3 "args": { 4 "search_string": "documentation", 5 "includes": { "pending": true, "in progress": true, "on hold": false, "blocked": false, "review": false, "cancelled": false, "completed": false } 6 } 7}
Example Response:
1{ 2 "message": "task-search-reply", 3 "data": { "tasks": [ { "id": 123, "title": "Write documentation" } ] } 4}
task-log-time
Description: Add or remove time spent on a task.
Input Schema:
1{ 2 "tasks": [ 3 { "task_id": 123, "minutes": 30 } 4 ] 5}
Example Request:
1{ 2 "tool": "task-log-time", 3 "args": { "tasks": [ { "task_id": 123, "minutes": 30 } ] } 4}
Example Response:
1{ 2 "message": "task-log-time-reply", 3 "data": { "success": true } 4}
Install dependencies:
1npm install
Configure environment variables:
MCP_PORT
: (optional) Port to run the server (default: 1234)MCP_TOKEN
: (optional) Bearer token for authenticationStart the server:
1node tasklit-mcp.mjs
Call tools via HTTP or MCP client.
See the @purinton/mcp-server documentation for protocol/API details.
To add a new tool:
tools/
directory (e.g., tools/mytool.mjs
):1import { z, buildResponse } from '@purinton/mcp-server'; 2export default async function ({ mcpServer, toolName, log }) { 3 mcpServer.tool( 4 toolName, 5 "Write a brief description of your tool here", 6 { echoText: z.string() }, 7 async (_args,_extra) => { 8 log.debug(`${toolName} Request`, { _args }); 9 const response = 'Hello World!'; 10 log.debug(`${toolName} Response`, { response }); 11 return buildResponse(response); 12 } 13 ); 14}
You can add as many tools as you like. Each tool is a self-contained module.
You can run this server as a background service on Linux using the provided tasklit-mcp.service
file.
Copy tasklit-mcp.service
to your systemd directory (usually /etc/systemd/system/
):
1sudo cp tasklit-mcp.service /usr/lib/systemd/system/
WorkingDirectory
and ExecStart
paths in the service file match where your project is installed (default: /opt/tasklit-mcp
)./opt/tasklit-mcp/.env
if you use one.1sudo systemctl daemon-reload 2sudo systemctl enable tasklit-mcp 3sudo systemctl start tasklit-mcp
1sudo systemctl status tasklit-mcp
The server will now run in the background and restart automatically on failure or reboot.
You can run this MCP server in a Docker container using the provided Dockerfile
.
1docker build -t tasklit-mcp .
Set your environment variables (such as MCP_TOKEN
) and map the port as needed:
1docker run -d \ 2 -e MCP_TOKEN=your_secret_token \ 3 -e MCP_PORT=1234 \ 4 -p 1234:1234 \ 5 --name tasklit-mcp \ 6 tasklit-mcp
your_secret_token
with your desired token.-e MCP_PORT
and -p
values.If you make changes to the code, rebuild the image and restart the container:
1docker build -t tasklit-mcp . 2docker stop tasklit-mcp && docker rm tasklit-mcp 3# Then run the container again as above
For help, questions, or to chat with the author and community, visit:
No vulnerabilities found.
No security vulnerabilities found.