MCP Setup Guide

Connect Claude Desktop, Claude.ai, Claude Code, Cursor, or any MCP client to manage your Willform agents via AI.

What is MCP?

The Model Context Protocol (MCP) allows AI assistants to interact with external tools and services. Willform exposes an MCP server that lets you create namespaces, deploy AI agents on dedicated VMs, manage resources, and monitor status — all through natural language.

Authentication Methods

Willform MCP supports two authentication methods depending on your client:

MethodClientsHow It Works
OAuth 2.0Claude Desktop, Claude.aiAutomatic — just enter the server URL. Phone OTP login via browser.
API KeyClaude Code, Cursor, custom clientsManual — create a key in Dashboard, add to config file.

Option A: OAuth Clients (No API Key Needed)

Claude Desktop and Claude.ai support OAuth 2.0 auto-discovery. You only need to provide the MCP server URL — authentication is handled automatically through a browser-based phone verification flow.

Claude Desktop

  1. Open Settings (gear icon) → Developer → Edit Config
  2. Add the following to claude_desktop_config.json:
{
  "mcpServers": {
    "willform": {
      "type": "http",
      "url": "https://willform.ai/api/mcp"
    }
  }
}
  1. Restart Claude Desktop.
  2. On first use, a browser window opens for authentication. Enter your phone number and verify with the OTP code.
  3. Approve the mcp:tools permission. You're connected — tokens refresh automatically.

Claude.ai (Web)

Requires a paid plan: MCP Integrations on Claude.ai are available on Max and Pro plans only.
  1. Go to claude.ai/settings/connectors (or Settings → Connectors)
  2. Click + Add custom connector. Enter a name (e.g. Willform) and the server URL:
https://willform.ai/api/mcp
  1. Complete the phone verification in the popup window and approve the mcp:tools permission.
  2. The Willform integration now appears in your chat. Start a new conversation and the MCP tools are available.
How OAuth works behind the scenes: The client discovers our authorization server via /.well-known/oauth-authorization-server, registers itself (DCR), then runs a PKCE S256 authorization code flow. Access tokens expire in 1 hour and refresh tokens last 30 days with automatic rotation.

Option B: API Key Clients

For developer tools that support custom headers, use an API key directly.

Step 1: Get Your API Key

Navigate to Dashboard → API Keys and create a new key. Copy the key — it starts with wf_sk_ and will only be shown once.

Step 2: Configure Your Client

Claude Code (CLI)

Create .mcp.json in your project root:

{
  "mcpServers": {
    "willform": {
      "type": "http",
      "url": "https://willform.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Cursor

Create .cursor/mcp.json in your project:

{
  "mcpServers": {
    "willform": {
      "type": "http",
      "url": "https://willform.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Claude Code Plugin (Alternative)

If you use Claude Code, you can also install the Willform plugin for slash commands instead of raw MCP. It provides interactive commands like /wf-deploy, /wf-status, /wf-monitor, and more.

Install from the marketplace:

/install-plugin willform-ai/willform-plugins
View on GitHub

Verify Connection

After configuring any client, ask your AI assistant:

"List my Willform namespaces"

The assistant should use the namespace_list tool to show your namespaces. If you see a list (even empty), the connection is working.

Troubleshooting

Claude Desktop: "Failed to connect"

Make sure you restarted Claude Desktop after editing the config. Check that the URL is exactly https://willform.ai/api/mcp.

OAuth login popup doesn't appear

Your browser may be blocking popups. Allow popups for willform.ai and retry.

API key returns 401

Verify your key starts with wf_sk_. Keys are scoped to your account — make sure you're using a key from the correct account.

Available Tools

Willform exposes tools across 6 categories for managing AI agents, namespaces, credits, and more.

Namespace Management

ToolDescription
namespace_createCreate a new namespace for organizing agents
namespace_getGet details of a specific namespace
namespace_listList all your namespaces
namespace_updateUpdate namespace name
namespace_deleteDelete a namespace and all its resources
namespace_usageCheck namespace resource usage

Credits & Billing

ToolDescription
credits_balanceCheck your credit balance and burn rate
credits_deposit_infoGet USDC deposit address and instructions
credits_deposit_verifyVerify an on-chain USDC deposit

Agent Management

ToolDescription
agent_createCreate a new managed AI agent
agent_listList all your managed agents
agent_getGet details of a specific agent
agent_updateUpdate agent name, persona, or configuration
agent_deleteDelete an agent permanently (stops VM, removes secrets)
agent_deployDeploy an agent as a dedicated VM
agent_undeployStop a running agent VM (preserves config for re-deploy)
agent_statusCheck agent health and VM status
agent_invokeInvoke a specific agent tool
agent_chatTalk to your agent — natural language conversation
agent_recoverRecover a failed agent
agent_configureConfigure agent settings (persona, tool pack, MCP servers)
agent_add_mcp_serverAdd an external MCP server to an agent
agent_remove_mcp_serverRemove an MCP server from an agent
agent_upload_documentUpload a document to the agent knowledge base
agent_list_documentsList documents in the agent knowledge base
agent_remove_documentRemove a document from the agent knowledge base
agent_search_knowledgeSearch the agent knowledge base (vector RAG)
agent_propose_toolPropose a new tool for the agent (self-improvement)
agent_propose_memoryPropose a memory entry for the agent (self-improvement)
agent_list_proposalsList pending self-improvement proposals
agent_approve_proposalApprove a self-improvement proposal
agent_register_identityTemporarily unavailable during the agent_instances migration
agent_identity_statusCheck whether ERC-8004 identity operations are currently available
agent_identity_updateTemporarily unavailable during the agent_instances migration
agent_deactivate_identityTemporarily unavailable during the agent_instances migration

Budget Policies

ToolDescription
budget_policy_createCreate a budget policy for an agent (daily limits, domain allowlist)
budget_policy_listList budget policies and today's spend
budget_policy_updateUpdate an existing budget policy
budget_policy_deleteDelete a budget policy (falls back to defaults)

x402 Payments

ToolDescription
x402_proxy_callMake an outbound HTTP request through the x402 budget proxy
x402_transactionsList x402 external payment transaction history

Utility & Channels

ToolDescription
toolpack_listList available tool packs for agents
preset_listList available persona presets for agents
design_agent_chatDesign an AI agent through multi-turn conversation
channel_addAdd a notification channel (Slack, Discord, etc.)
channel_listList configured notification channels
channel_removeRemove a notification channel
ask_willyAsk Willy — get platform guidance and help