# public-tools

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/ykarmouta/faireplace-public-mcp  
**npm Downloads (last month):** 96  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/public-tools-2

## Description
French rental tools: create & e-sign a lease, rent control, IRL, deposit, receipts (France).

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "public-tools": {
    "command": "npx",
    "args": ["-y","public-tools-2"]
  }
}
```

## Documentation & README

# FairePlace — Public MCP Server 🏠🇫🇷

[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-com.faireplace%2Fpublic--tools-blue)](https://registry.modelcontextprotocol.io/v0/servers?search=faireplace)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](./LICENSE)
[![Transport: Streamable HTTP](https://img.shields.io/badge/transport-Streamable%20HTTP-orange)](https://mcp.faireplace.com/mcp)
[![Auth: none](https://img.shields.io/badge/auth-none-lightgrey)](https://mcp.faireplace.com/mcp)

A **public, no-auth, remote MCP server** that exposes [FairePlace](https://faireplace.com)'s free **French residential rental** tools to AI agents (ChatGPT, Claude, Perplexity, Cursor…): create & **e-sign a lease** (bail), check **rent control**, revise rent (**IRL**), compute a **security deposit** or **rental yield**, get an **address risk** report, and generate **rental documents** (rent receipts, inventory, notices, and more).

> **Zero LLM inference server-side.** The server is a thin, deterministic proxy over FairePlace's public API — the *calling* agent pays for its own inference; FairePlace only runs Rust/Typst logic. Marginal cost ≈ 0.

**Endpoint:** `https://mcp.faireplace.com/mcp` · **Registry:** `com.faireplace/public-tools`

---

## Quick start

Add the remote server to any MCP client:

| Client | How |
|---|---|
| **Claude** (Desktop / claude.ai) | Settings → Connectors → Add custom connector → `https://mcp.faireplace.com/mcp` |
| **Cursor** | Settings → MCP → Add → Streamable HTTP → `https://mcp.faireplace.com/mcp` |
| **ChatGPT** (Custom GPT) | Import the OpenAPI at `https://mcp.faireplace.com/openapi.json` as an Action (auth: none) |
| **MCP Inspector** | `npx @modelcontextprotocol/inspector@latest` → connect to the URL |

No API key, no account. Ask your agent things like *"Check if a 1500 €/month rent is legal at 75001 Paris for a 45 m² 2-room"* or *"Create a furnished lease for a flat in Paris at 850 €"*.

## Tools (21)

**Data & compliance** (return JSON):

| Tool | Purpose |
|---|---|
| `check_rent_control` | Rent control verdict for an address (encadrement des loyers) |
| `get_reference_rent` | Reference rent (€/m²) for a rent-controlled quarter |
| `simulate_irl` / `simulate_irl_by_quarters` | Annual rent revision (IRL), explicit or server-resolved INSEE values |
| `calculate_deposit_restitution` | Security-deposit cap, restitution deadline, penalties |
| `simulate_rental_yield` | Gross/net yield + per-regime taxation (LMNP, micro-foncier…) |
| `check_address_risks` | Natural/technological risk report (Géorisques) |

**Lease creation** (the conversion tool):

| Tool | Purpose |
|---|---|
| `create_lease_draft` | Create a lease draft → returns a link to finalize & **e-sign** it (advanced eIDAS, PAdES-B-LT) on FairePlace |

**Document generation** (return a link that renders the PDF): `generate_quittance`, `generate_etat_des_lieux`, `generate_conge`, `generate_cautionnement`, `generate_avenant`, `generate_resiliation_amiable`, `generate_relance_impaye`, `generate_inventaire_mobilier`, `generate_notice_information`, `generate_reparations_locatives`, `generate_grille_vetuste`, `generate_charges_recuperables`, `generate_bordereau_restitution`.

## How the lease → signature flow works

```
agent → create_lease_draft(owner, logement, lease)
      → FairePlace stores an anonymous draft, returns draft_token
      → tool returns  https://mcp.faireplace.com/r?draft_token=…
user clicks the link
      → GET /r sets the draft_token cookie on .faireplace.com, 302 → app sign-up
      → on login, FairePlace ingests the draft and opens it on the Signature step
```

The server never hands back a signable document — signature stays behind FairePlace auth. Every link carries `utm_source=mcp` for attribution.

## Architecture

Intentionally a **thin adapter** — not a domain application. All business logic (rent-control data, IRL indices, legal document rendering) lives in FairePlace's Rust backend; this Worker only maps MCP tool calls to the public `/public/tools/*` HTTP endpoints and formats results.

- **Runtime:** Cloudflare Worker (`McpAgent`, Durable Object for session state).
- **Transport:** Streamable HTTP on `/mcp`.
- **Guardrail:** native per-IP rate limit (100 req / 60 s).
- **PDF delivery:** `/pdf/<slug>?p=<base64url payload>` serves an HTML page that fetches the PDF **browser-side** (avoids a same-zone Worker→origin block; no storage — the PDF is a local blob).

### Endpoints

| Path | Purpose |
|---|---|
| `/mcp` | MCP server (Streamable HTTP) |
| `/openapi.json` | Curated OpenAPI 3.1 for GPT Actions |
| `/.well-known/ai-plugin.json` | Plugin manifest |
| `/llms.txt` | Passive AI discovery |
| `/r` | Draft-resume → sets cookie → sign-up |
| `/pdf/<slug>` | On-demand PDF rendering (browser-side) |

## Development

```bash
npm install
npm run typecheck
npm run dev            # wrangler dev (local)
npm run inspect        # MCP Inspector
npm run deploy         # wrangler deploy (needs Cloudflare auth)
```

Config lives in `wrangler.jsonc` (`vars`: `API_BASE`, `WEB_BASE`, `SELF_BASE`, `DRAFT_REPRISE_URL`, `APP_SIGNUP_URL`).

## Discoverability

- **Official MCP Registry:** [`com.faireplace/public-tools`](https://registry.modelcontextprotocol.io/v0/servers?search=faireplace)
- **Glama:** [connector `com.faireplace/public-tools`](https://glama.ai/mcp/connectors/com.faireplace/public-tools)

## License

[MIT](./LICENSE) © 2026 FairePlace (Thinkylab SAS). Not legal advice — an aid for French rental workflows.

