AI Agent Setup Guide
Connect AI agents to WaymakerOS via Cloud MCP. Create an access key, configure your AI tool, and get 95 tools across Commander and Host.
Overview
This guide explains how to connect AI agents to WaymakerOS. Once connected, your AI agent can manage tasks, documents, goals, notes and files (MyVault), deploy apps, create ambassadors, and control your entire workspace through natural language.
What You'll Learn
- How to create an access key
- How to configure Claude Desktop, Claude Code, and Cursor
- Two connection methods: Cloud MCP (recommended) and Local CLI
- Complete list of 111 available MCP tools
Before You Start
You need a Waymaker account. Don't have one? Sign up at commander.waymakerone.com — about 2 minutes.
Quick Start (Recommended)
The fastest way to connect is the Cloud MCP — no CLI installation required.
Step 1: Create an Access Key
- Sign in at commander.waymakerone.com
- In the left sidebar, click Settings → Access Keys
- Click Create Access Key, give it a name (e.g., "My Claude Desktop")
- Copy the key — it starts with
wm_sk_and is only shown once
Your access key is you. It carries your identity and grants the same access you have in the UI — across both Commander and Host. No separate permission scoping needed.
Step 2: Configure Your AI Tool
Add the Waymaker MCP server to your AI tool's configuration:
Claude Desktop — easiest for non-developers. In Claude Desktop, open Settings → Developer → click Edit Config. This opens claude_desktop_config.json in your text editor. Paste this in (replacing wm_sk_your_access_key_here with your key):
{
"mcpServers": {
"waymaker": {
"type": "http",
"url": "https://mcp.waymakerone.com/mcp",
"headers": {
"Authorization": "Bearer wm_sk_your_access_key_here"
}
}
}
}
Claude Code (.mcp.json in project root):
{
"mcpServers": {
"waymaker": {
"type": "http",
"url": "https://mcp.waymakerone.com/mcp",
"headers": {
"Authorization": "Bearer wm_sk_your_access_key_here"
}
}
}
}
Important: Claude Code loads MCP servers from
.mcp.jsonat the project root, not from.claude/settings.json(which is for project permissions and allowed tools). The"type": "http"field is required for streamable HTTP transport. Add.mcp.jsonto your.gitignoresince it contains your access key.
Cursor (.cursor/mcp.json):
{
"mcpServers": {
"waymaker": {
"type": "http",
"url": "https://mcp.waymakerone.com/mcp",
"headers": {
"Authorization": "Bearer wm_sk_your_access_key_here"
}
}
}
}
Step 3: Restart and Test
Restart your AI tool. Ask: "List my workspaces" or "What Waymaker tools are available?"
You should see the full set of Commander and Host tools listed.
Alternative: Local CLI (for Sync)
If you need bidirectional file sync between your IDE and Commander, install the Waymaker CLI:
npm install -g @waymakeros/cli
waymaker auth login # OAuth browser sign-in
waymaker init # Link project to workspace
Then configure MCP to use the local server:
{
"mcpServers": {
"waymaker": {
"command": "waymaker",
"args": ["serve", "-p", "/path/to/your/project"]
}
}
}
The local CLI provides sync tools that work with
.commander/folders in your project. For most users, the Cloud MCP is simpler and provides the full tool set without installation.
Partner Setup — Organization Isolation
Critical for partners managing multiple clients. Each access key is scoped to one organization. If you use the wrong key, all work lands in the wrong org. This is not recoverable — you'll have to delete and recreate the resources.
Cloud MCP: Named servers per client
If using Cloud MCP, add a separate server entry per client in your AI tool config:
{
"mcpServers": {
"waymaker-acme": {
"type": "http",
"url": "https://mcp.waymakerone.com/mcp",
"headers": {
"Authorization": "Bearer wm_sk_acme_key_here"
}
},
"waymaker-globex": {
"type": "http",
"url": "https://mcp.waymakerone.com/mcp",
"headers": {
"Authorization": "Bearer wm_sk_globex_key_here"
}
}
}
}
Use descriptive server names (waymaker-acme, not waymaker) so you always know which org you're targeting.
Cloud MCP: Per-project config
For Claude Code, create a .mcp.json file in each client's project root with their access key:
{
"mcpServers": {
"waymaker-acme": {
"type": "http",
"url": "https://mcp.waymakerone.com/mcp",
"headers": {
"Authorization": "Bearer wm_sk_client_access_key_here"
}
}
}
}
Important: Claude Code loads MCP servers from
.mcp.json, not.claude/settings.json. The.claude/settings.jsonfile is for project permissions and allowed tools — MCP servers defined there will not load.
Add .mcp.json to .gitignore — it contains the access key.
Local CLI: Per-project config
If using waymaker serve as a local MCP server, create a .mcp.json with the client's access key in the env block:
{
"mcpServers": {
"waymaker": {
"command": "waymaker",
"args": ["serve"],
"env": {
"WAYMAKER_API_KEY": "wm_sk_client_access_key_here"
}
}
}
}
The env.WAYMAKER_API_KEY overrides the global OAuth token. The CLI authenticates as the client's org.
Multi-client project layout
acme-project/.mcp.json → Acme's access key
globex-project/.mcp.json → Globex's access key
Verification
Before doing any work, always confirm you're in the right org:
export WAYMAKER_API_KEY=wm_sk_client_key_here
waymaker auth status
# → Must show the CLIENT's organization name, not yours
If it shows your org, the key is wrong — it was created while the user was logged into the wrong organization in Commander.
Available MCP Tools
Task Management (8 tools)
| Tool | Description |
|---|---|
commander_task_read | Get task details |
commander_task_create | Create a new task |
commander_task_update | Update task status, title, or description |
commander_task_delete | Delete a task |
commander_task_assign | Assign task to a user |
commander_task_list_mine | List your assigned tasks |
commander_taskboard_tasks | List all tasks on a taskboard |
waymaker_kanban_view | Formatted kanban board view |
Documents (4 tools)
| Tool | Description |
|---|---|
commander_document_list | List documents in a workspace |
commander_document_get | Get document content |
commander_document_create | Create a new document |
commander_document_update | Update document content |
Sheets (4 tools)
| Tool | Description |
|---|---|
commander_sheet_list | List sheets in organization |
commander_sheet_get | Get sheet with cell data |
commander_sheet_create | Create a new spreadsheet |
commander_sheet_update | Update sheet metadata or cells |
Folders (5 tools)
| Tool | Description |
|---|---|
commander_folder_list | List folders in a project |
commander_folder_get | Get folder details |
commander_folder_create | Create a folder |
commander_folder_update | Update folder properties |
commander_folder_delete | Delete a folder |
Goals & OKRs (6 tools)
| Tool | Description |
|---|---|
commander_goal_list | List goals/OKRs |
commander_goal_get | Get goal with key results |
commander_goal_create | Create a new objective |
commander_goal_update | Update goal progress/status |
commander_key_result_create | Create a key result |
commander_key_result_update | Update key result progress |
Roles (5 tools)
| Tool | Description |
|---|---|
commander_role_list | List organizational roles |
commander_role_get | Get role with assignments |
commander_role_create | Create a role definition |
commander_role_update | Update role details |
commander_role_assign | Assign user to role |
Workspaces & Projects (7 tools)
| Tool | Description |
|---|---|
commander_workspace_list | List workspaces |
commander_workspace_create | Create a workspace |
commander_workspace_update | Update workspace settings |
commander_project_list | List projects |
commander_project_get | Get project details |
commander_project_create | Create a project |
commander_project_update | Update project settings |
Teams & Users (7 tools)
| Tool | Description |
|---|---|
commander_team_list | List teams |
commander_team_create | Create a team |
commander_team_add_member | Add users to team |
commander_team_remove_member | Remove users from team |
commander_user_list | List organization users |
commander_user_get | Get user details |
commander_user_invite | Invite user to organization |
Frameworks (4 tools)
| Tool | Description |
|---|---|
commander_framework_list | List available frameworks |
commander_framework_get | Get framework with book context |
commander_framework_apply | Apply framework to your business |
commander_framework_categories | List framework categories |
Connections (8 tools)
| Tool | Description |
|---|---|
commander_connection_list | List connections in a workspace |
commander_connection_get | Get connection details |
commander_connection_create | Create a connector, webhook, or signal |
commander_connection_update | Update connection settings, table mapping, field mapping |
commander_connection_delete | Delete a connection |
commander_connection_events | Get recent events for a connection |
commander_connection_test_event | Send a test event to a webhook |
commander_connection_webhook_token | Regenerate webhook token |
Webhook connections auto-generate a URL:
https://apps.waymakerone.com/functions/v1/connection-webhook-receiver?token=whk_xxx. Point any form or service at this URL — incoming data creates rows in the destination table automatically.
My Notes (9 tools)
Each user has a personal MyVault — a private, versioned second brain for markdown notes and files. These tools operate on the calling user's vault only; org admins cannot read other users' vaults. For an end-user overview, see the MyVault section.
| Tool | Description |
|---|---|
commander_notes_vault_status | Check provisioning state and storage quota for the user's vault |
commander_notes_vault_init | Create the user's vault (idempotent) and seed root files (README, CLAUDE.md, AGENTS.md, .mcp.json, folders) |
commander_notes_folders_list | List the folder tree of the vault |
commander_notes_list | List notes, optionally filtered by folder, tag, or paginated |
commander_notes_read | Read a single note's full markdown content by path |
commander_notes_create | Create a new markdown note at a vault path (parent folders auto-created) |
commander_notes_update | Update an existing note's content (optional base_ref for safe concurrent edits) |
commander_notes_delete | Soft-delete a note by moving it to archive/ (recoverable) |
commander_notes_search | Full-text search across markdown notes in the vault |
commander_notes_vault_clone_token | Generate a git clone command + token to open the vault in VS Code, Cursor, or Claude Code |
Files in the vault — any-size files live alongside your notes:
| Tool | Description |
|---|---|
commander_vault_attach | Attach a smaller file (≤25 MB) — image, PDF, doc — by base64 or https URL |
commander_vault_upload_init | Start an any-size upload — returns a one-time direct upload link |
commander_vault_upload_complete | Finish an any-size upload and file the reference into the vault |
commander_vault_attach_get | Get a short-lived download link for a vault file |
commander_vault_delete | Delete a file from the vault |
Note: MyVault notes and files are live. Use
commander_notes_*for markdown and thecommander_vault_*tools for files. (If you connected before mid-June 2026, reconnect your MCP session so the file tools appear in your tool list.)
Data Tables (9 tools)
| Tool | Description |
|---|---|
commander_table_list | List data tables in a workspace |
commander_table_get | Get table details and column schema |
commander_table_create | Create a new data table with typed columns |
commander_table_update | Update table name, description, or columns |
commander_table_delete | Delete a table and all its rows |
commander_table_rows | Query rows with filters, sorting, and pagination |
commander_table_row_insert | Insert a row into a table |
commander_table_row_update | Update a row's data |
commander_table_row_delete | Delete a row |
Layers, Comments, Search & More (8 tools)
| Tool | Description |
|---|---|
commander_layer_list | List layers on a taskboard |
commander_layer_create | Create a layer (epic/category) |
commander_layer_delete | Delete a layer |
commander_comment_create | Add comment to task |
commander_comment_list | List task comments |
commander_presentation | Create or manage presentations |
commander_search | Search across workspaces |
commander_status_list | List available statuses |
Host Apps (11 tools)
| Tool | Description |
|---|---|
host_app_list | List all apps |
host_app_create | Create a new app |
host_app_get | Get app details |
host_app_update | Update app settings |
host_app_delete | Delete an app |
host_app_deploy | Trigger a deployment |
host_app_deployments | View deployment history |
host_app_upload | Upload files directly (Host Direct) |
host_app_env_list | List environment variables |
host_app_env_set | Set environment variable |
host_app_env_delete | Delete environment variable |
Host Ambassadors (10 tools)
| Tool | Description |
|---|---|
host_ambassador_list | List all ambassadors |
host_ambassador_create | Create a serverless function |
host_ambassador_get | Get ambassador details |
host_ambassador_deploy | Deploy serverless function |
host_ambassador_invoke | Invoke the running ambassador |
host_ambassador_logs | View invocation logs |
host_ambassador_delete | Delete an ambassador |
host_ambassador_env_list | List environment variables |
host_ambassador_env_set | Set environment variable |
host_ambassador_env_delete | Delete environment variable |
Host Domains (4 tools)
| Tool | Description |
|---|---|
host_domain_setup | Set up custom domain |
host_domain_verify | Verify DNS configuration |
host_domain_status | Check domain and SSL status |
host_domain_remove | Remove custom domain |
Host GitHub (3 tools)
| Tool | Description |
|---|---|
host_github_status | Check GitHub App installation |
host_github_connect | Connect GitHub account |
host_github_disconnect | Disconnect GitHub account |
Sync & Utilities (8 tools + get_my_info)
| Tool | Description |
|---|---|
waymaker_sync_status | Check sync daemon status |
waymaker_sync_start | Start the sync daemon |
waymaker_sync_stop | Stop the sync daemon |
waymaker_sync_configure | Configure sync for a project |
waymaker_sync_poll | Poll for pending operations |
create_kanban | Create a kanban board |
search_knowledge | Search Waymaker knowledge base |
get_my_info | Get current user and org info |
Example Workflows
Wire a Contact Form to a Table
"Create a webhook connection called 'Contact Form' in the Website workspace, connected to the enquiries table. Map name, email, phone, and message fields. Give me the webhook URL to use in the form."
Deploy a Website
"Create an app called landing-page from my repo github.com/acme/marketing, it uses Next.js. Deploy it and set up www.acme.com as the custom domain."
Set Up a New Client (Partner)
"Create a workspace called Acme Operations, set up projects for Sales, Marketing, and Product. Apply the OKR Builder framework to define Q2 goals. Create roles for CEO, VP Sales, and VP Marketing. Invite john@acme.com as CEO."
Daily Standup Summary
"Give me a summary of my tasks for the daily standup."
Build from a Framework
"Apply the 7 Questions framework for our new product line, then create a PRD document with the results."
Troubleshooting
"Not authenticated"
Your access key is missing or invalid. Check:
- The key starts with
wm_sk_ - The
Authorizationheader usesBearer wm_sk_...format - The key hasn't been revoked in Commander > Settings > Access Keys
Tools not appearing
- Restart your AI tool completely after config changes
- Verify JSON syntax is valid (no trailing commas)
- Check the MCP server URL:
https://mcp.waymakerone.com/mcp
"Organization not found"
Your access key may be for a different organization. Create a new key from the correct organization in Commander > Settings > Access Keys.
Security
- Access keys are you — they carry your identity and permissions
- Organization scope — each key is tied to one organization
- Store securely — never commit keys to version control
- Revoke instantly — disable any key from Commander Settings
- Audit trail — all MCP operations are logged
Need help? Contact support at help.waymakerone.com