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_chat_reference with:
{}
Then call pve_get_chat_presence_roster_handoff with:
{
"platform": "react_native"
}
Then call pve_get_document with:
{
"documentId": "chat-presence-roster-handoff-reference",
"sectionId": "react-native-checklist"
}
Call pve_get_notification_reference with:
{}
Then call pve_get_document with:
{
"documentId": "unified-notification-platform-developer-reference",
"sectionId": "mobile-client-guidance"
}
Then call pve_notifications_list_preferences with:
{}
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_translate_content with:
{
"mode": "entity",
"payload_json": "{\"entityType\":\"resource\",\"entityId\":\"YOUR_RESOURCE_ID\"}"
}
Or for a local ARB i18n file the client already read:
{
"mode": "file",
"payload_json": "{\"sourceLanguage\":\"en\",\"fileName\":\"app_en.arb\",\"content\":\"{\\\"helloWorld\\\":\\\"Hello world\\\",\\\"@@locale\\\":\\\"en\\\",\\\"@helloWorld\\\":{\\\"description\\\":\\\"Homepage greeting\\\"}}\"}"
}
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"
}