Skip to main content

MCP server for Platform-2Step API with human-in-the-loop confirmation

Project description

Platform-2Step MCP

MCP server that enables AI agents (Claude, GPT, etc.) to interact with AgendaPro's Platform API safely through a human-in-the-loop confirmation system.

All mutations require human confirmation — the AI agent can only create pending operations, never execute them directly.

Prerequisites

  • Python 3.11+ — check with python3 --version
  • uv (recommended) — Python package manager

Install uv

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Or with Homebrew
brew install uv

After installing, restart your terminal or run source ~/.bashrc (or ~/.zshrc).

Installation

Option A: Claude Code (recommended)

Add to your project's .claude/mcp.json (or ~/.claude/mcp.json for global):

{
  "mcpServers": {
    "platform-2step": {
      "command": "uvx",
      "args": ["platform-2step-mcp"],
      "env": {
        "PLATFORM_2STEPS_BFF_URL": "https://ap-api.agendapro.com/platform-2steps-bff",
        "API_HOST_PUBLIC": "mcp.agendapro.com"
      }
    }
  }
}

Option B: Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "platform-2step": {
      "command": "uvx",
      "args": ["platform-2step-mcp"],
      "env": {
        "PLATFORM_2STEPS_BFF_URL": "https://ap-api.agendapro.com/platform-2steps-bff",
        "API_HOST_PUBLIC": "mcp.agendapro.com"
      }
    }
  }
}

Option C: Cursor

In Cursor, go to Settings > MCP and add a new server with this configuration:

{
  "mcpServers": {
    "platform-2step": {
      "command": "uvx",
      "args": ["platform-2step-mcp"],
      "env": {
        "PLATFORM_2STEPS_BFF_URL": "https://ap-api.agendapro.com/platform-2steps-bff",
        "API_HOST_PUBLIC": "mcp.agendapro.com"
      }
    }
  }
}

Alternatively, create a .cursor/mcp.json file in your project root with the same content.

Note: uvx downloads and runs the package from PyPI automatically — no manual install needed.

Authentication

Before using the MCP, you must authenticate once. The MCP uses OAuth 2.0 Device Flow — you'll be shown a URL and a code to enter in your browser.

Option A: Using uvx (no install needed)

export PLATFORM_2STEPS_BFF_URL=https://ap-api.agendapro.com/platform-2steps-bff
uvx --from platform-2step-mcp platform-mcp-auth login

Option B: Using pip

pip install platform-2step-mcp
export PLATFORM_2STEPS_BFF_URL=https://ap-api.agendapro.com/platform-2steps-bff
platform-mcp-auth login

After installing with pip, the platform-mcp-auth command is available directly in your PATH.


You'll see something like:

Connecting to https://ap-api.agendapro.com/platform-2steps-bff...


============================================================
Authentication required!
============================================================

1. Open your browser to:
   https://mcp.agendapro.com/v1/auth/login...

2. After authenticating, copy the completion code from
   the browser and paste it below.

This code expires in 10 minutes.
============================================================

Enter completion code (or @filepath to read from file):


============================================================
Authentication successful!
============================================================
Token expires in: 1h 0m

Tokens are cached at ~/.platform-mcp/tokens.json and reused automatically.

Auth CLI commands

Command Description
uvx --from platform-2step-mcp platform-mcp-auth login Authenticate (interactive)
uvx --from platform-2step-mcp platform-mcp-auth login --force Re-authenticate even if tokens are valid
uvx --from platform-2step-mcp platform-mcp-auth status Check if tokens are valid
uvx --from platform-2step-mcp platform-mcp-auth logout Clear cached tokens

Important: Always set PLATFORM_2STEPS_BFF_URL before running auth commands.

Using Multiple Environments

To use both staging and production simultaneously, configure separate token paths:

{
  "mcpServers": {
    "platform-2step-staging": {
      "command": "uvx",
      "args": ["platform-2step-mcp"],
      "env": {
        "PLATFORM_2STEPS_BFF_URL": "https://ap-api.agendaprodev.com/platform-2steps-bff",
        "API_HOST_PUBLIC": "mcp.agendaprodev.com",
        "PLATFORM_MCP_TOKEN_PATH": "~/.platform-mcp/tokens-staging.json"
      }
    },
    "platform-2step-prod": {
      "command": "uvx",
      "args": ["platform-2step-mcp"],
      "env": {
        "PLATFORM_2STEPS_BFF_URL": "https://ap-api.agendapro.com/platform-2steps-bff",
        "API_HOST_PUBLIC": "mcp.agendapro.com",
        "PLATFORM_MCP_TOKEN_PATH": "~/.platform-mcp/tokens-prod.json"
      }
    }
  }
}

Authenticate each environment separately:

# Staging
PLATFORM_2STEPS_BFF_URL=https://ap-api.agendaprodev.com/platform-2steps-bff \
PLATFORM_MCP_TOKEN_PATH=~/.platform-mcp/tokens-staging.json \
uvx --from platform-2step-mcp platform-mcp-auth login

# Production
PLATFORM_2STEPS_BFF_URL=https://ap-api.agendapro.com/platform-2steps-bff \
PLATFORM_MCP_TOKEN_PATH=~/.platform-mcp/tokens-prod.json \
uvx --from platform-2step-mcp platform-mcp-auth login

Available Tools

Once connected, the MCP provides these tools to the AI agent:

Read (no confirmation needed)

  • Categories: list_categories, get_category
  • Services: list_services, list_services_by_category, get_service
  • Bookings: list_bookings, get_booking
  • Locations: list_locations, get_location
  • Providers: list_providers, get_provider
  • Memberships: list_memberships, get_membership
  • Users: get_user

Mutations (require human confirmation)

  • Batch operations: create_batch — creates up to 50 operations (create, update, delete) that must be confirmed by the user in the AgendaPro frontend

Analytics (read-only SQL)

  • query_analytics_db — execute SQL against synced analytics data
  • get_analytics_status — check data sync status
  • refresh_analytics_data — trigger data refresh

Troubleshooting

"Not authenticated" error

Error: Not authenticated. Run 'platform-mcp-auth login' first.

Your tokens expired or were never created. Run uvx --from platform-2step-mcp platform-mcp-auth login.

"Configuration error: PLATFORM_2STEPS_BFF_URL is required"

The environment variable is not set. Make sure it's in your mcp.json config under env.

MCP tools not showing in Claude

  1. Check the MCP server is running: look for errors in Claude Code's MCP logs
  2. Verify auth: uvx --from platform-2step-mcp platform-mcp-auth status
  3. Restart Claude Code / Claude Desktop after config changes

"uvx: command not found"

Install uv first (see Prerequisites).

Environment Variables

Variable Required Default Description
PLATFORM_2STEPS_BFF_URL Yes BFF URL for API integration (staging or production)
API_HOST_PUBLIC No Falls back to PLATFORM_2STEPS_BFF_URL Public hostname for browser-facing URLs (e.g., mcp.agendapro.com)
PLATFORM_MCP_TOKEN_PATH No ~/.platform-mcp/tokens.json Token storage location
LOG_LEVEL No INFO Logging level (DEBUG, INFO, WARNING, ERROR)
DEBUG_HTTP No false Enable cURL-style HTTP request/response logging

Documentation

For comprehensive documentation including architecture, security, and development guides, see CLAUDE.md.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

platform_2step_mcp-0.9.0.tar.gz (99.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

platform_2step_mcp-0.9.0-py3-none-any.whl (45.9 kB view details)

Uploaded Python 3

File details

Details for the file platform_2step_mcp-0.9.0.tar.gz.

File metadata

  • Download URL: platform_2step_mcp-0.9.0.tar.gz
  • Upload date:
  • Size: 99.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for platform_2step_mcp-0.9.0.tar.gz
Algorithm Hash digest
SHA256 8edd17f137ff1fabaec42a314cf1d445f7a4c02a7ceaad368cb903eb4b006a57
MD5 557a09104cdd9021f4b610b1449bd1a0
BLAKE2b-256 41b6a97052a1de8b55a4b739bc7ba68fc339e976996f778f05c7f50390d69a4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for platform_2step_mcp-0.9.0.tar.gz:

Publisher: build.yaml on agendapro/platform-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file platform_2step_mcp-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for platform_2step_mcp-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39ea25a5d006e0a7b4477dee7e25ad7425e8d08d75ae8e9291716636c58ebce3
MD5 033a216aaa8b1ae23dfb2704f0da1580
BLAKE2b-256 7545a542c3a963f628192cf1bdea461bfa2181b6e370a516639d8e744d59d5a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for platform_2step_mcp-0.9.0-py3-none-any.whl:

Publisher: build.yaml on agendapro/platform-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page