mcp-progress
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-progressStart progress for processing files with total 100"
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 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
Related MCP server: webhook-mcp
Installation
For use with npx (recommended)
npx mcp-progressFor global installation
npm install -g mcp-progressFor local development
git clone git@github.com: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
}Available Tools
4 toolscomplete_progressB
Mark a progress operation as complete
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | Completion message (optional) | |
| progressToken | Yes | Progress operation identifier |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states the basic action without disclosing side effects, irreversibility, or state requirements. The optional 'message' parameter suggests completion messaging, but the description doesn't explain the behavior or consequences.
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 sentence, concise and unambiguous. It front-loads the action, but it could benefit from a brief note on lifecycle context. It's appropriately sized for a 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?
The description is minimal for a lifecycle operation. It doesn't explain that the progressToken must reference an active progress operation, nor does it mention the relationship to start_progress. The optional message and completion semantics are unclear. Given the simplicity and schema coverage, some gaps remain.
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 already describes both parameters with 100% coverage. The description adds no extra meaning about progressToken format, message constraints, or usage context.
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 'Mark' and clearly identifies the resource 'progress operation' and action 'complete'. It distinguishes from siblings like start_progress and update_progress, as 'complete' is a distinct lifecycle stage.
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 notify, start_progress, or update_progress. It doesn't state prerequisites (e.g., that a progress operation must be in progress) or lifecycle placement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notifyB
Display a notification to the user
| Name | Required | Description | Default |
|---|---|---|---|
| sound | No | Play notification sound (default: false) | |
| title | Yes | Notification title | |
| message | Yes | Notification message |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations provided, so the description carries the full responsibility for behavioral disclosure. It only states that it displays a notification, with no mention of side effects (e.g., whether sound plays), blocking behavior, permission requirements, or whether the notification is system-level or in-app. While it does not contradict anything, it provides minimal behavioral context beyond the tool's 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, front-loaded sentence: 'Display a notification to the user'. It conveys the core action immediately with no redundant words or filler, earning a top score for conciseness.
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 tool with no output schema and a fully documented parameter schema, the description is minimally adequate. However, it lacks contextual completeness by not explaining what kind of notification is shown, whether it blocks, or how it relates to the sibling progress tools. Given the simplicity, a short description is acceptable, but the missing usage context prevents a higher score.
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%, as every parameter (title, message, sound) has a description in the schema. The tool description adds no extra meaning about the parameters, but because the schema already provides full details, the baseline score of 3 is appropriate. The description does not need to compensate.
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 'Display a notification to the user' uses a specific verb (Display), names the resource (notification), and specifies the recipient (user). It clearly distinguishes this tool from the sibling progress-related tools (start_progress, update_progress, complete_progress), which are about tracking progress rather than showing a standalone notification.
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, nor does it mention any exclusions or prerequisites. It simply states what the tool does without any contextual usage hints, such as whether it should be used alongside progress tools or for alerts. This is a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_progressB
Start tracking progress for a long-running operation
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title of the operation | |
| total | No | Total number of steps (optional) | |
| progressToken | Yes | Unique identifier for this progress operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states that it 'starts tracking progress', implying a state change, but does not explain idempotency, the need to pair with update/complete tools, or what happens with duplicate progressTokens. This is a significant gap for a state-initiating operation.
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 sentence with no fluff, front-loaded with the action verb. It is concise and efficient.
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 a simple signature and high schema coverage, but the description does not articulate the relationship with sibling tools or the expected lifecycle (start → update → complete). It is adequate for basic invocation but incomplete for proper workflow 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?
Schema description coverage is 100% with clear parameter descriptions for progressToken, title, and total. The description adds no extra parameter meaning, so the baseline of 3 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 a clear action verb 'Start tracking' with a specific resource 'progress' and a context 'long-running operation'. It distinguishes itself from sibling tools (notify, update_progress, complete_progress) by indicating the initiation phase, though it does not explicitly name them.
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. It does not mention that this should be called before update_progress/complete_progress or that it is for initiating a progress tracking session. The sibling tools are not referenced in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_progressC
Update progress for an ongoing operation
| Name | Required | Description | Default |
|---|---|---|---|
| total | No | Total progress value (optional, updates total if provided) | |
| current | Yes | Current progress value | |
| message | No | Progress message (optional) | |
| progressToken | Yes | Progress operation identifier |
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, but it only says 'update progress' without explaining side effects, error conditions, idempotency, or how it interacts with the progress token. It adds no context beyond the operation 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 wasted words. It is front-loaded and easy to parse, though it could be slightly more informative without losing brevity.
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 tool with 4 parameters, no output schema, and no annotations, the description is too sparse. It does not explain the overall behavior, the optionality semantics of 'total' and 'message', or what happens when the progress token is invalid.
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 baseline is 3. The description does not add any additional meaning to the parameters beyond what the schema already provides, but it does not need to because the schema is thorough.
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 'update' and resource 'progress', and the qualifier 'for an ongoing operation' distinguishes it from start_progress and complete_progress siblings. However, it doesn't elaborate on the distinction beyond what the sibling names imply.
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 explicit guidance on when to use this tool versus alternatives. The phrase 'ongoing operation' vaguely suggests mid-operation updates, but there are no exclusions or mentions of notify, start_progress, or complete_progress.
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.
4 tool updates
v1.0.4- First observed
complete_progress - First observed
notify - First observed
start_progress - First observed
update_progress
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: notify sends a user notification, while start/update/complete handle the lifecycle of a progress operation. There is no overlap or ambiguity between them.
Three tools follow the verb_noun pattern (start_progress, update_progress, complete_progress), but notify is a bare verb without an object. This is a minor deviation from an otherwise consistent naming scheme.
Four tools is well-scoped for a progress-tracking server. Each tool serves a distinct purpose in the workflow, and the count feels neither too thin nor overloaded.
The progress lifecycle (start, update, complete) is covered, with an additional notify capability. A possible gap is the lack of an explicit cancel/abort operation, but the core workflow is complete enough for most use cases.
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
MCP server for Product Management
MCP server for Support & Service Management
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
Related MCP Servers
- AlicenseAqualityBmaintenanceAsync MCP server for running long-running AI tasks with real-time progress monitoring, enabling users to start, monitor, and manage complex AI workflows across multiple models.6345MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that sends webhook notifications to a configured URL, enabling AI assistants to notify users when long-running tasks complete.283-
- AlicenseNot gradedqualityDmaintenanceAdds async processing to any MCP server, with timeout, task management, and subscription to task status via resources.17MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for Nova Agent progress reporting. Enables updating execution sessions and managing steps within tasks.-
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/jaume-ferrarons/mcp-progress'
If you have feedback or need assistance with the MCP directory API, please join our Discord server