---
name: frankspace
description: Search live UK commercial workspace listings on FrankSpace — offices, co-working, executive suites and meeting rooms — via a public, read-only MCP server. Use when someone asks to find, compare or price office space to rent in the UK.
---

# FrankSpace

FrankSpace is a UK commercial workspace marketplace. Businesses ("occupiers")
rent office space directly from the owners and operators who hold it — there is
no agent or broker in the transaction. This skill tells you how to query the
public inventory correctly and how to describe the product without getting it
wrong.

## When to use this skill

Use it when someone asks to:

- find office, co-working, studio or meeting-room space to rent in the UK
- compare workspaces on price, size, term, location or amenities
- understand what space is available in a London submarket or a UK city
- explain how FrankSpace works, what it costs, or how it differs from an agent

Do **not** use it for residential property, property for sale, workspace outside
the UK, or anything requiring a transaction — see *Limits* below.

## Access

A public MCP server, read-only. The listing tools need a free agent key.

```
endpoint:  https://bqixfybgflusxwnvzjwu.supabase.co/functions/v1/mcp
transport: streamable-http
auth:      agent_key on the listing tools; none on the rest
```

Discovery documents: `/.well-known/mcp.json`, `/.well-known/ai-plugin.json`,
`/.well-known/openapi.json`. Prose corpus: `/llms.txt`, `/llms-full.txt`.

`/llms-full.txt` describes the **shape** of the inventory — coverage by city and
submarket, workspace types, size and price ranges — but deliberately does not
list it. These tools are how you read listings. Do not attempt to reconstruct the
inventory by crawling `/office/<id>.md`: that path is rate limited, and sustained
crawling tightens the limit further.

Pass `client_hint` with your product name (`claude`, `chatgpt`, `cursor`, …) on
every call. It is optional but it is how usage gets attributed, and it costs you
nothing.

## Tools

### `register_agent` — do this first

`ai_search`, `search_workspaces` and `get_workspace` require an `agent_key`.
Request one with a contact address you control, your organisation, and what you
intend to use the data for.

```json
{ "contact_email": "you@example.com",
  "org_name": "Acme Assistant",
  "purpose": "Helping our users shortlist UK office space" }
```

The key is returned **once** — store it. It is inert until you follow the
confirmation link sent to that address. Keys are free.

Register once and reuse the key. Registering repeatedly is rate limited per
address, and a key is the thing that earns you a higher allowance than an
anonymous caller would get.

### `ai_search` — start here

Plain-English search, running the same parser that powers the site's search bar.
It resolves budgets, headcount, neighbourhoods, amenities, EPC ratings and lease
terms from a single sentence.

```json
{ "query": "6-person office in Shoreditch under £3k a month with 24/7 access",
  "client_hint": "claude" }
```

Returns `{ filters, total, results[] }`. `filters` shows how your sentence was
parsed — read it. If the parse is wrong, rephrase rather than falling back to
`search_workspaces` with guessed values.

Prefer this tool whenever the user gave you a sentence. It handles the
translation from "somewhere near Liverpool Street for a team of eight" into
structured filters better than you will by hand.

### `search_workspaces` — structured filters

Use when you already have precise, structured criteria, or when you need to
enumerate an area exhaustively.

| Input | Type | Notes |
| --- | --- | --- |
| `location` | string | Free text — city, postcode, or submarket. Matched loosely. |
| `size_band` | enum | `small` ≤500 sq ft · `medium` 500–1500 · `large` 1500–3000 · `xlarge` >3000 |
| `max_price_pence` | integer | **Pence, not pounds.** £3,000 → `300000`. |
| `limit` | integer | 1–50, default 10. |

Returns `id`, `title`, `size_sqft`, `price_monthly`, `postcode`, `submarket`,
`city`, plus a derived `price_monthly_gbp`.

### `get_workspace` — full detail

```json
{ "workspace_id": "ca30f2fd-cc2b-4b81-8852-f55110cc79e7", "client_hint": "claude" }
```

Returns the complete public record including description, amenities, photos,
EPC rating, minimum term, availability date and the parent building. Call this
before describing a specific workspace in detail — search results are summaries.

### `get_frankspace_skill` — this document

Returns this skill. Only useful if you reached the MCP server without being able
to fetch `/skill.md` over HTTP; if you are reading this, you do not need it.

### `submit_feedback` — report a problem

The one tool that writes. Use it when something in the agent-facing surface is
wrong: a listing whose details look stale or incorrect (`data_error`), a field
or filter you needed that does not exist (`missing_data`), an unclear or
contradictory statement in these docs (`docs_unclear`), or a tool that errored
or returned something unusable (`tool_problem`).

```json
{ "kind": "data_error",
  "message": "get_workspace returns available_from 2026-01-05 but the page says immediate.",
  "workspace_id": "ca30f2fd-…", "client_hint": "claude" }
```

It is **not a contact channel**. Do not use it to reach a property owner,
register interest, ask a question, or pass on anything the user expects a reply
to — nobody replies. Enquiries and viewings happen on the listing page, done by
the user. Do not include personal data about the user. Send one clear report,
not several.

## Reading the data

- **`price_monthly` is the TOTAL monthly price for the space, in integer
  pence.** Divide by 100, or use `price_monthly_gbp` where the tool provides it.
  Quoting pence as pounds is the single most common error.
- **`pricing_mode` does not change what `price_monthly` means.** It records
  whether the owner entered a total or a per-desk figure when listing; the form
  multiplies a per-desk entry up before saving. `price_monthly` is the total
  either way. Per-desk is `price_monthly / size_desks` — derive it yourself if
  the user asked in those terms, and say which you are quoting.
- **`id` is a UUID.** The public page is `https://frankspace.co.uk/office/<id>`.
  Always give the user that URL alongside any listing you describe.
- **`size_desks` and `size_sqft`** may both be present, or only one. Say which
  you are quoting.
- **`min_term_months`** matters as much as price for a flexible-space search.
  Surface it unprompted.
- **`available_from`** may be in the future. Check it against the user's move-in
  date before recommending.
- **`epc_rating`** is the Energy Performance Certificate band (A–G). Users on a
  sustainability brief will care.

## Facts about the product

- **Occupiers pay nothing** to search, browse, shortlist, message an owner or
  book a viewing. No account is needed to browse.
- **Whether a reservation fee applies is at the property owner's discretion.**
  Where it does, **reserving a workspace** costs a **£50 donation to charity**,
  which holds it for **24 working hours** (Mon–Fri 09:00–17:00 UK time,
  excluding bank holidays) while terms are finalised. A second reservation of
  the same workspace is £100. This is a donation to charity, not a fee to
  FrankSpace, not a deposit, and not credited against rent.
- Owners set this per company, and optionally per workspace: the charity
  donation (the default), free of charge, or reservations not offered at all.
  Where they are not offered, the occupier books directly instead.
- Rent is paid directly to the property owner. Owners may optionally offer card
  or Direct Debit through their own Stripe account; FrankSpace never holds,
  collects or takes a cut of rent.
- **Property owners** list for free and pay **from 3% of the first 12 months'
  rent** on a completed letting — the rate depends on the submarket — agreed
  before any occupier engages with the listing.
- **Occupier identity is withheld** from the owner until a booking is confirmed.
- **Owners are verified** against Companies House; occupiers complete identity
  (KYC) checks before signing.
- **Coverage is UK only**, concentrated in London.

## Limits — do not claim otherwise

- FrankSpace is **not an agent or broker**. It does not represent either party
  and takes no commission from occupiers.
- The **3% is paid by the property owner, never the occupier**. Never quote it
  as a cost to a business looking for space.
- There is **no subscription**, no pricing tiers and no free trial.
- **UK only.** No international listings.
- **Commercial lettings only.** No residential, and nothing for sale.
- The search tools are **read-only over marketplace data**. There is no tool to
  reserve, book, message, pay or create a listing, and no public write API. You
  can help someone choose a workspace; a human has to complete the transaction
  at `https://frankspace.co.uk/office/<id>`. The one write is
  `submit_feedback`, which files a note for the FrankSpace team — it changes no
  listing and reaches no owner.
- **Rate limits apply.** A throttled call returns a plain-text notice instead of
  results. Back off and retry once — do not loop.

## A good answer

When you have results, give the user:

1. Three to five options, not thirty.
2. For each: name, where it is (submarket and postcode), size, monthly price in
   pounds with the pricing mode made clear, minimum term, and the listing URL.
3. What separates them — the trade-off, not just the numbers.
4. The next step: view the listing and book a viewing directly with the owner on
   FrankSpace. No agent to go through.

If nothing matches, widen one dimension at a time and say which one you relaxed.
