MCP TaskManager
The MCP TaskManager is a serverless task management system designed for AI assistants to handle complex multi-step workflows with built-in user approval mechanisms. With this server, you can:
Break down complex tasks into manageable sub-tasks using
request_planningTrack progress via
get_next_taskand progress tablesMark tasks as completed with
mark_task_doneRequire user approval for completed tasks and entire requests
Inspect task details and list all requests
Add, update, or delete tasks within existing requests
Persistently store task data using Cloudflare KV
Interact through a RESTful API compliant with the Model Context Protocol
Support cross-origin requests (CORS) for web integration
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., "@MCP TaskManagerplan a blog post about AI ethics with research, outline, and writing tasks"
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.
MCP Task Manager
A Model Context Protocol (MCP) server for comprehensive task management, deployed as a Cloudflare Worker. This open-source project enables AI assistants to plan, track, and manage complex multi-step requests efficiently with persistent storage using Cloudflare KV.
π Features
Request Planning: Break down complex requests into manageable tasks
Task Management: Create, update, delete, and track task progress
Approval Workflow: Built-in approval system for task and request completion
Progress Tracking: Visual progress tables and detailed task information
Persistent Storage: Uses Cloudflare KV for reliable data persistence
Serverless Architecture: Deployed as a Cloudflare Worker for global availability
RESTful API: HTTP endpoints for easy integration with any application
CORS Support: Cross-origin requests enabled for web applications
Related MCP server: MCP Development Server
π¦ Deployment
Prerequisites
Cloudflare account (free tier works)
Wrangler CLI installed
Node.js 18+ and npm/pnpm/yarn
Git for cloning the repository
Quick Start
Clone and setup the repository
git clone https://github.com/Rudra-ravi/mcp-taskmanager.git cd mcp-taskmanager npm installLogin to Cloudflare
npx wrangler loginThis will open your browser to authenticate with Cloudflare.
Create KV namespace
npx wrangler kv namespace create "TASKMANAGER_KV"Copy the namespace ID from the output.
Update configuration Edit
wrangler.tomland replace the KV namespace ID:[[kv_namespaces]] binding = "TASKMANAGER_KV" id = "your-new-kv-namespace-id-here"Build and deploy
npm run build npx wrangler deploy
Your MCP Task Manager will be deployed and accessible at:
https://mcp-taskmanager.your-subdomain.workers.dev
Advanced Configuration
Custom Worker Name
To deploy with a custom name, update wrangler.toml:
name = "my-custom-taskmanager" # Change this to your preferred name
main = "worker.ts"
compatibility_date = "2024-03-12"
[build]
command = "npm run build"
[[kv_namespaces]]
binding = "TASKMANAGER_KV"
id = "your-kv-namespace-id-here"Environment Variables
For different environments (development, staging, production):
[env.staging]
name = "mcp-taskmanager-staging"
[[env.staging.kv_namespaces]]
binding = "TASKMANAGER_KV"
id = "staging-kv-namespace-id"
[env.production]
name = "mcp-taskmanager-prod"
[[env.production.kv_namespaces]]
binding = "TASKMANAGER_KV"
id = "production-kv-namespace-id"Deploy to specific environments:
npx wrangler deploy --env staging
npx wrangler deploy --env productionπ§ Usage
API Endpoints
The deployed worker provides two main endpoints:
POST /list-tools- Get available MCP toolsPOST /call-tool- Execute MCP tool functions
Testing Your Deployment
After deployment, test your worker with curl:
# Replace with your actual worker URL
WORKER_URL="https://mcp-taskmanager.your-subdomain.workers.dev"
# Test list tools
curl -X POST $WORKER_URL/list-tools \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'
# Test creating a request
curl -X POST $WORKER_URL/call-tool \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "request_planning",
"arguments": {
"originalRequest": "Test deployment",
"tasks": [{"title": "Test task", "description": "Verify deployment works"}]
}
}
}'Available Tools
π Core Task Management
request_planning- Register a new user request and plan its associated tasksget_next_task- Get the next pending task for a requestmark_task_done- Mark a task as completed with optional detailsapprove_task_completion- Approve a completed taskapprove_request_completion- Approve the completion of an entire request
βοΈ Task Operations
add_tasks_to_request- Add new tasks to an existing requestupdate_task- Update task title or description (only for pending tasks)delete_task- Remove a task from a requestopen_task_details- Get detailed information about a specific task
π Information & Monitoring
list_requests- List all requests with their current status and progress
Example API Calls
List Available Tools
curl -X POST https://your-worker.your-subdomain.workers.dev/list-tools \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'Plan a New Request
curl -X POST https://your-worker.your-subdomain.workers.dev/call-tool \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "request_planning",
"arguments": {
"originalRequest": "Build a web application for task management",
"splitDetails": "Breaking down into frontend, backend, and deployment tasks",
"tasks": [
{
"title": "Setup React frontend",
"description": "Initialize React app with TypeScript and essential dependencies"
},
{
"title": "Create backend API",
"description": "Build REST API with Node.js and Express"
},
{
"title": "Deploy application",
"description": "Deploy to cloud platform with CI/CD pipeline"
}
]
}
}
}'π Data Model
Task Structure
interface Task {
id: string; // Unique task identifier (e.g., "task-1")
title: string; // Task title
description: string; // Detailed task description
done: boolean; // Whether task is marked as done
approved: boolean; // Whether task completion is approved
completedDetails: string; // Details provided when marking task as done
}Request Structure
interface RequestEntry {
requestId: string; // Unique request identifier (e.g., "req-1")
originalRequest: string; // Original user request description
splitDetails: string; // Details about how request was split into tasks
tasks: Task[]; // Array of tasks for this request
completed: boolean; // Whether entire request is completed
}Task Status Flow
β Pending β β³ Done (awaiting approval) β β
ApprovedTasks can only be updated when in "Pending" status. Once marked as done or approved, they become read-only.
π οΈ Development
Local Development
# Install dependencies
npm install
# Build the project
npm run build
# Start local development server (with remote KV)
npx wrangler dev
# Start local development server (with local KV for testing)
npx wrangler dev --local
# Deploy to preview environment
npx wrangler deploy --env previewTesting
# Test the build
npm run build
# Test deployment (dry run - shows what would be deployed)
npx wrangler deploy --dry-run
# Run local tests
npm test # If you add tests
# Test with local KV storage
npx wrangler dev --localDebugging
View real-time logs:
# Tail logs from deployed worker
npx wrangler tail
# Tail logs with filtering
npx wrangler tail --format prettyKV Data Management
# List all keys in your KV namespace
npx wrangler kv:key list --binding TASKMANAGER_KV
# Get a specific key value
npx wrangler kv:key get "tasks" --binding TASKMANAGER_KV
# Delete all data (be careful!)
npx wrangler kv:key delete "tasks" --binding TASKMANAGER_KVποΈ Architecture
The MCP Task Manager is built as a Cloudflare Worker with the following components:
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β AI Assistant βββββΆβ Cloudflare βββββΆβ Cloudflare KV β
β (Claude, etc) β β Worker β β Storage β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β
βΌ
ββββββββββββββββββββ
β TaskManagerServerβ
β (Business Logic) β
ββββββββββββββββββββComponents
TaskManagerServer Class: Core business logic for task management
Worker Interface: HTTP endpoints for MCP protocol communication
Cloudflare KV Storage: Persistent data storage for tasks and requests
MCP Protocol: Standard Model Context Protocol for AI assistant integration
CORS Support: Enables web application integration
Benefits
Global Edge Deployment: Low latency worldwide via Cloudflare's network
Serverless: No server management, automatic scaling
Persistent Storage: Data survives across deployments
Cost Effective: Cloudflare's generous free tier
High Availability: Built-in redundancy and failover
π Monitoring and Logs
Cloudflare Dashboard
View logs and metrics in the Cloudflare Dashboard:
Go to Cloudflare Dashboard
Navigate to Workers & Pages
Select your
mcp-taskmanagerworkerView logs, metrics, and analytics
Real-time Monitoring
# View live logs
npx wrangler tail
# View formatted logs
npx wrangler tail --format pretty
# Filter logs by status
npx wrangler tail --status errorKey Metrics to Monitor
Request Volume: Number of API calls
Response Times: Latency of operations
Error Rates: Failed requests and their causes
KV Operations: Storage read/write performance
Memory Usage: Worker memory consumption
Troubleshooting Common Issues
Issue | Cause | Solution |
500 Internal Server Error | KV namespace not found | Check KV namespace ID in wrangler.toml |
CORS errors | Missing headers | Verify CORS headers in worker.ts |
Task not found | Invalid task/request ID | Check ID format and existence |
Build failures | TypeScript errors | Run |
π€ Contributing
We welcome contributions! Here's how to get started:
Development Setup
Fork the repository
Clone your fork:
git clone https://github.com/your-username/mcp-taskmanager.gitCreate a feature branch:
git checkout -b feature/amazing-featureInstall dependencies:
npm installMake your changes
Test locally:
npx wrangler dev --localBuild and test:
npm run build
Contribution Guidelines
Follow TypeScript best practices
Add tests for new features
Update documentation for API changes
Use conventional commit messages
Ensure all tests pass before submitting
Pull Request Process
Commit your changes:
git commit -m 'Add amazing feature'Push to your branch:
git push origin feature/amazing-featureOpen a Pull Request with:
Clear description of changes
Screenshots/examples if applicable
Reference to any related issues
Areas for Contribution
π Bug fixes and improvements
π Documentation enhancements
β¨ New MCP tools and features
π§ͺ Test coverage improvements
License
This project is licensed under the MIT License - see the LICENSE file for details.
π¬ Support
Getting Help
GitHub Issues: Report bugs or request features
Discussions: Ask questions and share ideas
Documentation: Check this README and inline code comments
Community Resources
MCP Documentation: Model Context Protocol
Cloudflare Workers Docs: Learn more about Workers
Reporting Issues
When reporting bugs, please include:
Your Cloudflare Worker URL
Steps to reproduce the issue
Expected vs actual behavior
Error messages or logs
Browser/client information
π Acknowledgments
Built with the Model Context Protocol SDK
Powered by Cloudflare Workers
Designed for seamless AI assistant integration
Inspired by the need for better task management in AI workflows
π License
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ for the AI community
Deploy your own instance and start managing tasks efficiently with AI assistants!
Available Tools
10 toolsadd_tasks_to_requestB
Add new tasks to an existing request. This allows extending a request with additional tasks.
A progress table will be displayed showing all tasks including the newly added ones.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | ||
| tasks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but lacks critical behavioral details. It mentions a progress table will be displayed, hinting at output behavior, but doesn't cover permissions, side effects (e.g., if tasks are immediately active), error handling, or rate limits. The description adds some context but is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by a clarifying second sentence about the progress table. Both sentences earn their place by adding value, with no wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters with 0% schema coverage, no annotations, and no output schema, the description is moderately complete. It covers the basic action and hints at output behavior but lacks details on parameters, error cases, or integration with sibling tools, leaving gaps for a mutation 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?
Schema description coverage is 0%, so the description must compensate. It implies 'requestId' identifies an existing request and 'tasks' are new tasks to add, but doesn't explain format, constraints, or examples (e.g., what a task object entails beyond title/description). Baseline is 3 as it adds minimal meaning beyond the schema's structure.
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 ('add new tasks') and resource ('to an existing request'), specifying it extends a request with additional tasks. It distinguishes from siblings like 'update_task' or 'delete_task' by focusing on adding rather than modifying or removing, though it doesn't explicitly compare to all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for extending an existing request with tasks, but doesn't specify when to use this versus alternatives like 'request_planning' (which might create new requests) or 'update_task' (for modifying existing tasks). No explicit when-not or prerequisite guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_request_completionA
After all tasks are done and approved, this tool finalizes the entire request. The user must call this to confirm that the request is fully completed.
A progress table showing the final status of all tasks will be displayed before requesting final approval.
If not approved, the user can add new tasks using 'request_planning' and continue the process.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes |
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 describes key behaviors: it 'finalizes' the request (implying a write/mutation), displays a 'progress table' before approval, and allows continuation via 'request_planning' if not approved. However, it lacks details on permissions, side effects, or error handling, which are important for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose stated in the first sentence. Each sentence adds value: the first explains the action, the second describes a behavioral step (displaying a table), and the third provides an alternative flow. There is minimal waste, though it could be slightly more structured.
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 complexity (a mutation to finalize a request with dependencies on tasks), no annotations, no output schema, and low schema coverage, the description is moderately complete. It covers the purpose, usage context, and some behavioral aspects but lacks details on parameters, return values, and full behavioral transparency, leaving gaps for an AI 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 input schema has 1 parameter (requestId) with 0% description coverage, so the description must compensate. It does not explicitly mention the 'requestId' parameter or explain its semantics, such as what format it expects or where to obtain it. The description implies context about tasks and approval but adds no specific parameter information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'finalizes the entire request' and 'confirm that the request is fully completed.' It specifies the action (finalize/confirm) and resource (request), but does not explicitly distinguish it from sibling tools like 'approve_task_completion' or 'mark_task_done,' which handle individual tasks rather than the entire request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: 'After all tasks are done and approved' and 'to confirm that the request is fully completed.' It also mentions an alternative action if not approved: 'add new tasks using 'request_planning' and continue the process.' However, it does not explicitly state when NOT to use it or compare it directly to all sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_task_completionA
Once the assistant has marked a task as done using 'mark_task_done', the user must call this tool to approve that the task is genuinely completed. Only after this approval can you proceed to 'get_next_task' to move on.
A progress table will be displayed before requesting approval, showing the current status of all tasks.
If the user does not approve, do not call 'get_next_task'. Instead, the user may request changes, or even re-plan tasks by using 'request_planning' again.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | ||
| taskId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses key behavioral traits: it's an approval step in a workflow, triggers a progress table display, and has conditional outcomes (approval leads to 'get_next_task', disapproval may lead to changes or re-planning). However, it doesn't cover permissions, rate limits, or detailed response behavior.
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 appropriately sized and front-loaded with the core purpose and sequence. Every sentence adds value: the first explains the tool's role, the second mentions the progress table, and the third covers disapproval handling. Minor verbosity in the last sentence slightly reduces 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?
Given no annotations, 0% schema coverage, and no output schema, the description does well on workflow context but has gaps. It explains when and why to use the tool and ties into sibling tools, but lacks parameter details, return values, and full behavioral transparency (e.g., error cases).
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 0% for 2 parameters (requestId, taskId), and the description adds no meaning about what these parameters represent, their format, or how to obtain them. It fails to compensate for the schema's lack of documentation, leaving parameters unexplained.
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 purpose: 'the user must call this tool to approve that the task is genuinely completed' after using 'mark_task_done'. It distinguishes from siblings by specifying this approval step is required before 'get_next_task' can be used, making the verb+resource+sequence explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: use after 'mark_task_done', before 'get_next_task', and not to use if the user does not approve. Alternatives are named ('request_planning' for re-planning), and exclusions are clear (do not call 'get_next_task' without approval).
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 specific task from a request. Only uncompleted tasks can be deleted.
A progress table will be displayed showing the remaining tasks after deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | ||
| taskId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that deletion is limited to uncompleted tasks and mentions a 'progress table will be displayed' as output behavior. However, it lacks details on permissions, error handling, or irreversible effects, which are important for a destructive operation like deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that are front-loaded: the first states the action and constraint, and the second describes the output. There's no wasted text, but it could be slightly more structured (e.g., bullet points for clarity).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a destructive tool with no annotations, 0% schema coverage, and no output schema, the description is incomplete. It covers the basic action and constraint but misses parameter details, error cases, and full behavioral context. It's minimally viable but has clear gaps for such a critical 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?
Schema description coverage is 0%, so the description must compensate. It doesn't explain what 'requestId' or 'taskId' represent, their formats, or how to obtain them. The description adds no parameter semantics beyond what the bare schema provides, failing to address the coverage gap.
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 resource ('a specific task from a request'), making the purpose evident. However, it doesn't explicitly distinguish this tool from sibling tools like 'mark_task_done' or 'update_task', which could also modify task states, so it misses full sibling differentiation.
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 some usage context by stating 'Only uncompleted tasks can be deleted,' which implies when to use this tool (for uncompleted tasks) and hints at an alternative (e.g., completed tasks might require a different approach). However, it doesn't explicitly name alternatives or specify when not to use it relative to siblings like 'mark_task_done'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_next_taskA
Given a 'requestId', return the next pending task (not done yet). If all tasks are completed, it will indicate that no more tasks are left and that you must wait for the request completion approval.
A progress table showing the current status of all tasks will be displayed with each response.
If the same task is returned again or if no new task is provided after a task was marked as done but not yet approved, you MUST NOT proceed. In such a scenario, you must prompt the user for approval via 'approve_task_completion' before calling 'get_next_task' again. Do not skip the user's approval step. In other words:
After calling 'mark_task_done', do not call 'get_next_task' again until 'approve_task_completion' is called by the user.
If 'get_next_task' returns 'all_tasks_done', it means all tasks have been completed. At this point, you must not start a new request or do anything else until the user decides to 'approve_request_completion' or possibly add more tasks via 'request_planning'.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes |
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 effectively describes key behaviors: it returns a progress table with each response, indicates when no tasks are left, and specifies workflow constraints (e.g., not proceeding without user approval). However, it lacks details on error handling 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose but becomes verbose with detailed workflow rules. While all information is relevant, it could be more streamlined. Sentences like 'In other words:' and the bulleted list add redundancy, reducing 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?
Given the complexity of the workflow and lack of annotations or output schema, the description is mostly complete. It covers purpose, usage rules, and behavioral aspects, but does not detail the structure of the returned task or progress table, which could be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It explains that 'requestId' is used to identify which request's tasks to retrieve, adding meaning beyond the bare schema. However, it does not specify the format or source of 'requestId', leaving some ambiguity.
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 purpose: 'Given a 'requestId', return the next pending task (not done yet).' It specifies the verb ('return'), resource ('next pending task'), and distinguishes it from siblings by focusing on sequential task retrieval rather than listing, adding, or modifying tasks.
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 guidelines on when to use this tool vs. alternatives. It states not to call 'get_next_task' again until 'approve_task_completion' is called after 'mark_task_done', and to use 'approve_request_completion' or 'request_planning' when all tasks are done, clearly differentiating from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_requestsB
List all requests with their basic information and summary of tasks. This provides a quick overview of all requests in the system.
| 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 of behavioral disclosure. It states the tool lists requests but doesn't describe key behaviors: whether it's read-only (implied but not explicit), how results are ordered, if there's pagination, what happens with large datasets, or error conditions. For a list operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: two sentences that directly state the purpose and usage. There's no wasted language or redundancy. However, it could be slightly more structured by explicitly separating purpose from context, preventing a perfect score.
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 complexity (simple list operation), no output schema, and no annotations, the description is minimally adequate. It explains what the tool does but lacks details on return format, behavioral traits, or error handling. For a list tool with no structured support, it meets basic requirements but has clear gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. A baseline of 4 is given since the schema fully covers the parameters (none exist), and the description doesn't need to compensate for any gaps.
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 purpose: 'List all requests with their basic information and summary of tasks.' It specifies the verb ('List'), resource ('requests'), and scope ('all'), and mentions what information is included ('basic information and summary of tasks'). However, it doesn't explicitly differentiate from sibling tools like 'get_next_task' or 'request_planning', which prevents a perfect score.
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 minimal usage guidance: 'This provides a quick overview of all requests in the system.' It implies this tool is for quick overviews but doesn't specify when to use it versus alternatives (e.g., 'get_next_task' for focused task retrieval or 'request_planning' for planning-related queries). No explicit when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_task_doneA
Mark a given task as done after you've completed it. Provide 'requestId' and 'taskId', and optionally 'completedDetails'.
After marking a task as done, a progress table will be displayed showing the updated status of all tasks.
After this, DO NOT proceed to 'get_next_task' again until the user has explicitly approved this completed task using 'approve_task_completion'.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | ||
| taskId | Yes | ||
| completedDetails | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it triggers a progress table display after execution and imposes a workflow constraint (waiting for user approval before using 'get_next_task'). However, it lacks details on error handling, permissions, or rate limits, which are common for mutation tools.
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 appropriately sized and front-loaded, with the first sentence stating the purpose clearly. The subsequent sentences add necessary guidelines without redundancy. However, the phrasing could be slightly more streamlined, e.g., by combining related points into fewer sentences.
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 complexity (a mutation with workflow implications), no annotations, and no output schema, the description is fairly complete. It covers purpose, usage rules, and behavioral outcomes like the progress table display. It could improve by mentioning error cases or the exact format of the progress table, but it adequately supports agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds meaning by specifying that 'requestId' and 'taskId' are required and 'completedDetails' is optional, and it implies the context of task completion. While it doesn't detail parameter formats or constraints, it provides essential usage context beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Mark a given task as done') and resource ('task'), distinguishing it from siblings like 'update_task' or 'delete_task' by focusing on completion status. It explicitly mentions the required parameters ('requestId' and 'taskId'), reinforcing the purpose.
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 guidance on when to use this tool ('after you've completed it') and when not to proceed ('DO NOT proceed to 'get_next_task' again until the user has explicitly approved this completed task using 'approve_task_completion''). It names alternatives ('get_next_task', 'approve_task_completion') and sets clear prerequisites and post-conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_task_detailsB
Get details of a specific task by 'taskId'. This is for inspecting task information at any point.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes |
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 states this is for 'inspecting' (implying read-only) but doesn't clarify permissions, rate limits, or what 'details' include. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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 concise sentences with zero waste. It front-loads the core purpose and adds a brief usage note, making it efficiently structured and easy to parse.
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 annotations, no output schema, and low schema coverage, the description is incomplete. It covers the basic purpose but lacks details on return values, error conditions, or behavioral traits. For a simple read tool, it's minimally adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, but the description adds meaning by specifying that 'taskId' identifies the task to get details for. However, it doesn't explain the format or constraints of 'taskId' beyond what the schema's type indicates. With one parameter, the baseline is 4, but the minimal added value reduces it to 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get details') and resource ('specific task by taskId'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_next_task' or 'list_requests', which might also retrieve task information in different contexts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage ('for inspecting task information at any point') but doesn't specify when to use this versus alternatives like 'get_next_task' or 'list_requests'. It provides some context but lacks explicit guidance on exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_planningA
Register a new user request and plan its associated tasks. You must provide 'originalRequest' and 'tasks', and optionally 'splitDetails'.
This tool initiates a new workflow for handling a user's request. The workflow is as follows:
Use 'request_planning' to register a request and its tasks.
After adding tasks, you MUST use 'get_next_task' to retrieve the first task. A progress table will be displayed.
Use 'get_next_task' to retrieve the next uncompleted task.
IMPORTANT: After marking a task as done, the assistant MUST NOT proceed to another task without the user's approval. The user must explicitly approve the completed task using 'approve_task_completion'. A progress table will be displayed before each approval request.
Once a task is approved, you can proceed to 'get_next_task' again to fetch the next pending task.
Repeat this cycle until all tasks are done.
After all tasks are completed (and approved), 'get_next_task' will indicate that all tasks are done and that the request awaits approval for full completion.
The user must then approve the entire request's completion using 'approve_request_completion'. If the user does not approve and wants more tasks, you can again use 'request_planning' to add new tasks and continue the cycle.
The critical point is to always wait for user approval after completing each task and after all tasks are done, wait for request completion approval. Do not proceed automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| originalRequest | Yes | ||
| splitDetails | No | ||
| tasks | Yes |
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 effectively describes key behavioral traits: it initiates a workflow, requires user approval after each task and at the end, and interacts with other tools in a specific sequence. It also implies this is a write operation (registering and planning), though it doesn't detail error handling or permissions. The description adds substantial context beyond what's in the schema, making it highly transparent.
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 appropriately front-loaded with the tool's purpose and required parameters, but it includes extensive workflow instructions that may be overly detailed for a tool description. While these guidelines are helpful, they could be more concise. The text is structured with numbered steps, but some sentences are verbose, such as the repeated emphasis on user approval, which slightly reduces 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?
Given the complexity of the tool (initiating a multi-step workflow with user interactions) and the lack of annotations and output schema, the description is highly complete. It covers the tool's role in the workflow, parameter requirements, behavioral constraints (e.g., approval cycles), and interactions with sibling tools. This provides sufficient context for an AI agent to use the tool correctly despite the missing structured data.
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 description coverage is 0%, so the description must compensate. It specifies that 'originalRequest' and 'tasks' are required, and 'splitDetails' is optional, adding meaning beyond the schema's basic types. It explains that 'tasks' is an array of objects with 'title' and 'description', clarifying the structure. However, it doesn't detail the format or constraints of 'originalRequest' or 'splitDetails', leaving some ambiguity.
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 purpose: 'Register a new user request and plan its associated tasks.' It specifies the verb ('register' and 'plan') and resource ('user request' and 'tasks'), making the action explicit. However, it doesn't explicitly differentiate from sibling tools like 'add_tasks_to_request' or 'list_requests', which slightly reduces clarity.
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, detailed guidance on when to use this tool versus alternatives. It outlines a complete workflow starting with 'request_planning', followed by 'get_next_task', 'approve_task_completion', and 'approve_request_completion', and explicitly states not to proceed automatically without user approval. It also mentions that if the user wants more tasks after disapproval, 'request_planning' can be used again, distinguishing it from other tools in the cycle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskB
Update an existing task's title and/or description. Only uncompleted tasks can be updated.
A progress table will be displayed showing the updated task information.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | ||
| taskId | Yes | ||
| title | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that a 'progress table will be displayed,' which adds some behavioral context about the output. However, it lacks details on permissions, error handling, or mutation effects, which are important for an update tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences that are front-loaded: the first states the purpose and constraint, and the second adds output behavior. There's no wasted text, though it could be slightly more structured.
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 annotations, no output schema, and 0% schema coverage, the description is moderately complete. It covers the purpose, a key constraint, and output behavior, but lacks details on parameters, error cases, or integration with sibling tools, leaving room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implies that 'title' and 'description' are updatable fields, which adds meaning beyond the schema. However, it doesn't explain 'requestId' or 'taskId' parameters, leaving gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and resource 'existing task's title and/or description', making the purpose specific and understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'mark_task_done' or 'delete_task' beyond the update action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context with 'Only uncompleted tasks can be updated,' which helps guide when to use this tool. It doesn't explicitly mention alternatives like 'delete_task' or 'mark_task_done' for completed tasks, but the constraint is useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: request_planning initiates workflows, add_tasks_to_request extends them, get_next_task fetches pending tasks, mark_task_done and approve_task_completion handle task completion steps, delete_task and update_task modify tasks, open_task_details inspects tasks, list_requests provides overviews, and approve_request_completion finalizes requests. The descriptions reinforce these boundaries, making misselection unlikely.
All tool names follow a consistent verb_noun pattern with underscores, such as add_tasks_to_request, approve_request_completion, and get_next_task. There are no deviations in style or convention, making the naming predictable and easy to parse for an agent.
With 10 tools, the set is well-scoped for a task management domain, covering the full lifecycle from planning to completion. Each tool serves a specific role in the workflow, and there are no extraneous or missing tools that would suggest over- or under-engineering.
The tool surface provides complete CRUD and lifecycle coverage for task management: request_planning (create), list_requests (read), update_task (update), delete_task (delete), along with workflow-specific tools like get_next_task, mark_task_done, approve_task_completion, and approve_request_completion. There are no obvious gaps, and the descriptions outline a coherent end-to-end process.
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
Hosted MCP server for task-first delegation to remote workstations and workers.
MCP server for generating rough-draft project plans from natural-language prompts.
Related MCP Servers
- AlicenseAqualityDmaintenanceModel Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.10154215MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables Claude to manage software development projects with complete context awareness and code execution through Docker environments.244
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server for Claude Desktop that provides structured memory management across chat sessions, allowing Claude to maintain context and build a knowledge base within project directories.226MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that allows integration with Claude Desktop by creating and managing custom tools that can be executed through the MCP framework.88
Appeared in Searches
- Codebeamer application lifecycle management platform
- An MCP for managing lifestyle, coordinating daily routines, exercise, and study tasks
- Todo List for Remote Management of MCP
- A system for task management and integration with AI editors using multiple LLMs
- Understanding Batch Processing in Computing or Operations
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/Rudra-ravi/mcp-taskmanager'
If you have feedback or need assistance with the MCP directory API, please join our Discord server