Koskamo

Lokuli MCP

An official MCP server enabling AI agents to search for local service businesses, retrieve pricing quotes from professionals, and book appointments on merchant calendars across the United States.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Lokuli MCP logo, by LokuliVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Lokuli
MCP endpoint (Streamable HTTP)
https://lokuli.com/mcp
Vendor documentation

What you can do with it

  • Find local businesses by service type and location
  • Request price quotes from local professionals
  • Book appointments on open calendar slots
  • Check service coverage in specific areas

Source and maintenance

Vendor evidenceRegistry 1.2.0

Protocol and capabilities

Server
lokuli 1.2.0
MCP protocol
2025-06-18
Tools
6 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Lokuli (said "locally") books local service businesses and gets prices from them. Businesses bookable on Lokuli are mostly in California; getting prices (request_quotes) works anywhere in the US. To book a business on Lokuli: find_businesses (or get_business with its lokuli.com/shop link), then get_available_times, then book_appointment. The person confirms by text before anything is booked, and pays at the business. For a business that isn't on Lokuli, or to compare prices, use request_quotes: Lokuli phones pros near the person about the day and time they want and texts back prices. Always get the person's name and US mobile number first and tell them a text is coming.

Tools

6 advertised

request_quotes — Get prices from local pros
Advertised by the server during the last successful anonymous check.
Open-world

Has Lokuli phone local service businesses near a US zip code (anywhere in the US) to ask whether they can do a job at the day and time the user wants, and what they'd charge. Lokuli first texts the user a confirmation link; calls start only after they tap it, and prices come back to them by text. Calls go out Monday–Saturday, 11am–6pm local time; a request made outside those hours waits for the next opening. Requires the service, the 5-digit zip, the day and time, and the user's US mobile number. Free for the user. A service that starts with the word "test" (for example "test house cleaning") sends the text and link but calls no business.

request_quotes input schema
{
  "type": "object",
  "required": [
    "service",
    "zip",
    "date",
    "time",
    "phone"
  ],
  "properties": {
    "zip": {
      "type": "string",
      "description": "5-digit zip code where the service is needed"
    },
    "date": {
      "type": "string",
      "description": "The day they want, YYYY-MM-DD (today through 60 days ahead)"
    },
    "name": {
      "type": "string",
      "description": "The user's first name (optional)"
    },
    "time": {
      "type": "string",
      "description": "The time they want that day, like \"10:00 AM\" or \"14:30\""
    },
    "phone": {
      "type": "string",
      "description": "The user's US mobile number; the confirmation link and the prices are texted here"
    },
    "details": {
      "type": "string",
      "description": "Anything a shop needs to quote: size, make/model, problem (optional)"
    },
    "service": {
      "type": "string",
      "description": "What they need, in plain words: \"house cleaning\", \"brake repair\", \"plumber for a leaking water heater\""
    },
    "business": {
      "type": "string",
      "description": "Optional: the slug of a business to call first, then nearby pros"
    }
  }
}
request_quotes annotations
{
  "title": "Get prices from local pros",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
find_businesses — Find local businesses on Lokuli
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches Lokuli for local service businesses near a US zip code or city. Most businesses on Lokuli are in California, a few in other states. Understands everyday and Spanish wording ("deep clean", "fade", "mani pedi", "limpieza de casa"). Returns businesses that can be booked through Lokuli, with their services, prices and service ids, each marked with how it matched (name, service, synonym, or trade, meaning the same kind of business), and, separately, businesses from public records that are not on Lokuli and can't be booked.

find_businesses input schema
{
  "type": "object",
  "required": [
    "service"
  ],
  "properties": {
    "zip": {
      "type": "string",
      "description": "5-digit zip code to search near"
    },
    "city": {
      "type": "string",
      "description": "City, if there's no zip (e.g. \"Montebello\")"
    },
    "limit": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1,
      "description": "Most results per group (default 6)"
    },
    "service": {
      "type": "string",
      "description": "What the person needs, in plain words: \"haircut\", \"dog grooming\", \"brake repair\""
    }
  }
}
find_businesses annotations
{
  "title": "Find local businesses on Lokuli",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_business — Get a business's services, prices and hours
Advertised by the server during the last successful anonymous check.
Advertised read-only

Details of one business on Lokuli: services with prices, lengths and service ids, team members, hours, address, Lokuli reviews, and how booking works there (confirmed by the business or instantly; paid at the business, or on its booking page with a card). Takes the business's slug or its lokuli.com/shop/... link.

get_business input schema
{
  "type": "object",
  "required": [
    "business"
  ],
  "properties": {
    "business": {
      "type": "string",
      "description": "The business's slug or its lokuli.com/shop/... link"
    }
  }
}
get_business annotations
{
  "title": "Get business details",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_available_times — Get open appointment times
Advertised by the server during the last successful anonymous check.
Advertised read-only

Open times for one service at a business, from the business's live Lokuli calendar (the same one its page and apps use). Returns each open slot's start time (ISO) and a label in the business's time zone.

get_available_times input schema
{
  "type": "object",
  "required": [
    "business",
    "service_id"
  ],
  "properties": {
    "date": {
      "type": "string",
      "description": "First day to check, YYYY-MM-DD (default: today)"
    },
    "days": {
      "type": "integer",
      "maximum": 7,
      "minimum": 1,
      "description": "How many days from date (default 3)"
    },
    "business": {
      "type": "string",
      "description": "The business slug or lokuli.com/shop/... link"
    },
    "staff_id": {
      "type": "string",
      "description": "Optional team member id, to see only their times"
    },
    "service_id": {
      "type": "string",
      "description": "The id of one of the business's services"
    }
  }
}
get_available_times annotations
{
  "title": "Get open times",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
book_appointment — Book an appointment (confirmed by text)
Advertised by the server during the last successful anonymous check.
Open-world

Holds an open time at a business for a person and texts them a link to confirm it. Nothing is booked, and the business isn't told, until they tap Confirm within 15 minutes; otherwise the time is released. After they confirm, the business accepts the request (or it's confirmed at once at instant-book businesses). Payment is at the business. Requires the person's name and US mobile number; the confirmation link is texted to that number. Businesses that take a card when booking return a booking page link instead of a hold.

book_appointment input schema
{
  "type": "object",
  "required": [
    "business",
    "service_id",
    "start",
    "name",
    "phone"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The person's name"
    },
    "email": {
      "type": "string",
      "description": "Optional email for the business's confirmation"
    },
    "notes": {
      "type": "string",
      "description": "Optional note for the business (300 characters max)"
    },
    "phone": {
      "type": "string",
      "description": "The person's US mobile number; the confirmation link is texted here"
    },
    "start": {
      "type": "string",
      "description": "The open slot's start time (ISO), exactly as listed in the business's open times"
    },
    "business": {
      "type": "string",
      "description": "The business slug or lokuli.com/shop/... link"
    },
    "staff_id": {
      "type": "string",
      "description": "Optional team member id"
    },
    "service_id": {
      "type": "string",
      "description": "The id of the service to book"
    }
  }
}
book_appointment annotations
{
  "title": "Book an appointment",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
check_coverage — Check if Lokuli serves a zip code
Advertised by the server during the last successful anonymous check.
Advertised read-only

Checks whether Lokuli can call pros near a US zip code (any zip code in the 50 states and DC). Returns the place, state and time zone.

check_coverage input schema
{
  "type": "object",
  "required": [
    "zip"
  ],
  "properties": {
    "zip": {
      "type": "string",
      "description": "5-digit zip code"
    }
  }
}
check_coverage annotations
{
  "title": "Check if Lokuli serves a zip code",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
559 ms
95th percentile latency
559 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 559 ms · metadata changed · 6 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http lokuli-mcp https://lokuli.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add lokuli-mcp --url https://lokuli.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable lokuli-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "lokuli-mcp": {
      "url": "https://lokuli.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "lokuli-mcp": {
      "type": "streamableHttp",
      "url": "https://lokuli.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start lokuli-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "lokuli-mcp": {
      "type": "http",
      "url": "https://lokuli.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http lokuli-mcp https://lokuli.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "lokuli-mcp": {
      "url": "https://lokuli.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "lokuli-mcp": {
      "serverUrl": "https://lokuli.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Lokuli MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Lokuli MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing