Skip to main content
An agent that lands on editor.pascal.app from a search result, a link or a person’s request can find everything it needs from the site itself. This page lists what Pascal publishes and how to check each piece with curl.

Read pages as Markdown

The homepage and the contact page have Markdown twins. Pascal serves them when the request asks for Markdown, when a user-initiated assistant fetches the page (ChatGPT-User, Claude-User, Perplexity-User), or on /?mode=agent. Browsers keep getting HTML, and both answers carry Vary: Accept, User-Agent.
Each HTML page advertises its twin with <link rel="alternate" type="text/markdown"> and the same Link response header. A Markdown request for a path that doesn’t exist answers 404 with a Markdown body that links the docs, /llms.txt and the sitemap.

Catalogs and well-known documents

None of these needs a credential. Listing the MCP server’s tools, scopes and annotations is public; calling a tool is not. Discovery describes what Pascal offers, never an account’s entitlements.

Structured data

Every page carries schema.org JSON-LD for Pascal (the Organization, with its contact points and address), the site and the application. The homepage adds its FAQ (FAQPage) and the open-source editor (SoftwareSourceCode); /contact is a ContactPage.

WebMCP in the browser

Pascal’s pages register WebMCP tools on document.modelContext (falling back to navigator.modelContext) for agents that work in the person’s browser:
  • Homepage: get_pascal_agent_access (the MCP URL and how to authorize), search_community_projects and open_pascal_page.
  • Editor: the shared scene tools list_levels, get_level_summary, get_walls, get_zones, get_node, find_by_type, create_room, add_wall, add_door, add_window and delete_node. They run in the open project through the same executor as Pascal’s assistant, so every edit lands in the person’s undo history and is attributed to the agent.
A browser without WebMCP registers nothing.

Errors and limits

API errors are JSON with a machine-readable code, every counted response carries RateLimit headers, and deprecated endpoints announce themselves with Deprecation and Sunset. See Errors, rate limits and versioning.