Panda IDX MCP Server

Connect Grok, Claude, or ChatGPT to Panda IDX with the Model Context Protocol (MCP). The public docs server at https://www.pandaidx.com/mcp needs no login and exposes OpenAPI, llms.txt, and developer resources. The authenticated product server at https://api.pandaidx.com/mcp can search listings, manage contacts, work your calendar, share properties and, with the builder scope, build and publish your AI Builder website — just by asking.

Publichttps://www.pandaidx.com/mcpProduction
Accounthttps://api.pandaidx.com/mcpProduction

What is MCP?

The Model Context Protocol (MCP) is an open standard that lets AI assistants securely connect to your tools and data. Instead of copy-pasting, the assistant queries your Panda IDX account in real time: listings, contacts, calendar, collections, saved searches, analytics, and email.

You authorize once. You can disconnect anytime from Dashboard → Apps.

Connect with Grok (Cursor)

Grok in Cursor already connects to Panda IDX as a custom MCP connector. No API key to paste.

1
Open Cursor Settings and add a custom MCP connector (or use the Panda IDX connector if it is already listed).
2
Set the server URL to https://api.pandaidx.com/mcp
3
Name it Panda IDX.
4
Authorize on the Panda IDX consent screen (sign in at app.pandaidx.com).
5
Start asking about your listings, contacts, and calendar.

Connect with Claude.ai

Add Panda IDX as a connector in Claude.ai. No code or API keys — OAuth handles it.

1
Go to Settings → Connectors in Claude.ai
2
Click Add Connector
3
Paste https://api.pandaidx.com/mcp
4
Authorize on the Panda IDX consent screen
5
Ask Claude about your properties, contacts, calendar, or site traffic

Claude also has a Connectors Directory. You can add Panda IDX manually today with the URL above.

Connect with Claude Code (CLI)

For developers using Claude Code in the terminal, add the MCP server to your settings:

Request
# Add to your Claude Code settings
# File: ~/.claude/settings.json
{
"mcpServers": {
"panda-idx": {
"type": "url",
"url": "https://api.pandaidx.com/mcp"
}
}
}

Claude prompts you to authorize on first use.

Connect with ChatGPT

Add Panda IDX as a custom MCP connector in ChatGPT (paid plans that support custom connectors / Developer Mode).

1
Open ChatGPT Settings → Connectors
2
Enable Developer Mode if you need custom connectors
3
Click Add custom connector
4
Name: Panda IDX
5
URL: https://api.pandaidx.com/mcp
6
Authentication: OAuth
7
Authorize on the Panda IDX consent screen

The ChatGPT apps / plugins store is a separate review path. You can connect with the URL today.

Available Tools

Once connected, the assistant has these tools. You do not need to call them by name — ask naturally.

Listings

search_listings

Search MLS listings with filters: city, price, beds, baths, property type, amenities, waterfront, pool, and more. Returns public website links.

get_listing

Full details and photos for one MLS number.

get_listing_changes

Price and status changes for listings since a date.

create_offmarket_property

Create an off-market / custom property. Confirm type, address, and price before the assistant calls this.

Contacts

list_contacts

List and search CRM contacts by name, email, stage, or tag.

get_contact

One contact, optionally with notes, collections, and saved searches.

create_contact

Create a CRM contact. Confirm name and email first.

get_contact_activity

Activity timeline: emails, calls, property views, form submissions.

Calendar

list_calendar_events

CRM events in a date range.

create_calendar_event

Create an event. Syncs to the connected Google Calendar when that is set up.

update_calendar_event

Update an event.

delete_calendar_event

Remove an event (and its Google Calendar copy when configured).

Collections

list_property_collections

Collections for you or a CRM contact.

create_property_collection

Create a collection, optionally with MLS IDs.

update_property_collection

Rename a collection.

add_listing_to_collection

Add an MLS listing to a collection.

remove_listing_from_collection

Remove an MLS listing from a collection.

delete_property_collection

Delete a collection.

Saved searches

list_saved_searches

Saved searches for you or a CRM contact.

create_saved_search

Create a saved search from filters. Optional email updates: daily, weekly, or never.

update_saved_search

Update title, filters, or email frequency.

delete_saved_search

Delete a saved search.

Email

send_contact_message

Send a freeform email to one CRM contact. Confirm the contact and the message first.

send_property_resource_email

Email a listing, collection, or saved search to a CRM contact. Accepted for delivery is not the same as delivered.

Analytics

get_analytics

Website visitors, page views, conversions, traffic sources, UTM, and geography.

Account

get_me

Your Panda IDX user, application, subscription status, and granted scopes.

Builder Tools

With the builder scope the assistant can build and edit your AI Builder websites with the same sandbox, design checks and publish rules as the Builder chat, driven by your own model (Claude Code, Claude Desktop). Start with list_sites and open_site, which returns the design guide to follow. Tools that change your account or publish are marked; assistants should confirm before using them.

Sites and sessions

list_sites

List your AI Builder websites with id, name, status and published URL.

open_site

Start or resume a site's sandbox and live preview, and get its design guide and skills.

wait_for_job

Get the result of a long tool call that answered pending with a job id.

load_skill

Load one builder skill (design, libraries, forms, navigation, integrations) by name.

describe_widget

Read the contract of a @pandaidx/widgets widget from the site's installed build.

Files

list_files

List every editable file of the site.

read_file

Read a text file of the site.

search_files

Case-insensitive text search across the site's files.

write_file

Create or overwrite a file. The preview hot-reloads.

edit_file

Apply a list of exact-match replacements to one file, atomically.

delete_file

Delete a file or a whole folder.

restore_file

Put a file back exactly as a saved version had it.

install_packages

Install npm packages into the site.

Preview and design checks

get_preview_logs

Read the dev server output: compile errors, runtime errors and requests.

typecheck

Run the TypeScript compiler over the site.

screenshot_page

Screenshot a page of the live preview at 375, 768 or 1440 px, with browser console errors.

measure_element

Measure one element as the browser renders it: box, margins, classes and layout.

interact_page

Use the preview like a visitor: click, hover, scroll, type and wait.

inspect_web_page

Render an external public page in a real browser and read its content and styles.

compare_to_reference

Compare a section of the site with the same section of a reference page.

design_palette

Propose three complete palettes from a brand color or a photo.

check_design_kit

Measure how much of the site follows its DESIGN.md kit. Slow, only on request.

Versions and publishing

save_version

Save the current files as a named version.

check_publish

Run every Panda publish rule, runtime health and typecheck without publishing.

publish_site

Publish the site to production, like the Publish button. Ask the owner first.

get_publish_status

Whether the site is live and the progress of its publish job.

Content, SEO and data

list_cms_blocks

List the site's CMS blocks: texts, links, media and menus.

update_cms_block

Change a CMS text, image, video, document or menu as data. No code edit and no publish needed.

convert_to_cms

Turn plain texts and media of the site into editable CMS blocks.

list_content

List the site's Content types and entries (FAQ, services, guides, legal pages) with where each is used.

define_content_type

Create or update a Content type from a Panda preset (FAQ, Services) or your own fields.

update_content_entry

Create or update an entry of a Content type; Panda's legal entries become the owner's when edited.

site_seo

Read or change the site's SEO title and description.

logo_placements

List or choose which of the three logos each spot of a page shows.

get_site_data

Summarize the account's real data: profile, brand, team, listings, areas, blog.

get_legacy_website

Read an old Panda website's homepage and header as structured content for migration.

Media

list_media

List the Media Center with CDN URLs.

upload_media

Get a presigned upload for a local image, video or PDF.

import_media_from_url

Import a public image, video or document (25 MB max) into the Media Center.

generate_image

Generate one image with AI and save it to the Media Center.

create_logo

Create the owner's logo with AI when MAIA Creator is on for the account.

Forms and popups

list_forms

List the account's forms with their page spot and fields.

create_form

Create a form. Submissions land in the CRM.

arrange_form

Rearrange a form's fields into rows and steps.

assign_form_spot

Assign a form to a page spot (contact, request-showing, new-development, home-valuation) or release it.

manage_popups

List, create, update or delete popups.

Libraries

list_libraries

List the account's libraries and the Panda template catalog.

list_page_libraries

List the sections of a page that show a library.

swap_library

Show another library in a section already wired to one.

find_library_items

Find areas, buildings, developments, collections, team, stories, reviews or saved searches to put in a library.

create_library

Create a library from item ids or slugs, or fork an existing one.

Integrations and analytics

get_site_runtime

Read the site's declared integrations and Panda analytics settings.

update_site_runtime

Update Panda analytics settings.

site_integrations

List, declare, update, retire or remove site integrations (authorized admins).

Example Prompts

Ask in natural language. Here are examples of what you can say:

Listings

  • "Search for waterfront condos in Miami Beach between $800K and $2M with at least 2 bedrooms"
  • "Show me the details and photos for listing A11567890"
  • "What price changes happened this week on listings A11234567 and A11234568?"

Contacts

  • "Show me my most recent contacts"
  • "Add a contact: Maria Lopez, email maria@example.com"
  • "Find contacts tagged as 'investor'"
  • "What activity does contact John Smith have in the last 30 days?"

Calendar

  • "Schedule a showing Friday at 3pm"

Collections and saved searches

  • "Create a Brickell collection"
  • "Create a weekly Coral Gables search"

Email

  • "Email that collection to the contact"

Analytics

  • "How are my website visits doing this month?"
  • "Show me traffic sources and top pages for the last 90 days"

Scopes & Permissions

When you authorize, the assistant requests access to these scopes:

profile

Your account, application, and granted scopes

listings

Search and view MLS listings, details, and price changes. Create off-market properties when that tool is used.

contacts

Read and create CRM contacts, notes, and activity

analytics

Website analytics, traffic, and conversions

calendar

List, create, update, and delete CRM calendar events

collections

List, create, update, and delete property collections

saved_searches

List, create, update, and delete saved searches

email

Send email to a CRM contact (freeform or a listing / collection / saved search)

builder

Build and edit your AI Builder websites: files, previews, versions, forms, libraries, and media. Publishing needs your confirmation in the client.

Write, delete, and email tools should be confirmed before the assistant runs them.

Manage Access

After you authorize, the connection appears in Dashboard → Apps. From there you can:

  • See which scopes were granted
  • See when the connection was created
  • Disconnect at any time to immediately revoke all access

Go to Dashboard → Apps to manage connected apps.

How It Works

The MCP Server uses OAuth 2.1. Never paste an API key. The client registers itself (Dynamic Client Registration) or publishes a Client ID Metadata Document, and sends PKCE with every authorization. Here is what happens when you add the connector:

1
Discovery — the assistant finds Panda OAuth endpoints
2
Registration — the assistant registers as an OAuth client
3
Authorization — you approve on the Panda IDX consent screen (app.pandaidx.com)
4
Token — the assistant receives a Bearer token (PKCE)
5
Connected — every MCP request uses that token until you disconnect

Requirements

Panda IDX

An active Panda IDX subscription.

Grok / Cursor

A Cursor account that can add custom MCP connectors.

Claude

Claude Pro, Team, or Enterprise for connectors. Claude Code works from the CLI settings above.

ChatGPT

A ChatGPT plan that allows custom MCP connectors / Developer Mode.

Subscription & Errors

The MCP servers work only while the Panda IDX account has an active subscription (active, in trial, or with a payment being retried), and only for an owner or administrator of the account. Otherwise every MCP request answers 403 with the reason, and the connection works again as soon as it is fixed. No need to reconnect.

StatusCodeMeaning
401invalid_tokenNo token, or it was revoked (Disconnect in Dashboard → Apps). The assistant asks you to authorize again.
403subscription_inactiveThe account has no active subscription. Renew it in Workspace settings › Subscriptions.
403user_access_revokedThe user who connected is no longer an owner or administrator. Reconnect with one who is.
403insufficient_scopeThe tool needs a scope you did not approve. Reconnect and approve it.

Your Own Agent

MCP with OAuth is for assistants you talk to. A bot or automation that runs on its own (a WhatsApp bot, Zapier, Make, n8n, your own code) uses a secret API key instead: contacts, listing search and saved searches. See Connect Your Own Agent.

Next Steps