Agentify MCP Server
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., "@Agentify MCP ServerLog that I'm starting the documentation update task"
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.
Agentify MCP Server
๐ค A simple MCP server for AI task tracking and webhook notifications
Track when AI starts and completes tasks, with real-time webhook notifications for all activities.
๐ Features
task-started- Tool to call when starting any taskauto-task-tracker- Automatic tracking for long-running taskstask-completed- Tool to call when completing any taskWebhook Notifications - Real-time webhook delivery for all tool calls
Environment Variable Configuration - Dynamic webhook URL management
Related MCP server: webhook-mcp
๐ฆ Installation
# Global installation
npm install -g agentify-mcp
# Or run with npx
npx agentify-mcpโ๏ธ Webhook Configuration
1. Using Webhook.site (Recommended)
Visit webhook.site
Copy the auto-generated unique URL
Set it up using one of the methods below
2. Environment Variable Setup
export AGENTIFY_WEBHOOK_URL="https://webhook.site/your-unique-id"
# or
export WEBHOOK_URL="https://webhook.site/your-unique-id"
agentify-mcp3. Environment Variable Injection in MCP Configuration
Claude Desktop's claude_desktop_config.json:
{
"mcpServers": {
"agentify": {
"command": "agentify-mcp",
"env": {
"AGENTIFY_WEBHOOK_URL": "https://webhook.site/your-unique-id",
"LOG_LEVEL": "info"
}
}
}
}4. Configuration File Locations
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
๐ง Usage
AI Tool Call Examples
AI will automatically call tools like this:
// When starting a task
task_started({
taskDescription: 'Starting React component refactoring',
});
// When completing a task
task_completed({
taskDescription: 'Completed React component refactoring',
outcome: 'success',
details: '20% performance improvement',
});Runtime Status Check
When the server starts, you can see the status:
๐ Agentify MCP Server
๐ Webhook: โ
Enabled # When URL is configured
๐ Log Level: infoOr:
๐ Webhook: โ Disabled # When URL is not configured๐ก Webhook Payload
All tool calls send webhooks in this format:
{
"timestamp": "2024-01-01T12:00:00.000Z",
"event": "tool_called",
"toolName": "task-started",
"arguments": {
"taskDescription": "Starting React component refactoring"
}
}{
"timestamp": "2024-01-01T12:00:00.000Z",
"event": "tool_completed",
"toolName": "task-completed",
"arguments": {
"taskDescription": "Completed React component refactoring",
"outcome": "success"
},
"result": {
"content": [{ "type": "text", "text": "โ
Task Completed..." }]
},
"duration": 150
}๐ ๏ธ Developer Configuration
Programmatic Setup
import { AgentifyMCPServer } from 'agentify-mcp';
const server = new AgentifyMCPServer({
webhookUrl: 'https://webhook.site/your-unique-id',
logLevel: 'info',
});
await server.start();Runtime Dynamic Configuration
const server = new AgentifyMCPServer();
// Set webhook URL later
server.setWebhookUrl('https://webhook.site/your-unique-id');
// Check webhook status
console.log(server.isWebhookEnabled()); // true/falseLocal Development
git clone https://github.com/agentify/agentify-mcp.git
cd agentify-mcp
npm install
# Run in development mode
npm run dev
# Build
npm run build
# Run tests
npm test
# Type checking
npm run typecheck
# Linting
npm run lint๐ Troubleshooting
Webhook Not Working
Check Environment Variables
echo $AGENTIFY_WEBHOOK_URLRestart Claude Desktop
Completely restart Claude Desktop after environment variable changes
Test with Webhook.site
Check if requests are received in real-time
MCP Connection Issues
Check configuration file path
Verify JSON syntax
Confirm command path (
agentify-mcpornpx agentify-mcp)
๐ก๏ธ Security
Webhook URLs are masked in logs
Secure management of sensitive information via environment variables
Runtime URL changes supported
๐ Usage Examples
Basic Execution
# Run without webhook
agentify-mcp
# Run with webhook
AGENTIFY_WEBHOOK_URL="https://webhook.site/abc123" agentify-mcpUsing with Claude Desktop
Generate URL from Webhook.site
Add configuration to
claude_desktop_config.jsonRestart Claude Desktop
Receive real-time notifications whenever AI performs tasks
๐งช Testing
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage๐ API Reference
AgentifyMCPServer
Constructor Options
interface ServerConfig {
webhookUrl?: string;
logLevel?: 'debug' | 'info' | 'warn' | 'error';
}Methods
start(): Promise<void>- Start the MCP serverstop(): Promise<void>- Stop the MCP serversetWebhookUrl(url: string): void- Set or update webhook URLgetWebhookUrl(): string | undefined- Get current webhook URL statusisWebhookEnabled(): boolean- Check if webhook is enabled
Available Tools
task-started
Description: Call when starting any task or work
Parameters:
taskDescription(string): Brief description of what was started
auto-task-tracker
Description: Automatically monitors long-running task progress
Parameters:
taskThresholdSeconds(number, optional): Auto-trigger threshold in seconds (default: 30)
task-completed
Description: Call when finishing any task or work
Parameters:
taskDescription(string): Brief description of what was completedoutcome('success' | 'partial' | 'failed'): Task completion outcomedetails(string, optional): Additional completion details
๐ License
MIT License - see the LICENSE file for details.
๐ Links
๐ Stats
Available Tools
3 toolsauto-task-trackerA
AUTOMATICALLY monitors task progress during long-running operations. Self-triggers every 10 seconds when: tasks run longer than 30 seconds, multiple tools are being used, or complex processing is detected. Updates progress without user prompting.
| Name | Required | Description | Default |
|---|---|---|---|
| taskThresholdSeconds | No | Auto-trigger when task exceeds this duration |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully bears the burden of disclosure. It reveals automatic self-triggering every 10 seconds and the conditions for that. It does not detail side effects or interactions with other tools, but for a simple monitoring tool, this is sufficient.
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 the purpose as the first sentence, followed by trigger conditions. Every sentence adds value without unnecessary words.
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 one optional parameter and no output schema, the description covers purpose, trigger conditions, and parameter meaning. It is complete enough for an agent to understand when and how to invoke it, though it lacks details on return values or progress format.
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 coverage is 100% with one parameter 'taskThresholdSeconds' described as 'Auto-trigger when task exceeds this duration'. The description reinforces this with the default value of 30 seconds but adds no new semantics 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 automatically monitors task progress during long-running operations and updates progress without user prompting. It distinguishes from sibling tools 'task-completed' and 'task-started' by emphasizing automation.
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 specifies conditions for automatic triggering (tasks >30s, multiple tools, complex processing), implying when to use this tool over manual alternatives. However, it does not explicitly state when not to use it or name alternatives, leaving some room for interpretation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task-completedA
Call this when you finish any task, answer a question, or complete work. This tracks your activity and helps monitor progress.
| Name | Required | Description | Default |
|---|---|---|---|
| taskDescription | Yes | Brief description of what you just completed (e.g., "answered user question about React", "fixed bug in authentication") | |
| outcome | Yes | How the task completed - success (fully done), partial (partially done), or failed | |
| details | No | Optional additional details about what was accomplished |
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 for behavioral disclosure. It indicates this is a logging/tracking action (non-destructive), but does not state any side effects, permission requirements, or behavior if called multiple times. Adequate but could be more transparent about what 'tracks your activity' means.
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?
Two concise sentences that front-load the primary purpose. Every word is useful with no redundancy. Excellent structure.
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 simplicity of the tool (3 params, no output schema), the description covers the essential context: when to call and what it does. It could mention the relationship with sibling tools (e.g., 'use task-started to begin a task') but is otherwise complete.
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 coverage is 100%, meaning all parameters are described in the input schema. The description does not add any additional meaning beyond what the schema already provides (e.g., enum values or field purposes). Baseline score of 3 is appropriate.
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?
Description clearly states the tool is for reporting completion of tasks, answering questions, or finishing work. It uses a specific verb ('call this when you finish') and resource ('task completion tracking'). However, it does not explicitly distinguish from sibling tools like 'task-started' or 'auto-task-tracker', 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?
Description provides clear context on when to use: 'when you finish any task, answer a question, or complete work.' It implies this is for manual completion logging. Missing explicit guidance on when not to use or differentiation from siblings, but the intent is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task-startedB
Call this when you start any task, answer a question, or start work.
| Name | Required | Description | Default |
|---|---|---|---|
| taskDescription | Yes | Brief description of what you just started (e.g., "answered user question about React", "fixed bug in authentication") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It only states when to call the tool, with no details on side effects, idempotency, or what happens after invocation. This is insufficient for an agent to understand the tool's behavior fully.
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 that is front-loaded with the key action. It earns its place with no 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 low complexity (one required parameter, no output schema), the description is adequate for understanding when to use the tool and what input is needed. It does not cover return values, but that is acceptable without an output schema.
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 100% coverage for the single parameter 'taskDescription', with a clear schema description. The tool description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.
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: 'Call this when you start any task, answer a question, or start work.' It effectively communicates the tool's purpose but does not provide explicit differentiation from siblings like 'auto-task-tracker' or 'task-completed'.
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 gives clear usage context ('when you start any task, answer a question, or start work'), but it lacks any when-not-to-use guidance or mention of alternatives, such as 'auto-task-tracker' for automated tracking.
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.
3 tool updates
v0.0.10- First observed
auto-task-tracker - First observed
task-completed - First observed
task-started
TDQS
Each tool has a distinct role: auto-task-tracker for automatic monitoring, task-started for initiating, and task-completed for finishing. No overlap.
All names use hyphens and are descriptive, but 'auto-task-tracker' is a noun phrase while 'task-started' and 'task-completed' are verb phrases, slightly inconsistent.
3 tools is minimal but reasonable for a simple task tracking server, covering the basic lifecycle without being too sparse.
Covers start, auto-tracking, and end. Missing manual progress updates or error states, but sufficient for basic automation.
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
Task management for teams building with AI agents. Agents claim tasks and report progress.
Anonymous webhook capture, inspection, waiting, and response configuration for AI agents.
Fire-and-forget webhooks for agents with guaranteed, retried delivery and status polling. x402
Persistent work tracking for AI agents: tasks, status and history that follow you across machines
Related MCP Servers
- AlicenseAqualityAmaintenanceTask management API for AI agents. Create, delegate, and track tasks with agent identity, delegation chains, lifecycle webhooks, and persistent context.442091MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that sends webhook notifications to a configured URL, enabling AI assistants to notify users when long-running tasks complete.513-
- AlicenseNot gradedqualityCmaintenanceEnables sending real-time and webhook notifications when AI agents complete tasks, with support for Discord, Slack, Teams, Feishu, Ntfy, and custom webhooks.6MIT
- AlicenseAqualityBmaintenanceEnables AI agents to create callback endpoints, wait for async webhook results, and verify signatures, eliminating the need for polling.8462MIT
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/gargoyle92/agentify-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server