Skip to main content
Glama
gargoyle92
by gargoyle92

Agentify MCP Server

npm version License: MIT Node.js Version

๐Ÿค– 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 task

  • auto-task-tracker - Automatic tracking for long-running tasks

  • task-completed - Tool to call when completing any task

  • Webhook 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. Visit webhook.site

  2. Copy the auto-generated unique URL

  3. 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-mcp

3. 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.json

  • Windows: %APPDATA%/Claude/claude_desktop_config.json

  • Linux: ~/.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: info

Or:

๐Ÿ“‹ 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/false

Local 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

  1. Check Environment Variables

    echo $AGENTIFY_WEBHOOK_URL
  2. Restart Claude Desktop

    • Completely restart Claude Desktop after environment variable changes

  3. Test with Webhook.site

    • Check if requests are received in real-time

MCP Connection Issues

  1. Check configuration file path

  2. Verify JSON syntax

  3. Confirm command path (agentify-mcp or npx 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-mcp

Using with Claude Desktop

  1. Generate URL from Webhook.site

  2. Add configuration to claude_desktop_config.json

  3. Restart Claude Desktop

  4. 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 server

  • stop(): Promise<void> - Stop the MCP server

  • setWebhookUrl(url: string): void - Set or update webhook URL

  • getWebhookUrl(): string | undefined - Get current webhook URL status

  • isWebhookEnabled(): 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 completed

    • outcome ('success' | 'partial' | 'failed'): Task completion outcome

    • details (string, optional): Additional completion details

๐Ÿ“„ License

MIT License - see the LICENSE file for details.

๐Ÿ“Š Stats

npm downloads GitHub stars GitHub issues

Available Tools

3 tools
auto-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskThresholdSecondsNoAuto-trigger when task exceeds this duration

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskDescriptionYesBrief description of what you just completed (e.g., "answered user question about React", "fixed bug in authentication")
outcomeYesHow the task completed - success (fully done), partial (partially done), or failed
detailsNoOptional additional details about what was accomplished

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskDescriptionYesBrief description of what you just started (e.g., "answered user question about React", "fixed bug in authentication")

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

  1. 3 tool updatesv0.0.10
    • First observedauto-task-tracker
    • First observedtask-completed
    • First observedtask-started

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a distinct role: auto-task-tracker for automatic monitoring, task-started for initiating, and task-completed for finishing. No overlap.

Naming Consistency4/5

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.

Tool Count4/5

3 tools is minimal but reasonable for a simple task tracking server, covering the basic lifecycle without being too sparse.

Completeness4/5

Covers start, auto-tracking, and end. Missing manual progress updates or error states, but sufficient for basic automation.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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