_ registry / mcp streamable-http · checked 45m ago

plate-and-fork

https://wl-mcp.cordering.com

Registry code: 00f90bcc6e95c2c6

api record

Plate & Fork food-ordering tools: browse restaurants on the Plate & Fork platform and order directly from them. Call list_vendors to show the available restaurants and list_menu to show a restaurant's menu — both return a complete, self-contained HTML document that you must present by opening it as an HTML artifact, never by pasting the markup into the chat as text. To order: call prepare_order to resolve the requested items and obtain a confirmation token, then call place_order with that token to place a real order, and check_order to follow it. Prices are in RSD and all times are in the…

endpoint
https://wl-mcp.cordering.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is plate-and-fork live?
Yes — it answered the hub's last check (checked 45m ago). It answered 100% of checks over the last 30 days.
Is plate-and-fork free to use?
Yes — the hub reached it with no key and no payment.
What tools does plate-and-fork have?
10 tools: logout, prepare_order, place_order, submit_login_code, check_order, login, switch_account, list_accounts, ….
Is plate-and-fork safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.5%

90 days 98.8%· all time 98.8%

latency
238ms

last good check

priced tools
0

of 10 tools

_ answered our checks, 90 days 493 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • find restaurants to order from
  • show a restaurant menu
  • place a food order
  • check order status
takes → gives
text → data, web pages
tools
4 reads5 changes data1 moves money
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 10 tools
3 open 7 never probed 3 of 10 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • list_accounts reads open 13h ago

    Show which accounts are signed in, per restaurant, and which one is active. Useful when the user keeps separate work and personal accounts.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {},
      "additionalProperties": false
    }
    arguments 6 lines
  • list_menu reads open 13h ago

    Show the restaurant's menu to the user as a visual HTML document — a horizontally-scrollable category strip with item photos, names and prices. Present the returned HTML by opening it as an HTML artifact; do NOT paste the markup into the chat as text. (Ordering does not require this — prepare_order resolves item names on its own.)

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "clientId": {
          "type": "integer",
          "description": "clientId of the restaurant, from a list_vendors result. Omit only when the server is configured for a single restaurant."
        },
        "vendorId": {
          "type": "integer",
          "description": "vendorId of the restaurant, from a list_vendors result. Omit only when the server is configured for a single restaurant."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • list_vendors reads open 13h ago

    Find restaurants (vendors) available for ordering. This is the discovery entry point: each card shows the clientId and vendorId that list_menu and prepare_order need. Call it with no arguments to list every restaurant — that is the normal case. Returns a complete, self-contained HTML document of vendor cards (logo, address, phone, delivery fee) — restaurants open today first in colour, those closed today greyed out at the bottom. Present the returned HTML to the user by opening it as an HTML artifact; do not paste the markup into the chat.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "city": {
          "type": "string",
          "description": "City to filter by. Pass this ONLY when the user named a city themselves; never guess one from context, because a filter that matches nothing hides restaurants the user could have ordered from."
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • logout changes data unknown never probed

    Sign the user out. By default signs out of every restaurant; pass a clientId to sign out of one, and an account label to sign out just that account.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "label": {
          "type": "string",
          "description": "Account label to sign out, e.g. 'work'. Omit to sign out every account at that restaurant."
        },
        "clientId": {
          "type": "integer",
          "description": "clientId of the restaurant to sign out of. Omit to sign out everywhere."
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • prepare_order changes data unknown never probed

    Resolve a natural-language food order (one or more items) to concrete menu items and return a summary plus a confirmation token. Does NOT place the order. Call place_order with the returned token to actually place it. Delivery is as soon as possible by default; pass 'date' to ask for a later time instead. Each call covers one delivery, so an order for more than one day means one call per day. The restaurant may still refuse a time it is not open for.

    mcp-tool

    {
      "type": "object",
      "required": [
        "items",
        "deliveryAddress"
      ],
      "properties": {
        "date": {
          "type": "string",
          "description": "Delivery date-time as an ISO-8601 UTC instant, e.g. '2026-07-25T12:00:00Z'. Must be in the future. Defaults to 5 minutes from now (as soon as possible) — only pass this when the user asks for a specific time."
        },
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "item"
            ],
            "properties": {
              "item": {
                "type": "string",
                "description": "Menu item name, e.g. 'Margherita'."
              },
              "size": {
                "type": "string",
                "description": "Requested size by name, e.g. '33cm' or 'Large'. Selects that size variant of the item; omit for the standard size. A size the item is not available in is rejected with the list of sizes it does offer."
              },
              "extras": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Extra ingredients to add to this item, by name, e.g. ['Šunka']. Each must be one of the extras that item offers (its own composition ingredients are not addable); repeat a name to add it twice."
              },
              "quantity": {
                "type": "integer",
                "format": "int32",
                "description": "Quantity for this item, at least 1. Defaults to 1 if omitted."
              }
            }
          },
          "description": "The item(s) to order — one or more lines, each with an item name, an optional quantity (default 1), an optional size, and optional extra ingredients by name."
        },
        "notes": {
          "type": "string",
          "description": "Optional notes for the vendor."
        },
        "cutlery": {
          "type": "boolean",
          "description": "Whether to ask the restaurant to include disposable cutlery. Only pass this when the user says either way; omit to leave it to the restaurant's default. Ignored (with a note) by vendors that do not offer it."
        },
        "clientId": {
          "type": "integer",
          "description": "clientId of the restaurant, from a list_vendors result. Omit only when the server is configured for a single restaurant."
        },
        "vendorId": {
          "type": "integer",
          "description": "vendorId of the restaurant, from a list_vendors result. Omit only when the server is configured for a single restaurant."
        },
        "bringTerminal": {
          "type": "boolean",
          "description": "Whether the courier should bring a card terminal so the order can be paid by card on delivery. Pass true when the user wants to pay by card, false for cash; omit when they do not say. Ignored (with a note) by vendors that cannot take card on delivery."
        },
        "deliveryAddress": {
          "type": "string",
          "description": "Delivery address text, e.g. 'Orlovica Pavla 26'."
        }
      },
      "additionalProperties": false
    }
    arguments 70 lines
  • place_order moves money unknown never probed

    Place an order previously staged by prepare_order. Requires the confirmationToken returned by prepare_order. This causes a real order to be sent to the vendor.

    mcp-tool

    {
      "type": "object",
      "required": [
        "confirmationToken"
      ],
      "properties": {
        "confirmationToken": {
          "type": "string",
          "description": "The confirmationToken returned by prepare_order."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • submit_login_code changes data unknown never probed

    Complete a sign-in started by login, using the 'code' value the user copied from the browser address bar. On success the user can place orders from that restaurant.

    mcp-tool

    {
      "type": "object",
      "required": [
        "code"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "The code value copied from the redirect URL after signing in."
        },
        "label": {
          "type": "string",
          "description": "Optional label for this account, e.g. 'work' or 'personal'. Defaults to the email address on the account."
        },
        "clientId": {
          "type": "integer",
          "description": "clientId of the restaurant being signed in to. Omit if only one sign-in is in progress."
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • check_order reads unknown never probed

    Check the current status of an order the user has already placed, using the order number returned by place_order. Reports whether the restaurant has accepted it, whether it is on its way, and whether it has finished (delivered or declined). There is no background tracking and no notification: call this again when the user asks, and only until the order is reported as finished.

    mcp-tool

    {
      "type": "object",
      "required": [
        "orderId"
      ],
      "properties": {
        "orderId": {
          "type": "integer",
          "description": "The order number returned by place_order."
        },
        "clientId": {
          "type": "integer",
          "description": "clientId of the restaurant the order was placed with, from the list_vendors result. Omit only when the server is configured for a single restaurant."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • login changes data unknown never probed

    Start signing the user in to a restaurant so they can place orders. Browsing the menu never needs this — only ordering and saving an address do. Returns a URL the user must open in a browser to sign in with Google or Apple; afterwards they copy the 'code' value from the address bar and you call submit_login_code. Each restaurant has its own login, so this must be done per restaurant.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "clientId": {
          "type": "integer",
          "description": "clientId of the restaurant to sign in to, from a list_vendors result. Omit only when the server is configured for a single restaurant."
        }
      },
      "additionalProperties": false
    }
    arguments 11 lines
  • switch_account changes data unknown never probed

    Choose which signed-in account to order with at a restaurant, e.g. to switch between work and personal. The account must already be signed in via login.

    mcp-tool

    {
      "type": "object",
      "required": [
        "label"
      ],
      "properties": {
        "label": {
          "type": "string",
          "description": "Account label to make active, e.g. 'work'."
        },
        "clientId": {
          "type": "integer",
          "description": "clientId of the restaurant. Omit only when the server is configured for a single restaurant."
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 00f90bcc6e95c2c6.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/00f90bcc6e95c2c6/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/00f90bcc6e95c2c6/badge.svg)](https://brick.blue/agent/00f90bcc6e95c2c6?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.