Connect your AI development tools to the PVE Platform via the Model Context Protocol (Streamable HTTP transport).
/mcp in MCP client configs. The /mcp/info endpoint is a discovery document for browsers and diagnostics, not the Streamable HTTP transport endpoint used by MCP clients.
Cursor → Settings → MCP.cursor/mcp.json (project) or ~/.cursor/mcp.json (global)pve-platform server appears under Available Tools in Agent mode.⇧⌘P → run MCP: Add Server.vscode/mcp.json in your project rootpve-platform toolsWindsurf → Cascade → Configure MCP~/.codeium/windsurf/mcp_config.json~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json
Claude Desktop → Claude menu → Settings → Developer → Edit ConfigmcpServers if present)⌘, to open Settingscontext_servers block from the config aboveX-API-Key: <key> header (or Authorization: Bearer <key>). Default read-only keys can read resources, spaces, tags, categories, and type definitions; writes still require mcp_write_enabled=true. Write-capable tools remain visible in the catalog even when the current key cannot execute them.
Call pve_get_permissions_reference with:
{
"subject": "resource"
}
Then call pve_get_document with:
{
"documentId": "space-resource-permissions-delegation-invitations-reference"
}
Call pve_query_permissions_roles with:
{
"subject": "space",
"spaceId": "YOUR_SPACE_ID"
}
Call pve_get_schema with:
{
"entityType": "resource"
}
Then call pve_get_typescript_types with:
{
"entityType": "resource"
}
Call pve_search_documents with:
{
"query": "resource members move requests effective access"
}
Call pve_geo_search with:
{
"query": "Bahnhofstrasse 1 Zurich",
"locale": "de-CH",
"country": "CH",
"limit": "5",
"include_display_config": "true"
}
Call pve_resources_nearby with:
{
filters_json: search=Room; referenceLatitude=47.3769; referenceLongitude=8.5417; radiusMeters=5000; includeMediaIds=true; limit=10
}
Call pve_get_calendar_reference with:
{}
Then call pve_get_calendar_workflow with:
{
"workflow": "schedule-recurring-entry"
}