
wyreup mcp
将自动化平台的 webhook 转换为可靠工具,供 AI 系统调用。
Repository Info
About This Server
将自动化平台的 webhook 转换为可靠工具,供 AI 系统调用。
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
WyreUP MCP Server
A production-ready Model Context Protocol (MCP) server that transforms webhook endpoints from automation platforms (n8n, Make.com, Zapier, FlowiseAI, etc.) into reliable, agent-callable tools for any MCP-compatible AI system.
Compatible with:
- 🤖 Claude Desktop (Anthropic's official desktop app)
- 🔧 Any MCP Client (VS Code extensions, custom applications, etc.)
- 🌐 Future MCP Services (growing ecosystem of MCP-enabled tools)
- 📱 Custom Integrations (build your own MCP client)
📦 NPM Package: wyreup-mcp 🔗 GitHub Repository: tamler/wyreup-mcp
🎯 What It Does
Turn any HTTP webhook into an MCP tool that AI agents can use reliably. Define your automation endpoints in a simple JSON manifest, and the server handles authentication, retries, rate limiting, health monitoring, and error handling automatically.
✨ Key Features
🚀 Enterprise-Ready Reliability
- Smart Retry Logic: Exponential backoff for transient failures
- Rate Limiting: Per-tool request throttling with sliding windows
- Health Monitoring: Real-time endpoint health tracking and statistics
- Timeout Management: Configurable timeouts per tool (great for slow automations)
🔐 Flexible Authentication
- Multiple Auth Types: Header-based and JWT Bearer token authentication
- Environment Variables: Secure credential management via
valueFromEnvandtokenFromEnv - External Secrets: Store credentials in
~/.wyreup-secrets/files - Per-Tool Auth: Each webhook can use different authentication methods
🛠 Developer-Friendly
- JSON Schema Validation: Full input/output schema support with Zod validation
- Rich Error Handling: Structured error responses with debugging context
- Built-in Monitoring Tools: Health checks and rate limit status via MCP
- Hot Reload: Changes to manifest files are picked up automatically
🌊 Advanced HTTP Support
- All HTTP Methods: GET, POST, PUT, PATCH, DELETE support
- Binary Data: Handle file downloads and binary responses
- Streaming Ready: Architecture prepared for real-time data streams
- Content Type Detection: Automatic handling of JSON, text, and binary responses
🧠 MCP Protocol Compliance
- ✅ Uses official MCP SDK (v1.12.0+) with full STDIO and SSE support
- ✅ Per-session SSE transports with isolated tool execution
- Supports transports: STDIO and SSE
- Tool Registration: Fully schema-based using
tools/listandtools/call - JSON-RPC 2.0: Strictly compliant request/response structure
🚀 Quick Start
Installation & Setup
# Install globally from npm
npm install -g wyreup-mcp
# Or run directly with npx (recommended)
npx wyreup-mcp --init
npx wyreup-mcp --validate
npx wyreup-mcp
⚡ Ultra-Fast Setup: Simplified Format
NEW: Get started in under 2 minutes with the simplified webhook format! Perfect for rapid prototyping and low-code users.
{
"tools": [
{
"name": "get_quote",
"webhook": "https://wyreup.com/tools-mock/random-quote"
}
]
}
That's it! The system automatically infers:
- ✅ Description: "Forward to random quote webhook"
- ✅ Method: POST (default for webhooks)
- ✅ Input Schema: Empty object
{} - ✅ Output Schema: Auto-detects JSON, text, binary, or streaming responses
Supported Response Types:
- 📄 JSON - Auto-parsed for structured data
- 📝 Text/HTML - Plain text responses
- 🖼️ Binary - Images, PDFs, files (base64 encoded)
- 🌊 Streaming - Real-time event streams
Test immediately:
echo '{
"tools": [
{
"name": "get_quote",
"webhook": "https://wyreup.com/tools-mock/random-quote"
}
]
}' > wyreup-simple.json
echo '{ "jsonrpc": "2.0", "id": "call-1", "method": "tools/call", "params": { "name": "get_quote", "arguments": {} } }' | npx wyreup-mcp --config wyreup-simple.json --transport stdio --debug
Simplified Format Syntax:
{
"tools": [
{
"name": "your_tool_name",
"webhook": "https://your-webhook-url.com/endpoint"
}
]
}
Mixed Format Support: You can combine simplified and full format tools in the same configuration file for maximum flexibility.
🚀 Instant Testing with Live Endpoints
Skip the setup and test immediately with our live demo endpoints at wyreup.com:
# Create a quick test configuration
echo '{
"tools": [
{
"name": "get_quote",
"description": "Get an inspirational quote",
"url": "https://wyreup.com/tools-mock/random-quote",
"method": "GET",
"input": {},
"output": {
"type": "object",
"properties": {
"quote": { "type": "string" }
}
}
},
{
"name": "get_time",
"description": "Get current UTC time",
"url": "https://wyreup.com/tools-mock/current-time",
"method": "GET",
"auth": {
"type": "header",
"name": "X-API-Key",
"value": "mock-secret-key"
},
"output": {
"type": "object",
"properties": {
"time": { "type": "string" }
}
}
}
]
}' > test-wyreup.json
# Test immediately
npx wyreup-mcp --validate --config test-wyreup.json
npx wyreup-mcp --config test-wyreup.json
Or use the comprehensive example configuration:
# Download the full example config with all advanced features
curl -o wyreup-example.json https://raw.githubusercontent.com/tamler/wyreup-mcp/main/wyreup-example.json
# Test all features
npx wyreup-mcp --validate --config wyreup-example.json
npx wyreup-mcp --config wyreup-example.json
# Run the full SSE test suite
npm run test:sse
npm run test:sse-client
Available Test Endpoints:
- 🗨️ Random Quote -
GET /tools-mock/random-quote(no auth) - ⏰ Current Time -
GET /tools-mock/current-time(API key:mock-secret-key) - 🔄 Echo Service -
POST /tools-mock/echo(API key:test-api-key-12345) - ❌ Error Testing -
POST /tools-mock/error(always returns 500) - 🖼️ Image Generation -
GET /tools-mock/generate-image(returns base64 PNG) - 🎵 Audio Generation -
GET /tools-mock/generate-audio(returns base64 WAV with bytebeat music!)
Default Configuration
The default wyreup.json demonstrates both simplified and full formats:
{
"tools": [
{
"name": "get_quote",
"webhook": "https://wyreup.com/tools-mock/random-quote"
},
{
"name": "echo_message",
"description": "Echoes back the JSON body. Expects 'message' and 'detail'.",
"url": "https://wyreup.com/tools-mock/echo",
"public": false,
"input": { "message": "string", "detail": "string" },
"output": {
"received_message": "string",
"received_detail": "string",
"timestamp": "string"
},
"method": "POST",
"auth": {
"type": "header",
"name": "X-API-Key",
"value": "test-api-key-12345"
}
}
]
}
For comprehensive examples with all advanced features, see wyreup-example.json.
Advanced Configuration Features
For production deployments, you can add advanced features:
{
"tools": [
{
"name": "advanced_tool",
"description": "Production-ready tool with all features",
"url": "https://your-automation-platform.com/webhook/endpoint",
"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"
}
}
]
}
Connect to MCP Clients
Claude Desktop:
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"wyreup": {
"command": "npx",
"args": ["wyreup-mcp"],
"cwd": "/path/to/your/project"
}
}
}
Other MCP Clients:
- VS Code Extensions: Use MCP extension settings
- Custom Applications: Connect via stdio transport on any platform
- Server Deployments: Use SSE transport mode (
--transport sse --port 3333)
The server implements the standard MCP protocol, so it works with any compliant client.
🔧 Configuration Reference
Tool Properties
| Property | Type | Description |
|---|---|---|
name | string | Required. Unique tool identifier |
description | string | Required. Human-readable description |
url | string | Required. Full webhook URL |
method | string | HTTP method (default: POST) |
timeout | number | Request timeout in milliseconds (default: 30000) |
maxRetries | number | Maximum retry attempts (default: 3) |
retryDelay | number | Base retry delay in ms (default: 1000) |
rateLimit | object | Rate limiting configuration |
input | object | JSON Schema for input validation |
output | object | JSON Schema for output description |
auth | object | Authentication configuration |
authFrom | object | External authentication source |
Authentication Types
Header Authentication:
{
"auth": {
"type": "header",
"name": "Authorization",
"value": "Bearer secret-token"
}
}
Environment Variable:
{
"auth": {
"type": "header",
"name": "X-API-Key",
"valueFromEnv": "API_KEY"
}
}
JWT Bearer:
{
"auth": {
"type": "jwt",
"tokenFromEnv": "JWT_TOKEN"
}
}
External Secrets:
{
"authFrom": {
"user": "production-user"
}
}
Create ~/.wyreup-secrets/production-user.json:
{
"tool_name": {
"type": "header",
"name": "Authorization",
"value": "Bearer your-secret-token"
}
}
Rate Limiting
{
"rateLimit": {
"requests": 30, // Max requests
"window": 60000 // Time window in ms
}
}
🖥 Usage
Command Line Options
# Validation
npx wyreup-mcp --validate
npx wyreup-mcp --validate --config wyreup-example.json
# Server modes
npx wyreup-mcp # STDIO mode (default, used by Claude Desktop and local tools)
npx wyreup-mcp --transport sse # SSE mode for web clients (experimental)
# Development
npx wyreup-mcp --debug # Enable debug logging
npx wyreup-mcp --init # Create sample manifest
# SSE Testing (experimental)
npm run test:sse # Starts local SSE server with demo tools
npm run test:sse-client # Sends a tool call over SSE transport
Built-in Monitoring
These tools are automatically available and do not require configuration:
health-check: Test individual webhook endpointshealth-status: Get success rates and performance metricsrate-limit-status: Monitor rate limiting usage
Example: Check health of all tools
echo '{"jsonrpc": "2.0", "method": "tools/call", "params": {"name": "health-status", "arguments": {}}, "id": 1}' | npx wyreup-mcp
🧪 SSE Transport Notes
To test SSE locally:
- Start the server with
--transport sse - Your client must subscribe to
/sse(EventSource) - Wait for the
endpointevent to get the sessionId - Send
POSTrequests to/messages?sessionId=... - Each session gets its own transport and tool server instance
- Transport is cleaned up after tool execution or connection close
🌟 Real-World Examples
Content Processing Pipeline
{
"name": "process_article",
"description": "Extract, summarize, and analyze web articles",
"url": "https://n8n.company.com/webhook/process-article",
"timeout": 45000,
"maxRetries": 2,
"input": {
"type": "object",
"properties": {
"url": { "type": "string", "description": "Article URL" },
"analysis_type": {
"type": "string",
"enum": ["summary", "sentiment", "keywords", "full"],
"default": "summary"
}
},
"required": ["url"]
}
}
Slack Notifications
{
"name": "notify_team",
"description": "Send notifications to team channels",
"url": "https://hooks.zapier.com/hooks/catch/slack-notify",
"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"]
}
}
Document Generation
{
"name": "generate_report",
"description": "Generate PDF reports from data",
"url": "https://make.com/webhook/generate-pdf",
"timeout": 60000,
"input": {
"type": "object",
"properties": {
"template": { "type": "string" },
"data": { "type": "object" },
"format": { "type": "string", "enum": ["pdf", "docx"] }
}
},
"output": {
"binary": true,
"contentType": "application/pdf"
}
}
🚀 Future Roadmap
Near-Term Enhancements
- Webhook Signature Verification: Validate incoming webhook signatures for security
- Response Caching: Cache responses for identical requests to reduce API calls
- Connection Pooling: Optimize HTTP connections for high-throughput scenarios
- Prometheus Metrics: Export detailed metrics for production monitoring
Advanced Features
- Auto-Discovery: Automatically detect and configure tools from popular platforms
- Visual Tool Builder: Web UI for creating and testing webhook configurations
- Team Management: Multi-user authentication and permission systems
- Cloud Registry: Share and discover webhook tools across teams
Platform Integrations
- Native Platform Support: Pre-built templates for n8n, Make.com, Zapier, etc.
- OAuth Integration: Simplified authentication flows for supported platforms
- Batch Operations: Support for bulk webhook calls and parallel processing
- Real-time Subscriptions: WebSocket support for live data feeds
🤝 Contributing
Contributions welcome! Please visit our GitHub repository to:
- Report Issues: GitHub Issues
- Submit Pull Requests: GitHub PRs
- View Source: GitHub Repository
Key areas for contribution:
- Platform Templates: Pre-configured tool definitions for popular automation platforms
- Performance Optimization: Enhance retry logic, connection handling, and response processing
- Security Features: Webhook signature verification, request sanitization
- Monitoring & Observability: Enhanced metrics, logging, and debugging tools
📄 License
MIT License - Build amazing automations for AI agents!
Transform your automation workflows into AI-ready tools in minutes, not hours.
Quick Start
Clone the repository
git clone https://github.com/tamler/wyreup-mcpInstall dependencies
cd wyreup-mcp
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.