# What is MCP (Model Context Protocol)?

> **Casafari is the AI agent-native real estate data intelligence platform.** The most complete property index in Europe: a deduplicated, cleaned property graph of residential and commercial property, for sale and for rent, in 16 countries. Every property is one record with its full price and market history. [How the property graph is built](/docs/property-graph).

**MCP stands for Model Context Protocol.** It is an open protocol that lets AI assistants and agents connect to data and tools in one standard way, the way a browser connects to any website. An AI application that speaks MCP can use any MCP server without custom integration code.

Casafari runs an MCP server for real estate data at `https://mcp.casafari.com/`: 22 tools for comparables and valuations, area insights and agency analysis on Casafari's property graph.

## MCP server, MCP client and AI agent

- **MCP server.** Publishes *tools*: named actions with a description and a typed input and output schema. Casafari's server is one; [all its tools](/docs/tools) are documented here.
- **MCP client.** The application that connects to servers on the AI's behalf and runs the tool calls: [Claude, ChatGPT, Claude Code, Cursor, VS Code](/docs/connect) and any client that supports remote servers. In Claude and ChatGPT a remote MCP server is added as a *custom connector*.
- **AI agent.** The model plus the client, working through a task: it lists the tools, picks the ones that answer the question, calls them and reads the results, and can call more tools before it answers.

## How an MCP call works

1. The client connects to the server over Streamable HTTP and signs in ([MCP authorization](/docs/authentication)).
2. It asks for `tools/list` and gets every tool the account may use, each with its description and input schema.
3. The model chooses a tool and the client sends `tools/call` with the arguments, as JSON-RPC.
4. The server answers with the result, typed by the tool's output schema; the model reads it and continues.

An example for one tool is at the bottom of every tool page, e.g. [`comps_get-comparables`](/docs/comparables-valuation/get-comparables).

## MCP vs API

An API is called by code a developer writes, with requests fixed in advance. An MCP server is called by an AI agent, which discovers the tools at run time and decides which to call from their descriptions. They are complementary: Casafari offers both, the MCP server for assistants and agents and the [REST API](/docs/rest) at `https://api.casafari.com` for your own code. [MCP vs REST API](/docs/parity) lines them up product by product.

## MCP security

The protocol leaves security to the server and the client. How Casafari's server handles sign-in, rights per call, read-only tools and quotas is on [MCP security](/docs/security).

## Examples

What people ask a real estate MCP server, and which tools answer it: [MCP server examples](/docs/examples).

## Questions and answers

### What does MCP stand for?

MCP stands for Model Context Protocol, an open protocol that lets AI assistants and agents connect to outside data and tools in one standard way.

### What is an MCP server?

An MCP server publishes tools (actions with typed inputs and outputs) that an AI client can discover and call. Casafari's MCP server, at https://mcp.casafari.com/, publishes real estate data tools.

### What is an MCP client?

An MCP client is the application that connects to MCP servers on the AI's behalf: Claude, ChatGPT, Claude Code, Cursor and VS Code are MCP clients. Claude and ChatGPT call a remote MCP server a connector.

### What is the difference between MCP and an API?

An API is called by code a developer writes; an MCP server is called by an AI agent, which discovers its tools, reads their descriptions and decides which to call. Casafari offers both: the MCP server for assistants and agents, the REST API for your own code.

### How do AI agents use MCP?

The agent's client lists the server's tools, the model picks the ones that answer the question, and the client calls them and passes the results back to the model, which can call more tools before it answers.
