streamable-httpApache-2.0updated 1mo ago
Build custom point of sale, kiosk, self-checkout, KDS & in-person payment apps with AI agents — from Gemini CLI, Claude Code, Cursor, ChatGPT, or any MCP client.
What can you do with Final POS?
Final lets anyone create their own POS — every pixel, every permission, every interaction — and run it on any hardware: desktop, tablet, mobile, kiosk, payment terminal, line buster, or menu board, with integrated card payments in 24+ countries.
This repo is the official home for connecting your own AI agent to Final. It ships:
- A Gemini CLI extension (this repo installs directly).
- The hosted Final Flows MCP server — 20 tools for grounded API lookups, vetted screen blueprints, flow file writes, live sandbox previews, validation gates, and deploys.
- The Final docs MCP server — search the Final POS REST API.
- Setup snippets for Claude Code, Cursor, ChatGPT, and any MCP client.
Everything your agent builds appears live in the Final builder: the app shows up in your home grid, the agent's session appears as a chat, and every file write is a restorable checkpoint.
Get an API key
All clients authenticate with a Final organization API key (sk_...):
- Sign in at build.finalpos.com.
- Open a flow, then in the chat rail click the cable icon → "Connect your AI tool".
- Mint a key — it is shown once, so copy it right away.
Install
Gemini CLI
gemini extensions install https://github.com/Final-Commerce/final-pos-mcp
You'll be prompted for your FINAL_API_KEY during install (stored in your
system keychain). Change it later with:
gemini extensions config final-pos
Then start building:
/final-pos:new a coffee-shop kiosk with a product grid, cart, and card payments
/final-pos:preview # live sandbox preview URL
/final-pos:validate # run the full gate suite
/final-pos:deploy # ship it
Claude Code
claude mcp add final-flows --transport http https://build.finalpos.com/api/mcp \
--header "Authorization: Bearer sk_YOUR_KEY"
Cursor
Or add to ~/.cursor/mcp.json manually:
{
"mcpServers": {
"final-flows": {
"url": "https://build.finalpos.com/api/mcp",
"headers": { "Authorization": "Bearer sk_YOUR_KEY" }
}
}
}
ChatGPT and any other MCP client
The server speaks standard Streamable HTTP:
- Endpoint:
https://build.finalpos.com/api/mcp - Auth header:
Authorization: Bearer sk_YOUR_KEY(orx-api-key: sk_YOUR_KEY)
In ChatGPT, add it as a connector under Settings → Connectors (developer mode). Works the same in VS Code, Windsurf, Zed, and anything else that speaks MCP.
What your agent can do
| Category | Tools |
|---|---|
| Grounding | lookup_command_frame, lookup_pos_api, lookup_engine_component, list_blueprints, get_blueprint, get_scaffold |
| Flow lifecycle | list_flows, create_flow, connect_chat, log_message, read_flow_files, write_flow_files, delete_flow_files |
| Preview & ship | start_preview, sync_preview, get_preview_status, stop_preview, validate_flow, open_in_builder, deploy_flow |
A typical build: get_scaffold → create_flow → ground every UI call in
lookup_command_frame → adapt a vetted blueprint → write_flow_files →
validate_flow → start_preview → hand you a live URL.
All tool calls are scoped to your own organization's flows. Rate limits per key: 30 preview boots/hour, 12 builds+deploys/hour, 300 file writes/hour.
Security
- Your API key is org-scoped and revocable; the secret is never stored by this extension repo — Gemini CLI keeps it in your system keychain.
- The MCP servers are hosted by Final; no code from this repo runs locally except prompt/context files.
- Agents cannot touch engine-owned files, and every deploy passes guardrail, typecheck, and secret scans.
License
Apache-2.0 © Final Commerce
Install
Add Final POS to your client. Pick the one you use.
claude mcp add --transport http final-pos https://build.finalpos.com/api/mcpcodex mcp add final-pos --url https://build.finalpos.com/api/mcp{
"mcpServers": {
"final-pos": {
"url": "https://build.finalpos.com/api/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"final-pos": {
"type": "http",
"url": "https://build.finalpos.com/api/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"final-pos": {
"url": "https://build.finalpos.com/api/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"final-pos": {
"serverUrl": "https://build.finalpos.com/api/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance16/25
- Trust16/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 35 days ago
- Has a release history
- Repository is not archived
- Licensed Apache-2.0
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 1.0.1Latest | Jul 28, 2026 |
| 1.0.0 | Jul 3, 2026 |