mcp-progress
v1.0.4
Published
MCP server with notifications and progress tracking
Maintainers
Readme
MCP Progress Server
An MCP (Model Context Protocol) server that provides notifications and progress tracking for long-running operations.
Features
- Notifications: Display system notifications using node-notifier
- Progress Tracking: Track progress of long-running operations with MCP-compatible progress notifications
Installation
For use with npx (recommended)
npx mcp-progressFor global installation
npm install -g mcp-progressFor local development
git clone [email protected]:jaume-ferrarons/mcp-progress.git
cd mcp-progress
npm installUsage
Run the server:
npm startOr use it as an MCP server in your MCP client configuration.
Tools
notify
Display a notification to the user.
Parameters:
title(string, required): Notification titlemessage(string, required): Notification messagesound(boolean, optional): Play notification sound (default: false)
Note: Notifications stay visible until dismissed by the user.
Example:
{
"title": "Task Complete",
"message": "Your operation finished successfully",
"sound": true
}start_progress
Start tracking progress for a long-running operation. Creates a sticky notification that updates as progress changes.
Parameters:
progressToken(string, required): Unique identifier for this progress operationtitle(string, required): Title of the operationtotal(number, optional): Total number of steps
Example:
{
"progressToken": "file-processing-1",
"title": "Processing files",
"total": 100
}update_progress
Update progress for an ongoing operation. Updates the sticky notification with current progress.
Parameters:
progressToken(string, required): Progress operation identifiercurrent(number, required): Current progress valuetotal(number, optional): Total progress value (updates total if provided)message(string, optional): Progress message
Example:
{
"progressToken": "file-processing-1",
"current": 45,
"message": "Processing file 45 of 100"
}complete_progress
Mark a progress operation as complete. Updates the notification with completion status and plays a sound.
Parameters:
progressToken(string, required): Progress operation identifiermessage(string, optional): Completion message
Example:
{
"progressToken": "file-processing-1",
"message": "All files processed successfully"
}Example Workflow
// Start progress tracking
await callTool('start_progress', {
progressToken: 'data-sync-1',
title: 'Syncing data',
total: 50
});
// Update progress periodically
for (let i = 1; i <= 50; i++) {
await callTool('update_progress', {
progressToken: 'data-sync-1',
current: i,
message: `Processing item ${i}`
});
}
// Complete the operation
await callTool('complete_progress', {
progressToken: 'data-sync-1',
message: 'Sync completed'
});
// Send a notification
await callTool('notify', {
title: 'Sync Complete',
message: 'Data synchronization finished successfully',
sound: true
});MCP Configuration
Add to your MCP client configuration:
{
"mcpServers": {
"progress": {
"command": "npx",
"args": ["-y", "mcp-progress"]
}
}
}Or if installed globally:
{
"mcpServers": {
"progress": {
"command": "mcp-progress"
}
}
}License
ISC
VS Code Setup
This project is configured to work with GitHub Copilot in VS Code. The MCP server configuration is in .vscode/mcp.json.
To use with Copilot:
- Open this project in VS Code
- Make sure GitHub Copilot Chat is enabled
- The MCP server will be automatically available in Copilot Chat
- Use the tools:
@workspace /toolsto see available tools
You can also configure it globally by adding to your VS Code settings:
{
"github.copilot.chat.mcp.enabled": true
}