- Explore MCP Servers
- task-mcp-server
Task Mcp Server
What is Task Mcp Server
task-mcp-server is a Model Context Protocol (MCP) implementation for Task Management API written in TypeScript. It serves as both a reference implementation and a functional task management server, connecting to an external Task API service and providing a standardized interface for task management.
Use cases
Use cases for task-mcp-server include integrating with command-line tools for task automation, providing a web interface for task management in browser-based applications, and serving as a backend for AI agents that require task processing capabilities.
How to use
To use task-mcp-server, clone the repository, install dependencies, configure your Task API credentials in an .env file, build the project, and run the server in either STDIO or HTTP mode. You can interact with the server using a client for command-line or web-based applications.
Key features
Key features include comprehensive task management operations (listing, creating, updating, and deleting tasks), dual interface modes (STDIO for CLI and HTTP+SSE for web access), complete MCP protocol implementation, and quality assurance through a comprehensive test client.
Where to use
task-mcp-server can be used in various fields requiring task management, such as project management, software development, and any application needing structured task handling and tracking.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Overview
What is Task Mcp Server
task-mcp-server is a Model Context Protocol (MCP) implementation for Task Management API written in TypeScript. It serves as both a reference implementation and a functional task management server, connecting to an external Task API service and providing a standardized interface for task management.
Use cases
Use cases for task-mcp-server include integrating with command-line tools for task automation, providing a web interface for task management in browser-based applications, and serving as a backend for AI agents that require task processing capabilities.
How to use
To use task-mcp-server, clone the repository, install dependencies, configure your Task API credentials in an .env file, build the project, and run the server in either STDIO or HTTP mode. You can interact with the server using a client for command-line or web-based applications.
Key features
Key features include comprehensive task management operations (listing, creating, updating, and deleting tasks), dual interface modes (STDIO for CLI and HTTP+SSE for web access), complete MCP protocol implementation, and quality assurance through a comprehensive test client.
Where to use
task-mcp-server can be used in various fields requiring task management, such as project management, software development, and any application needing structured task handling and tracking.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Content
Task API Server - MCP TypeScript Implementation
A Model Context Protocol (MCP) implementation for Task Management API written in TypeScript. This project serves as both a reference implementation and a functional task management server.
Overview
This MCP server connects to an external Task API service and provides a standardized interface for task management. It supports two runtime modes:
- STDIO Mode: Standard input/output communication for CLI-based applications and AI agents
- HTTP+SSE Mode: Web-accessible server with Server-Sent Events for browser and HTTP-based clients
The server offers a complete set of task management operations, extensive validation, and robust error handling.
Features
-
Task Management Operations:
- List existing tasks with filtering capabilities
- Create new tasks with customizable properties
- Update task details (description, status, category, priority)
- Delete tasks when completed or no longer needed
-
Dual Interface Modes:
- STDIO protocol support for command-line and AI agent integration
- HTTP+SSE protocol with web interface for browser-based access
-
MCP Protocol Implementation:
- Complete implementation of the Model Context Protocol
- Resources for task data structures
- Tools for task operations
- Error handling and informative messages
-
Quality Assurance:
- Comprehensive test client for validation
- Automatic server shutdown after tests complete
- Detailed validation of API responses
Getting Started
Prerequisites
- Node.js 16.x or higher
- npm or pnpm package manager
Installation
-
Clone the repository:
git clone https://github.com/yourusername/mcp-template-ts.git cd mcp-template-ts -
Install dependencies:
npm installor using pnpm:
pnpm install -
Create an
.envfile with your Task API credentials:TASK_MANAGER_API_BASE_URL=https://your-task-api-url.com/api TASK_MANAGER_API_KEY=your_api_key_here TASK_MANAGER_HTTP_PORT=3000 -
Build the project:
npm run build
Running the Server
STDIO Mode (for CLI/AI integration)
npm start
or
node dist/index.js
HTTP Mode (for web access)
npm run start:http
or
node dist/http-server.js
By default, the HTTP server runs on port 3000. You can change this by setting the TASK_MANAGER_HTTP_PORT environment variable.
Testing
Run the comprehensive test suite to verify functionality:
npm test
This will:
- Build the project
- Start a server instance
- Connect a test client to the server
- Run through all task operations
- Verify correct responses
- Automatically shut down the server
Using the MCP Client
STDIO Client
To connect to the STDIO server from your application:
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
import * as path from 'path';
// Create transport
const transport = new StdioClientTransport({
command: 'node',
args: [path.resolve('path/to/dist/index.js')]
});
// Initialize client
const client = new Client(
{
name: "your-client-name",
version: "1.0.0"
},
{
capabilities: {
prompts: {},
resources: {},
tools: {}
}
}
);
// Connect to server
await client.connect(transport);
// Example: List all tasks
const listTasksResult = await client.callTool({
name: "listTasks",
arguments: {}
});
// Example: Create a new task
const createTaskResult = await client.callTool({
name: "createTask",
arguments: {
task: "Complete project documentation",
category: "Documentation",
priority: "high"
}
});
// Clean up when done
await client.close();
HTTP Client
To connect to the HTTP server from a browser:
<!DOCTYPE html>
<html>
<head>
<title>Task Manager</title>
<script type="module">
import { Client } from 'https://cdn.jsdelivr.net/npm/@modelcontextprotocol/sdk/dist/esm/client/index.js';
import { SSEClientTransport } from 'https://cdn.jsdelivr.net/npm/@modelcontextprotocol/sdk/dist/esm/client/sse.js';
document.addEventListener('DOMContentLoaded', async () => {
// Create transport
const transport = new SSEClientTransport('http://localhost:3000/mcp');
// Initialize client
const client = new Client(
{
name: "browser-client",
version: "1.0.0"
},
{
capabilities: {
prompts: {},
resources: {},
tools: {}
}
}
);
// Connect to server
await client.connect(transport);
// Now you can use client.callTool() for tasks
});
</script>
</head>
<body>
<h1>Task Manager</h1>
<!-- Your interface elements here -->
</body>
</html>
Available Tools
listTasks
Lists all available tasks.
const result = await client.callTool({
name: "listTasks",
arguments: {
// Optional filters
status: "pending", // Filter by status
category: "Work", // Filter by category
priority: "high" // Filter by priority
}
});
createTask
Creates a new task.
const result = await client.callTool({
name: "createTask",
arguments: {
task: "Complete the project report", // Required: task description
category: "Work", // Optional: task category
priority: "high" // Optional: low, medium, high
}
});
updateTask
Updates an existing task.
const result = await client.callTool({
name: "updateTask",
arguments: {
taskId: 123, // Required: ID of task to update
task: "Updated task description", // Optional: new description
status: "done", // Optional: pending, started, done
category: "Personal", // Optional: new category
priority: "medium" // Optional: low, medium, high
}
});
deleteTask
Deletes a task.
const result = await client.callTool({
name: "deleteTask",
arguments: {
taskId: 123 // Required: ID of task to delete
}
});
Environment Variables
| Variable | Description | Default |
|---|---|---|
| TASK_MANAGER_API_BASE_URL | URL for the external Task API | None (Required) |
| TASK_MANAGER_API_KEY | API key for authentication | None (Required) |
| TASK_MANAGER_HTTP_PORT | Port for the HTTP server | 3000 |
| PORT | Alternative port name (takes precedence) | None |
Project Structure
mcp-template-ts/ ├── dist/ # Compiled JavaScript files ├── src/ # TypeScript source files │ ├── index.ts # STDIO server entry point │ ├── http-server.ts # HTTP+SSE server entry point │ ├── test-client.ts # Test client implementation ├── .env # Environment variables ├── package.json # Project dependencies ├── tsconfig.json # TypeScript configuration └── README.md # Project documentation
Development
-
Start the TypeScript compiler in watch mode:
npm run watch -
Run tests to verify changes:
npm test
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- This project uses the @modelcontextprotocol/sdk for MCP protocol implementation
- Built for integration with AI tooling and web applications
Dev Tools Supporting MCP
The following are the main code editors that support the Model Context Protocol. Click the link to visit the official website for more information.










