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