Configuration Guide

Comprehensive guide to configuring the ActivityPub MCP Server for your specific needs. Learn about environment variables, client integration, and advanced configuration options.

📋 Configuration Overview

The ActivityPub MCP Server can be configured through:

  • Environment Variables - Runtime configuration
  • Client Configuration - MCP client settings (Claude Desktop, etc.)
  • Command Line Arguments - Override settings at startup

🔧 Environment Variables

Core Settings

Variable Default Description Example
LOG_LEVEL info Logging verbosity level debug, info, warn, error
USER_AGENT ActivityPub-MCP-Server/1.0 HTTP User-Agent header MyBot/1.0 (+https://example.com)
REQUEST_TIMEOUT 30000 HTTP request timeout (ms) 60000
MAX_RETRIES 3 Maximum retry attempts 5

Cache Settings

Variable Default Description Example
CACHE_TTL 300 Default cache TTL (seconds) 600
ACTOR_CACHE_TTL 300 Actor info cache TTL 900
INSTANCE_CACHE_TTL 3600 Instance info cache TTL 7200
TIMELINE_CACHE_TTL 120 Timeline cache TTL 300

Rate Limiting

Variable Default Description Example
RATE_LIMIT_REQUESTS 100 Requests per window 200
RATE_LIMIT_WINDOW 900 Rate limit window (seconds) 1800
CONCURRENT_REQUESTS 10 Max concurrent requests 20

🖥️ Client Configuration

Claude Desktop Configuration

Add the server to your Claude Desktop configuration file:

Basic Configuration

{
  "mcpServers": {
    "activitypub": {
      "command": "npx",
      "args": ["-y", "activitypub-mcp"],
      "env": {
        "LOG_LEVEL": "info"
      }
    }
  }
}

Advanced Configuration

{
  "mcpServers": {
    "activitypub": {
      "command": "npx",
      "args": ["-y", "activitypub-mcp"],
      "env": {
        "LOG_LEVEL": "debug",
        "USER_AGENT": "MyCustomBot/1.0",
        "REQUEST_TIMEOUT": "60000",
        "CACHE_TTL": "600",
        "RATE_LIMIT_REQUESTS": "50"
      }
    }
  }
}

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

Other MCP Clients

For other MCP-compatible clients, use similar configuration patterns:

Generic MCP Client

{
  "servers": {
    "activitypub": {
      "command": "npx",
      "args": ["activitypub-mcp"],
      "environment": {
        "LOG_LEVEL": "info"
      }
    }
  }
}

⚙️ Advanced Configuration

Development Mode

For development and debugging:

export DEBUG=activitypub-mcp:*
export LOG_LEVEL=debug
export REQUEST_TIMEOUT=120000
npm run dev

Production Optimization

Recommended settings for production use:

export LOG_LEVEL=warn
export CACHE_TTL=900
export RATE_LIMIT_REQUESTS=200
export CONCURRENT_REQUESTS=20

Proxy Configuration

If you need to use a proxy:

export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1

🔍 Configuration Validation

Checking Your Configuration

Validate your configuration before starting:

# Check configuration syntax
npm run config:validate

# Test server startup
npm run test:config

# View current configuration
npm run config:show

Common Configuration Issues

  • Invalid JSON: Check for syntax errors in client config files
  • Missing quotes: Environment variable values should be strings
  • Wrong paths: Verify command paths and file locations
  • Permission issues: Ensure the server has necessary permissions

🔗 Next Steps