MCP Server

Connect AI agents to your Propstreet data using the Model Context Protocol.

The Propstreet MCP server lets AI assistants (Claude, Cursor, Windsurf, etc.) read and write your contacts, companies, links, properties, projects, and prospects directly. It uses the same data and permissions as the REST API, exposed over the Model Context Protocol standard.

Quick Reference

Property Value
Endpoint https://app.propstreet.com/mcp
Transport Streamable HTTP (stateless)
Auth Bearer token (api:public scope)
Rate Limiting Same as REST API, varies by token type (see Limits)
Discovery GET /.well-known/oauth-protected-resource

How It Works

Your AI Agent  ──MCP protocol──▶  Propstreet MCP Server

                                  Same services & tenant
                                  isolation as REST API

                                  Your contacts, companies,
                                  links, properties,
                                  projects & prospects

The MCP server is a thin layer over the same service layer that powers the REST API. Everything you can do via MCP respects the same permissions, rate limits, and data isolation as regular API calls.

Connecting Your AI Agent

Option 1: OAuth Auto-Connect (supported clients)

Many MCP clients support OAuth discovery + Dynamic Client Registration (DCR). Point your client at:

https://app.propstreet.com/mcp

If the client supports this flow, it will:

  1. Discover auth endpoints via /.well-known/oauth-protected-resource
  2. Register itself automatically (Dynamic Client Registration)
  3. Redirect you to Propstreet to approve access
  4. Start making tool calls

Claude (Web/Desktop)

Add the connector via SettingsConnectors and use:

  • URL: https://app.propstreet.com/mcp

[!note] For remote servers, Claude Desktop uses the Connectors UI. Remote MCP entries in claude_desktop_config.json are ignored.

Cursor / Windsurf

Add an MCP server with:

  • Type: Streamable HTTP
  • URL: https://app.propstreet.com/mcp

The editor will prompt you to authenticate on first use.

Option 2: Personal Access Token

For quick testing or scripts, use a PAT:

  1. Generate a token at SettingsPersonal SettingsPersonal Access Tokens
  2. Configure your MCP client with a Bearer token header

Claude Code (CLI)

claude mcp add --transport http propstreet \
  https://app.propstreet.com/mcp \
  --header "Authorization: Bearer YOUR_PAT_TOKEN"

[!note] In Claude Code CLI, remote Streamable HTTP servers use --transport http.

curl (manual testing)

curl -X POST https://app.propstreet.com/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer YOUR_PAT_TOKEN" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}'

[!warning] PATs have lower rate limits than OAuth clients. For production use, set up a Bot User with Client Credentials. See the Authentication Guide and Limits for details.

Option 3: Bot User + Client Credentials

For production integrations:

  1. Create a Bot User and OAuth Client at SettingsCompany SettingsClient Registrations
  2. Obtain an access token via Client Credentials flow (see Authentication Guide)
  3. Use the access token as a Bearer token in your MCP client configuration

Available Tools

Once connected, your AI agent can use 33 tools across these domains:

Tool Description
search Semantic search across contacts and companies (natural language)
find Exact field-based search (field:value) across contacts/companies

Contacts

Tool Description
get_contact Get by smart ID (ID, email, name, or external ref)
create_contact Create with name, email, phone, tags, language, company
update_contact Partial update (name, email, phone, tags, language)
delete_contact Permanently delete (cannot be undone). Use preview=true for dry run

Companies

Tool Description
get_company Get by smart ID (ID, name, or external ref)
create_company Create with name, country, domain, tags, strategy
update_company Partial update (name, country, homepage URL, domain, tags, strategy)
delete_company Permanently delete (cannot be undone). Use preview=true for dry run
Tool Description
create_link Create or reuse a contact-company relationship using smart contact/company refs
delete_link Remove a contact-company relationship with optional preview=true dry run

Properties

Tool Description
list_properties List broker properties with optional country/category filters
get_property Get by smart ID (ID or name)
create_property Create a property with description, location, tenure, and idempotency support
update_property Partial update (name, description, country, locality, coordinates, tenure)

Projects

Tool Description
list_projects List with status/classification filters
get_project Get by smart ID (ID, name, or external ref)
create_project Create project with optional smart price and count
update_project Update name, mandate, or smart price
delete_project Permanently delete (cannot be undone). Use preview=true for dry run
close_project Close as sold/withdrawn with smart deal fields

Prospects

Tool Description
list_prospects List prospects on a project with pipeline stage filters
get_prospect Get prospect by smart ID within smart project scope
add_prospect Add contacts/companies via smart identifiers (max 100)
update_prospect Update pipeline classification or external refs
remove_prospect Remove prospect-list entry with optional preview=true
add_prospect_note Add a deal-specific note
batch_classify_prospects Classify up to 100 prospects in one call
get_prospect_projects List projects where a contact or company is a prospect

Activities

Tool Description
log_activity Log a note, meeting, call, or email on a smart target
get_activities List timeline activities for a contact or company

Tags

Tool Description
list_tags List distinct tags across contacts/companies

Preview Mode (Destructive Tools)

All destructive tools (delete_contact, delete_company, delete_project, remove_prospect, close_project) accept preview=true. When set, the tool returns an impact summary (linked prospects, activity count, blockers) without executing the action.

Prompts (Guided Workflows)

The MCP server includes pre-built prompts that guide your AI agent through common multi-step workflows:

Prompt Description
prospect_review Review all prospects on a project with pipeline analysis
pipeline_summary Overview of pipeline health across all active projects
reconcile_contacts Compare Propstreet contacts against external CRM data

Use these as slash commands in your AI client (e.g., /prospect_review in Claude).

Resources

The server exposes a domain guide resource that MCP clients can read on connection:

Resource Description
propstreet://api/schema Domain terminology, classifications, search operators

This helps the agent understand Propstreet concepts (projects, prospects, pipeline stages, etc.) before making tool calls.

Example Conversations

Once connected, you can ask your AI agent things like:

  • "Show me all contacts tagged 'investor' that were updated this month"
  • "Create a new project called 'Oslo Office Portfolio' with exclusive mandate"
  • "Create a property called 'Antwerp Logistics Park' with country BE and locality Antwerp"
  • "Add these 5 contacts as prospects to project 123"
  • "What's the pipeline status across all my active projects?"
  • "Find companies focused on logistics real estate in Sweden"
  • "Show me all properties in Sweden and clear the coordinates on property 123"
  • "Log a meeting note on contact 456 about the Q1 pipeline review"

Troubleshooting

"Unauthorized" or 401 errors

  • Verify your token is valid and not expired
  • Ensure the token has api:public scope
  • PATs expire after 30 days — regenerate if needed

"Forbidden" or 403 errors

  • Your account may lack the required permissions
  • Contact your organization admin to verify your role

Rate limit errors (429)

  • See Limits for current rate limits by token type

Tools not appearing

  • Ensure the MCP endpoint URL is exactly https://app.propstreet.com/mcp
  • Check that your client supports Streamable HTTP transport
  • Try disconnecting and reconnecting the MCP server

Safety reminder

  • Only connect AI clients to MCP servers you trust
  • Review requested OAuth scopes before approving access
  • Keep only the tools enabled that your workflow requires