WyreUP MCP Manifest (`wyreup.json`)

Introduction

The wyreup.json manifest file is the heart of your WyreUP MCP Server. It defines the tools your server exposes, how they are called, and how they connect to your underlying automation workflows (e.g., n8n webhooks, FlowiseAI endpoints, custom scripts).

This document outlines the structure and available fields for configuring your manifest.

Example Manifest

Here's a basic example of a wyreup.json file:


{
  "tools": [
    {
      "name": "summarize_content",
      "description": "AI-powered content summarization with enterprise-grade reliability",
      "url": "https://n8n.company.com/webhook/summarize",
      "method": "POST",
      "timeout": 30000,
      "maxRetries": 3,
      "retryDelay": 1000,
      "rateLimit": {
        "requests": 10,
        "window": 60000
      },
      "input": {
        "type": "object",
        "properties": {
          "url": { "type": "string", "description": "URL to summarize" },
          "max_words": { "type": "integer", "default": 150 }
        },
        "required": ["url"]
      },
      "output": {
        "type": "object",
        "properties": {
          "summary": { "type": "string" },
          "word_count": { "type": "integer" }
        }
      },
      "auth": {
        "type": "header",
        "name": "X-API-Key",
        "valueFromEnv": "SUMMARIZE_API_KEY"
      }
    },
    {
      "name": "notify_team",
      "description": "Send notifications to team channels",
      "url": "https://hooks.zapier.com/hooks/catch/slack-notify",
      "method": "POST",
      "timeout": 15000,
      "rateLimit": { "requests": 30, "window": 60000 },
      "input": {
        "type": "object",
        "properties": {
          "channel": { "type": "string", "description": "#channel-name" },
          "message": { "type": "string" },
          "priority": {
            "type": "string",
            "enum": ["low", "normal", "high"],
            "default": "normal"
          }
        },
        "required": ["channel", "message"]
      },
      "authFrom": {
        "user": "production-user"
      }
    }
  ]
}
                

Top-Level Fields

  • tools (array, required): An array of tool definition objects. Each tool must define its own full url and can optionally define authentication, rate limiting, and reliability features. See "Tool Definition" section below.

Note: The name, description, version, and log_level fields are no longer used in the current version. The manifest structure has been simplified to focus on tool definitions.

Tool Definition

Each object in the tools array defines a single callable tool with enterprise-grade features:

🔧 Core Properties

  • name (string, required): Unique tool identifier. Must be unique across all tools in the manifest.
  • description (string, required): Detailed description for AI agents to understand usage.
  • url (string, required): Full webhook/API endpoint URL. Environment variable interpolation supported.
  • method (string, optional): HTTP method (GET, POST, PUT, PATCH, DELETE). Defaults to "POST".

🚀 Enterprise Reliability

  • timeout (number, optional): Request timeout in milliseconds. Default: 30000.
  • maxRetries (number, optional): Maximum retry attempts for failed requests. Default: 3.
  • retryDelay (number, optional): Base delay between retries in milliseconds. Uses exponential backoff. Default: 1000.
  • rateLimit (object, optional): Rate limiting configuration:
    • requests: Number of requests allowed
    • window: Time window in milliseconds

📝 Schema Validation

  • input (object, optional): JSON Schema for input validation with Zod.
  • output (object, optional): JSON Schema describing expected output structure.

🔐 Authentication & Security

  • auth (object, optional): Direct authentication configuration. See "Authentication" section.
  • authFrom (object, optional): External authentication reference:
    • user: Reference to credentials in ~/.wyreup-secrets/<user>.json

Authentication & Security

WyreUP MCP Server supports multiple authentication methods with flexible credential management:

🔑 Header Authentication

Send custom HTTP headers for authentication:

  • type: "header"
  • name: Header name (e.g., "X-API-Key")
  • value: Direct header value
  • valueFromEnv: Environment variable name
"auth": {
  "type": "header",
  "name": "X-API-Key",
  "valueFromEnv": "API_KEY"
}

🛡️ JWT Bearer Token

Standard JWT authentication with Authorization header:

  • type: "jwt"
  • token: Direct JWT token
  • tokenFromEnv: Environment variable containing JWT
"auth": {
  "type": "jwt",
  "tokenFromEnv": "JWT_TOKEN"
}

📁 External Secrets

Store credentials in separate files for enhanced security:

  • Create ~/.wyreup-secrets/<user>.json
  • Reference with authFrom: { "user": "production-user" }
// ~/.wyreup-secrets/production-user.json
{
  "type": "header",
  "name": "Authorization",
  "value": "Bearer production-secret-key"
}

🔧 Environment Variables

Use .env files or system environment variables:

# .env file
API_KEY=your-secret-key
JWT_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

🔒 Security Best Practices: Always use valueFromEnv, tokenFromEnv, or external secrets for production deployments. Direct credential embedding should only be used for development and testing.

📝 JSON Schema Validation

The input and output fields use standard JSON Schema with Zod validation for robust type checking and error handling.

Input Schema (input)

Defines and validates the parameters a tool accepts:

  • type: Data type (string, integer, boolean, number, array, object)
  • description: Clear parameter explanation for AI agents
  • default: Default value if not provided
  • enum: Array of allowed values
  • required: Array of mandatory parameter names

Output Schema (output)

Documents the expected response structure for AI agents and debugging:

"output": {
  "type": "object",
  "properties": {
    "summary": { "type": "string" },
    "word_count": { "type": "integer" },
    "confidence": { "type": "number", "minimum": 0, "maximum": 1 }
  }
}

💡 Validation Benefits: Zod validation provides immediate feedback on malformed requests, helping debug integration issues and ensuring reliable tool execution.

🔍 Built-in Monitoring Tools

WyreUP MCP Server automatically provides monitoring tools (no configuration required):

  • health-check: Test individual webhook endpoints for availability and response time
  • health-status: Get success rates and performance metrics for all your tools
  • rate-limit-status: Monitor rate limiting usage and remaining quotas

These tools are automatically available to AI agents and can be called just like your custom tools.

📦 Current Version: v0.2.6

For the latest features, updates, and examples, visit: