The Final MCP server is the official Model Context Protocol server for
Final, the commerce platform for custom point of sale.
One remote endpoint, https://ai.finalpos.com/mcp, gives an AI agent access to
every Final product the merchant allows:
Flow, the custom POS app builder: describe a checkout and the agent builds
it from vetted screen blueprints, grounded in Final's version-locked POS APIs,
then validates it, returns a live preview link and deploys it to payment
terminals, tablets and kiosks. Counter POS, self-checkout, restaurant ordering,
kitchen displays and in-person payment apps.
Search the Final POS REST API documentation.
2026-11-08
อัปไทม์การตรวจสอบ 1 ครั้งล่าสุด
ดาว
—
เครื่องมือ
—
อัปไทม์
0%
Hub, the back office behind those apps: products and catalog, stock and
purchase orders, orders, customers, sales reports, team and roles, outlets,
taxes, bookings.
You sign in with your Final account (OAuth 2.1) and choose the company and what
the agent may do. There is nothing to install or run locally.
Endpoint
https://ai.finalpos.com/mcp
Transport
Streamable HTTP
Auth
OAuth 2.1 with PKCE (sign in with Final), or a fai_ connection key as Authorization: Bearer
Registry name
com.finalpos/final
Acts as
The person who connected it, on one company, within the packs they allowed
Cost
Free to connect; what the agent does follows your Final plan, as if you did it in Final
Connect
Most clients only need the URL. They open a Final sign-in page where you pick
the company and the packs, then they're connected.
Settings → Apps & Connectors → Advanced settings → Developer mode, then
Create with the URL https://ai.finalpos.com/mcp.
Claude Code
claude mcp add --transport http final https://ai.finalpos.com/mcp
Run /mcp in Claude Code and choose Authenticate. Or install the plugin,
which adds the server together with the Final playbook skill. Inside Claude
Code:
The extension adds the server, the Final playbook and commands:
/final-pos:stock, /final-pos:sales, /final-pos:new, /final-pos:preview,
/final-pos:validate and /final-pos:deploy. Sign in once with
/mcp auth final inside Gemini CLI. To add only the server:
gemini mcp add --transport http final https://ai.finalpos.com/mcp
Create a connection key at ai.finalpos.com/connections.
It is shown once, and the page prints the exact snippet for each client. For
Codex, add this to ~/.codex/config.toml:
Any other client: POST https://ai.finalpos.com/mcp with
Authorization: Bearer fai_YOUR_KEY.
Keys that start with sk_ (Flow) or fpm_ (Hub) belong to those products'
own servers and are not accepted here. Create a fai_ key instead, or use OAuth.
Check that it works
Ask your agent: "Use Final to tell me which company you're connected to and
which packs you can use." It calls get_connection and list_packs.
What your agent can do
Tools are grouped in packs. When you connect you choose which packs the
agent may use, and those are also the OAuth scopes. To keep the model's context
small, a connection lists only a few packs at a time. The core tools reach the
rest: find_tools searches every allowed pack, and call_tool calls any
allowed tool by name.
Pack
Product
What it covers
Listed by default
catalog
Hub
Products, variants, categories, options, modifiers, product photos and the media library
Orders, refunds and e-commerce order sync (read-only: the till takes payments)
customers
Hub
Customer records, notes, order history and customer import
reports
Hub
Financial summary, sales and payment breakdowns, employee sales, sessions, transactions, record export
team
Hub
Team members, roles and permissions
store
Hub
Outlets, stations, taxes and Hub extensions
bookings
Hub
Bookable services: rules, resources, availability, holds and confirmations
build
Flow
Build and deploy Final POS apps: API grounding, blueprints, flow files, preview sandboxes, validation, deploy
✓
build_data
Flow
Custom tables (the app database), the secrets vault and Flow extensions
Tool names carry their product: hub_get_products, hub_find_low_stock,
flow_create_flow, flow_deploy_flow. TOOLS.md lists every
tool, with its pack, whether it changes data, and its arguments.
"Build a coffee-shop kiosk with a product grid, modifiers, a cart and card payments, then give me a preview link."
"Add a tip screen to my counter app and validate it."
"Create a self-checkout flow for a small grocery store with barcode scanning and a receipt screen."
"Ship the latest version of my self-checkout flow."
An app build usually runs flow_get_scaffold → flow_create_flow →
flow_lookup_command_frame (grounding) → flow_get_blueprint →
flow_write_flow_files → flow_validate_flow → flow_start_preview, and
returns a live preview URL. Everything the agent builds also appears in the
Final builder, where every file write is a restorable checkpoint.
Running the store (Hub)
"Which products are below their reorder point at the Main Street outlet? Draft a purchase order for the usual supplier."
"Compare last week's sales by category with the week before."
"Add these 40 products from the attached spreadsheet, with photos."
"Who were my top ten customers this month, and what did they buy?"
"Set up a 45-minute massage as a bookable service with two therapists."
Safety and permissions
Your role still applies. Every Hub call runs as the person who
connected, and Hub checks their live role on each call. Owner-only actions stay
owner-only.
Packs are the permission. The agent can only call tools in the packs you
allowed. You can change packs or disconnect at any time at
ai.finalpos.com/connections, and
disconnecting revokes every token at once.
Writes are labelled. Read tools carry readOnlyHint, and deploys and
deletes carry destructiveHint, so clients can ask before acting. The server
tells agents to confirm deploys, deletes and bulk changes with you.
Money stays on the till. Taking payments, refunding and voiding orders
are not available over MCP.
Secrets never pass through the model.flow_request_secret asks you to
enter an API key in the builder.
Everything is logged. The Connections page shows each connected client
and every call it made, live.
Flow limits: Flow allows 30 preview boots, 12 builds and deploys, and
300 file writes per hour.
Privacy and support
What Final keeps. The connection (who made it, the company and the
packs), the token it uses to reach Hub and Flow (encrypted), and a log of
each tool call: the tool, the outcome, how long it took, and redacted
previews of the arguments and result. You see that log on the
Connections page.
What Final doesn't see. Your conversation. MCP clients send tool calls,
not the chat around them.
Disconnecting deletes the stored token and revokes every token issued to
that connection.
Setups made before the gateway may still use https://flow.finalpos.com/api/mcp
with a Flow sk_ key (registry name com.finalpos.build/final-flows). It keeps
working, but new setups should use https://ai.finalpos.com/mcp, which includes
Flow.
FAQ
What is the Final MCP server?
It is the official MCP server for Final POS. One remote URL,
https://ai.finalpos.com/mcp, lets an AI assistant read and manage a
merchant's Final back office (Hub) and build point-of-sale apps (Flow).
Can ChatGPT or Claude manage my Final POS inventory?
Yes. Allow the inventory pack when you connect. The agent can check stock
levels, find low stock, suggest reorders, raise purchase orders and record
received goods.
Can an AI agent build a POS app on Final?
Yes. With the build pack the agent creates a flow, writes the app against
Final's version-locked APIs and vetted screen blueprints, validates it, and
returns a live preview URL. You launch it from the Final builder.
Do I need an API key?
No, if your client supports OAuth (Claude, ChatGPT, Claude Code, Cursor,
Gemini CLI, VS Code): just sign in with Final. Codex and scripts use a fai_
key from ai.finalpos.com/connections.
Which company does it act on?
The one you pick when you connect. If your account has several, the agent can
call switch_company.
Can the agent take payments or issue refunds?
No. Payments, refunds and voids happen on the till. Orders are read-only over
MCP.
Why does my agent only see a few tools?
Clients put every listed tool into the model's context, and quality drops with
long lists. The agent finds the rest with find_tools, calls them with
call_tool, or lists a whole pack with enable_packs.
Is there a cost?
Connecting is free. What the agent does is billed like the same work done in
Final yourself, under your Final plan.
Where are the Final POS API docs?
At finalpos.com/docs. An agent building an app
doesn't need them separately: the build pack grounds every call against
Final's version-locked APIs (flow_lookup_pos_api,
flow_lookup_command_frame).
About this repository
This repo holds the public setup guide, the MCP Registry entries
(server.json, legacy/), the Gemini CLI extension
(gemini-extension.json, GEMINI.md, commands/), the Claude Code and
Cursor plugin marketplaces (.claude-plugin/, .cursor-plugin/, and
plugins/final/, which both share) and the generated
tool reference with its machine-readable twin catalog.json,
which the server card at https://ai.finalpos.com/.well-known/mcp/server-card.json
also reads. GEMINI.md and the Claude skill are the same
playbook, and CI checks that they match. The server itself is hosted by Final;
no code from this repo runs on your machine.