Agentify

A multi-client AI agent monitoring and control system with automatic task completion detection.

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

๐Ÿ“ฆ Installation

# Global installation
npm install -g agentify-mcp

# Or run with npx
npx agentify-mcp

โš™๏ธ Webhook Configuration

1. Using Webhook.site (Recommended)

  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.

๐Ÿ”— Links

๐Ÿ“Š Stats

npm downloads GitHub stars GitHub issues

Related Servers

NotebookLM Web Importer

Import web pages and YouTube videos to NotebookLM with one click. Trusted by 200,000+ users.

Install Chrome Extension