Loppee
Server Details
Agent-first US business trust registry with neutral Trust Cards and local search.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 55 of 55 tools scored. Lowest: 3.3/5.
Many tools have overlapping purposes, particularly in search (search_businesses, search_category, search_jobs, lookup_business, recommend_businesses, compare_businesses) and admin operations (multiple list_ and decide_ tools). Descriptions are verbose but do not clearly differentiate tool boundaries, leading to potential confusion for an agent.
Tools generally follow a verb_noun pattern with underscores, but some names are excessively long (e.g., decide_admin_manual_verification_submission, set_admin_business_lifecycle) and mix tenses. Overall pattern is consistent enough for readability, but deviations exist.
With 55 tools, the server is overpopulated. The domain of a business directory/jobs platform would typically require fewer tools; many are narrowly scoped or redundant. The count feels excessive for the apparent purpose.
The tool set covers core workflows: search, messaging, reviews, jobs, business management, and admin operations. However, notable gaps exist: no tool for creating a business, managing verification directly, or full lifecycle control (e.g., deletion of business). This leaves agents with dead ends.
Available Tools
57 toolsapply_to_jobApply To JobIdempotentInspect
Apply to an active Loppee job on behalf of the calling customer account. Requires a customer personal agent key whose account_id matches the account_id argument and whose allowed_actions include apply_to_job. The seeker is never charged. The resume must be a base64 PDF, DOC, or DOCX file and is stored in a private bucket; employers and the applicant retrieve it only through scoped short-lived signed URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | ||
| resume | Yes | ||
| account_id | Yes | ||
| cover_note | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
clear_my_locationClear My Saved LocationIdempotentInspect
Remove the calling customer account's saved home location. Idempotent: clearing when nothing is saved returns available=false, never an error. After clearing, location-less searches for this customer fall back to the coarse IP-derived default. Requires a valid scoped customer personal-agent key whose account_id matches the account_id argument.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | The customer account id this personal-agent key belongs to (confirm with get_agent_identity). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
compare_businessesCompare BusinessesRead-onlyInspect
Compare published businesses by explicit v3 class and interaction-backed review-reputation context. Verified businesses precede Listed businesses; every row retains its exact disclosure. The response never reconstructs a hidden grade or exposes private reviewer weighting. Exposure-plan payment changes discovery reach and, when Sponsored ordering is active, labeled position-weighted exposure only within the same verification class and verified-review reputation band. It never changes business-profile publication, verification, review authority, reputation, moderation, class ordering, or reputation band. Loppee Jobs is a separate optional paid product; its billing affects job-posting activation only and never business verification or directory ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| business_ids | Yes | Two to twenty Loppee business ids to compare. Duplicates are de-duplicated. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
create_location_handoffAsk User for Precise LocationInspect
Create a short-lived Loppee consent link for the customer to approve browser location. Send the location_url to the user, then poll get_location_handoff. The assistant receives readiness and normal business results, never latitude or longitude. Requires an active database-backed customer personal-agent key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
decide_admin_manual_verification_submissionDecide Manual Verification SubmissionDestructiveIdempotentInspect
Approve or reject one current entity/license submission through Loppee's audited manual authority. Requires a team/admin-agent key with the separately granted complete_manual_verification action, all method-specific checks, a reason, a validity window for approval, and the exact type-to-confirm phrase. The database reauthorizes the exact key and derives the class; the agent cannot set a class or approve its own evidence. Insurance is not accepted by this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| outcome | Yes | ||
| source_url | No | ||
| observed_at | No | ||
| valid_until | No | ||
| confirmation | Yes | ||
| submission_id | Yes | ||
| identifier_match | No | ||
| source_authority | No | ||
| holder_name_match | No | ||
| verification_method | Yes | ||
| verified_service_scope | No | ||
| active_or_good_standing | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
explain_recommendationExplain RecommendationRead-onlyInspect
Explain one published business's v3 class, exact disclosure, interaction-backed review-reputation band, recommendation order, and commercial reach without reconstructing or exposing a hidden grade or private reviewer weighting.
| Name | Required | Description | Default |
|---|---|---|---|
| business_id | Yes | Loppee business id of a published Trust Card. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
get_admin_analyticsGet Back-office AnalyticsRead-onlyInspect
Read bounded Back-office operational and projected-revenue analytics. Requires a team/admin-agent key whose exact allowed_actions include view_financial; a view-only key cannot call it. This tool is read-only and never changes billing, placement, verification, or publication.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
get_admin_overviewGet Back-office OverviewRead-onlyInspect
Read the Loppee back-office queue totals and launch checks. Requires a team/admin-agent key whose exact allowed_actions include view. This is a Back-office tool; consumer and business-owner keys cannot call it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
get_admin_verification_caseGet Back-office Verification CaseRead-onlyInspect
Open one audited verification case file by business_id. Requires a team/admin-agent key with view. The response is the same minimized v3 projection used by the Back-office and never grants authority to change the business class.
| Name | Required | Description | Default |
|---|---|---|---|
| business_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
get_agent_capabilitiesGet Agent CapabilitiesRead-onlyInspect
Return the Loppee agent contract, endpoints, policy rules, and available MCP tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
get_agent_identityGet Agent IdentityRead-onlyInspect
Identify the calling agent from its API key: returns the account_id, scope_kind, label, and exact allowed_actions this key may perform. It also states explicitly that the connecting principal supplies and operates the external agent while Loppee issues only scoped API/MCP access. Call this first to confirm a key is wired correctly and to discover this agent's permissions before attempting any write tool. Requires a valid agent API key (X-LOPPEE-API-Key or Authorization: Bearer); returns an auth error when the key is missing or revoked.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
get_business_reviewsGet Business Reviews (paginated)Read-onlyInspect
Read a business's public reviews with the same pagination as its profile. Every review stays visible: a review backed by a Loppee-observed qualifying interaction is labelled Verified interaction and carries the public ranking eligibility marker; every other review is labelled Unverified with ranking_weight=0. The label applies only to that review, reveals neither the interaction channel nor private reviewer weighting, and never verifies, publishes, unpublishes, or vetoes the business.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 1-based page number (default 1). | |
| limit | No | Reviews per page (default 5, max 50). | |
| ratings | No | Star-rating filter: return only reviews with these ratings, e.g. [1] or [4,5]. Omit for all ratings. | |
| business_id | Yes | Loppee business id of a published business. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
get_location_handoffCheck Location RequestRead-onlyIdempotentInspect
Check whether the customer approved the Loppee location link. This returns only status and expiry; it never returns coordinates. Once ready, pass handoff_id as location_handoff_id to search_businesses, search_category, or recommend_businesses.
| Name | Required | Description | Default |
|---|---|---|---|
| handoff_id | Yes | Opaque handoff id returned by create_location_handoff. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
get_my_locationGet My Saved LocationRead-onlyIdempotentInspect
Read the calling customer account's saved home location (ZIP or precise point + label) — the persistent discovery anchor that search/recommend tools use automatically for this customer when no explicit location is passed. Discovery anchor ONLY: it never affects any business's verification class, review authority, review reputation, or recommendation eligibility. Requires a valid scoped customer personal-agent key whose account_id matches the account_id argument (call get_agent_identity first). Returns available=false when nothing is saved.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | The customer account id this personal-agent key belongs to (confirm with get_agent_identity). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
get_pricing_plansGet Loppee Pricing PlansRead-onlyInspect
Return Loppee's published exposure plans, feature bullets, branch add-ons, and promotions. Editing exposure-plan prices or promotions cannot change publication, verification class, review authority, reputation, moderation, or class ordering. Loppee Jobs is billed separately and affects job-posting activation only. Exposure-plan payment changes discovery reach and, when Sponsored ordering is active, labeled position-weighted exposure only within the same verification class and verified-review reputation band. It never changes business-profile publication, verification, review authority, reputation, moderation, class ordering, or reputation band. Loppee Jobs is a separate optional paid product; its billing affects job-posting activation only and never business verification or directory ranking.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
get_trust_cardGet Trust CardRead-onlyInspect
Fetch the public v3 Trust Card for one published business by business_id or domain_key. It returns the exact Verified or Listed class and disclosure, public profile facts, review context, commercial reach disclosure, allowed actions, citation, and optional owner-provided insurance with the fixed non-confirmation disclosure. It never exposes an owner completion meter or numeric verification metric.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_key | No | Normalized domain key such as example-com. | |
| business_id | No | Loppee business id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_admin_business_claimsList Business ClaimsRead-onlyInspect
Page the full business-ownership claim queue. Requires a team/admin-agent key with review_intake. This read never grants ownership or changes a claim.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| filter | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_admin_businessesList Back-office BusinessesRead-onlyInspect
Search and page the Loppee business-operations pipeline. Requires a team/admin-agent key with view. V3 results expose only the current Verified or Listed class and private operational completion, never a public numeric grade. This tool never edits a business.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | ||
| state | No | ||
| cursor | No | ||
| search | No | ||
| source | No | ||
| status | No | ||
| category | No | ||
| claim_status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_admin_manual_verification_submissionsList Manual Verification SubmissionsRead-onlyInspect
Read the private entity/license manual-review queue. Requires a team/admin-agent key whose exact allowed_actions include complete_manual_verification. Signed document links are short lived; raw storage references are never returned. Merely reading a document cannot mint Verified.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No | ||
| offset | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_admin_review_anomaliesList Review Anomaly FlagsRead-onlyInspect
Read the private flag-only review-anomaly queue. Requires a team/admin-agent key with moderate_reviews. Flags never auto-hide, remove, or reweight a review and never change a business class.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_admin_verification_casesList Back-office Verification CasesRead-onlyInspect
List the server-owned verification work queue. Requires a team/admin-agent key with view. Reading a case never changes its class, evidence, publication, or assignment.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| filter | No | ||
| search | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_customer_messagesList Customer MessagesRead-onlyIdempotentInspect
List inbound customer messages for a business you manage, newest first, each with any replies already sent. Follow pagination.next_cursor until pagination.has_more=false to traverse older history. Pass conversation_id from a webhook resource for one exact business-scoped lookup; conversation_id and cursor are mutually exclusive. Requires allowed_actions include list_customer_messages. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. Use the returned interaction_id with reply_to_customer_message.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max messages to return (default 20). | |
| cursor | No | Opaque pagination cursor returned by the previous page. Do not combine with conversation_id. | |
| account_id | Yes | ||
| business_id | Yes | ||
| conversation_id | No | Exact conversation referenced by a webhook; returns zero or one scoped thread. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_job_applicationsList Job Applications (Employer)Read-onlyIdempotentInspect
List applications to the job postings of a business you manage, newest first — the employer side of the hiring pipeline. PII NOTICE: rows include the applicant's name, email, cover note, and (when attached) a SHORT-LIVED signed resume_url (about 5 minutes; re-list to refresh, null if signing fails). This is an explicit owner grant: the business owner must have checked this action when connecting this key (it is never granted by default), and access stays attributable to that scoped key. Handle applicant data only for this business's hiring workflow — never republish it or use it beyond hiring. Optional job_id/status filters and offset pagination (limit up to 100, default 25). Requires allowed_actions include list_job_applications. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. Read-only: listing never changes application statuses and never affects verification class or recommendation order.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max applications to return (default 25). | |
| job_id | No | Only applications to this posting. | |
| offset | No | Pagination offset into the newest-first list. | |
| status | No | Only applications currently in this status. | |
| account_id | Yes | The managing agent's account id (from get_agent_identity). | |
| business_id | Yes | The employer business (must be in the key's allowed_business_ids). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_missed_contactsList Missed ContactsRead-onlyIdempotentInspect
List captured MISSED CONTACTS for the business this management agent is scoped to. The v3 exposure plan does not lock identity, message content, or access to this owner workflow. Rows remain restricted to the exact owner-authorized business, and the key must include list_missed_contacts. Reading missed contacts never affects verification class, ranking, or reviews.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| account_id | Yes | ||
| business_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_my_conversationsList My ConversationsRead-onlyIdempotentInspect
List the calling customer account's OWN message conversations with businesses, newest first, each including the business's replies — the read half of send_message_request, so an agent can report answers back to its user. Follow pagination.next_cursor until pagination.has_more=false to traverse older history. Pass conversation_id from a webhook resource for one exact scoped lookup; conversation_id and cursor are mutually exclusive. Requires a valid scoped agent API key whose account_id matches the account_id argument (call get_agent_identity first); keys scoped to send_message_request may also read. Read-only: never modifies anything.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max conversations to return (default 20). | |
| cursor | No | Opaque pagination cursor returned by the previous page. Do not combine with conversation_id. | |
| account_id | Yes | ||
| conversation_id | No | Exact conversation referenced by a webhook; returns zero or one scoped thread. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_my_job_applicationsList My Job ApplicationsRead-onlyIdempotentInspect
List the calling customer account's OWN job applications, newest first — the read half of apply_to_job, so an agent can report what happened to each application. Each entry carries the employer-set status (submitted, viewed, shortlisted, rejected, hired, or withdrawn), a job + employer summary, the cover note, and — when a resume is attached — a short-lived signed resume_url (about 5 minutes; re-list to refresh, resume_url is null if signing fails). Optional status filter and offset pagination (limit up to 50, default 20). Requires a customer personal agent key whose account_id matches the account_id argument (call get_agent_identity first); keys minted before this tool existed may read with apply_to_job scope. Read-only: listing never changes an application's status and never affects any employer's verification class or recommendation order — application status is set by the employer, never by this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max applications to return (default 20). | |
| offset | No | Pagination offset into the newest-first list. | |
| status | No | Only return applications currently in this employer-set status. | |
| account_id | Yes | The customer account id this personal-agent key belongs to (confirm with get_agent_identity). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_notificationsList Owner NotificationsRead-onlyIdempotentInspect
List owner notifications for the business this management agent is scoped to. Returns event metadata, summaries, and resource links only; it never includes raw CVs, full message bodies, or applicant PII. Requires allowed_actions include list_notifications.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| limit | No | ||
| offset | No | ||
| unread | No | ||
| account_id | Yes | ||
| business_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_saved_businessesList Saved BusinessesRead-onlyIdempotentInspect
List the calling account's OWN saved-business shortlist, newest first — the read half of save_business, so an agent can review and report the shortlist it has built. Returns business_id, business_name, business_source, category, city, state, notes, and saved_at for up to 100 entries (default 20, newest-first, no cursor). Requires a valid scoped agent API key whose account_id matches the account_id argument (call get_agent_identity first); keys scoped to save_business may also read. Read-only: never modifies the shortlist and never affects any business's verification class or recommendation order. Returns a machine-readable auth error (invalid_agent_api_key / agent_account_scope_violation) when the key is absent or out of scope.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max shortlist entries to return (default 20). | |
| account_id | Yes | The customer/service-agent account id this key belongs to (confirm with get_agent_identity). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
list_support_messagesList Support MessagesRead-onlyIdempotentInspect
Read the Loppee support conversation(s) for a business you manage — the owner↔Loppee-support thread, newest first, each with its full message log and status (open/pending/resolved/closed). SCOPED to THIS business only: it never returns the owner's support tickets about their other businesses. Requires allowed_actions include list_support_messages. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. Read-only; pair with send_support_message to reply.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max conversations to return (default 20). | |
| account_id | Yes | ||
| business_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
lookup_businessLookup BusinessRead-onlyInspect
Universal, pay-independent business-name lookup. Exact and prefix matches remain relevance-authoritative and return the requested entity with its truthful Verified, Listed, or unclaimed-registry classification. Location affects annotation and relevance, not whether a named business exists. Exposure-plan payment changes discovery reach and, when Sponsored ordering is active, labeled position-weighted exposure only within the same verification class and verified-review reputation band. It never changes business-profile publication, verification, review authority, reputation, moderation, class ordering, or reputation band. Loppee Jobs is a separate optional paid product; its billing affects job-posting activation only and never business verification or directory ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Requester latitude for distance-aware discovery. | |
| lng | No | Requester longitude for distance-aware discovery. | |
| zip | No | 5-digit US ZIP (ZIP+4 accepted); resolved to its ZCTA centroid and treated as a located search. | |
| city | No | City filter. | |
| name | Yes | Business name to look up through the universal, pay-independent name lane. | |
| limit | No | Maximum result count from 1 to 50. | |
| state | No | Two-letter US state or territory code. | |
| cursor | No | Opaque cursor returned in next_cursor by the previous v3 search page. Omit for the first page. | |
| radius_miles | No | Maximum distance for category discovery. Universal agent name lookup uses it for context unless consumer_reach=true, which enforces each result's exact plan/branch radius. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
manage_business_dealManage Business DealInspect
Create, edit, publish, unpublish, or delete a deal/coupon for a business you manage. This mutates deal records: operation=create makes a draft, operation=publish takes a draft live, operation=unpublish cancels public display, operation=update overwrites supplied deal fields, and operation=delete removes the deal. Not idempotent for create/delete/publish transitions. Requires allowed_actions include manage_deals. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. Deals are included plan-neutrally; the exposure plan does not change deal access. Call get_agent_identity first. Never affects the verification class or recommendation order.
| Name | Required | Description | Default |
|---|---|---|---|
| terms | No | ||
| title | No | ||
| deal_id | No | Required for update/publish/unpublish/delete. | |
| ends_at | No | ISO date; null/absent = no expiry. | |
| operation | Yes | ||
| starts_at | No | ISO date; null/absent = live immediately. | |
| account_id | Yes | The managing agent's account id (from get_agent_identity). | |
| promo_code | No | ||
| business_id | Yes | The business this deal belongs to (must be in the key's allowed_business_ids). | |
| description | No | ||
| discount_label | No | Human-readable discount, e.g. "20% off" or "$10 off". |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
manage_job_postingManage Job PostingInspect
Create, edit, publish, pause, close, or delete a job posting for a business you manage (mirrors manage_business_deal). operation=create makes a DRAFT posting (never live directly). operation=publish takes a draft/paused posting live: when this environment has live billing and payment is required, it returns status=checkout_required with a Stripe Checkout url that the HUMAN business owner must open and pay — this tool NEVER completes payment itself; when billing is off, publish activates the posting directly at no charge. operation=update overwrites only the supplied fields (status changes go through publish/pause/close). operation=delete removes the posting (idempotent: deleting a missing posting reports deleted). Separate Loppee Jobs billing controls posting activation ONLY — it never ranks jobs, never changes the business's verification class, and never changes recommendation order. Employers must be claimed, verified, and published (jobs_verified_business_required otherwise). Seekers are never charged. Requires allowed_actions include manage_job_posting. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. Call get_agent_identity first. Not idempotent for create/publish/delete transitions.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Defaults to the employer's city for create. | |
| state | No | Two-letter US state; defaults to the employer's state for create. | |
| title | No | Job title (required for create). | |
| job_id | No | Required for update/publish/pause/close/delete. | |
| skills | No | ||
| benefits | No | ||
| category | No | Free-text category label; defaults to the employer's category. | |
| schedule | No | ||
| apply_url | No | ||
| operation | Yes | create makes a DRAFT; publish takes it live (returns checkout_required with a Stripe url for the HUMAN owner when payment is required); pause/close change visibility; delete removes the posting. | |
| account_id | Yes | The managing agent's account id (from get_agent_identity). | |
| salary_max | No | ||
| salary_min | No | ||
| business_id | Yes | The employer business (must be in the key's allowed_business_ids). | |
| description | No | ||
| postal_code | No | ||
| direct_apply | No | true = seekers apply on Loppee (free for them); false = external apply_url. | |
| contact_email | No | ||
| salary_period | No | hour, year, or month. | |
| category_alias | No | Exact taxonomy LEAF alias for field/domain search (discover via GET /v1/taxonomy/suggest); defaults to the employer's primary alias. | |
| street_address | No | ||
| workplace_type | No | ||
| employment_type | No | ||
| salary_currency | No | ||
| experience_level | No | ||
| compensation_text | No | Human-readable pay line, e.g. "$25-$30/hr + commission". | |
| total_job_openings | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
mark_notification_readMark Owner Notification ReadIdempotentInspect
Mark one owner notification as read for the business this management agent is scoped to. Requires allowed_actions include mark_notification_read.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | ||
| business_id | Yes | ||
| notification_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
recommend_businessesRecommend BusinessesRead-onlyInspect
Return published business recommendations in explicit verified and listed sections. Verified candidates are exhausted first except for an explicit direct entity-name lookup; clearly labelled Listed candidates fill any remaining slots. Within each class, reviews backed by observed Loppee interactions determine the half-star quality band; Unverified reviews carry zero ranking weight. Every row carries its exact class disclosure and sponsored boolean. Coarse agent location cannot unlock one-mile Free reach; use create_location_handoff when requested by location_context. Sponsored share-of-voice ordering is active only within one verification class and one verified-review half-star band. Paid tier entitlement is position-weighted, every paid placement is labeled with sponsored=true, eligible Free businesses retain a 25% exposure floor, and direct entity/name lookup is exempt from rotation. Exposure-plan payment changes discovery reach and, when Sponsored ordering is active, labeled position-weighted exposure only within the same verification class and verified-review reputation band. It never changes business-profile publication, verification, review authority, reputation, moderation, class ordering, or reputation band. Loppee Jobs is a separate optional paid product; its billing affects job-posting activation only and never business verification or directory ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search across the published, recommendation-eligible pool. | |
| lat | No | Requester latitude for distance-aware discovery. | |
| lng | No | Requester longitude for distance-aware discovery. | |
| zip | No | 5-digit US ZIP (ZIP+4 accepted); resolved to its ZCTA centroid and treated as a located search. | |
| city | No | City filter. | |
| limit | No | Maximum result count from 1 to 50. | |
| state | No | Two-letter US state or territory code. | |
| category | No | Business category or taxonomy term. | |
| radius_miles | No | Maximum distance for category discovery. Universal agent name lookup uses it for context unless consumer_reach=true, which enforces each result's exact plan/branch radius. | |
| allowed_action | No | Require a published allowed action such as recommend or call_business. | |
| location_handoff_id | No | Opaque Loppee Location Handoff approved by the consumer. Requires the same active scoped consumer-agent key that created it. Do not combine it with lat/lng, ZIP, city, or state; Loppee uses the point privately and never returns it to the agent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
redeem_couponRedeem CouponIdempotentInspect
Redeem a Loppee-issued subscription coupon for a business you manage: runs the exact same validation as validate_coupon, then creates a Stripe Checkout session for the chosen paid plan WITH the discount already applied, and returns its url plus the priced breakdown (original_cents, discount_cents, final_cents) and a redemption_id. IMPORTANT: this tool never charges anyone — the business owner must open the returned url and complete payment on Stripe's hosted page; until then the redemption is 'pending' and is released automatically if the checkout expires. Redeeming counts against the code's redemption limits while pending, so do not call this speculatively — use validate_coupon to check a code. Retry-safe/idempotent for an identical pending business + code + tier + period: it returns the same redemption and live Checkout session instead of creating another. A different plan, period, or coupon is refused with billing_checkout_in_progress while the existing business Checkout remains open; no competing session is created. Requires a scoped management key whose account_id + business_id match and whose allowed_actions include redeem_coupon (owner opt-in), plus enabled online billing (billing_not_configured otherwise); call get_agent_identity first. Machine-readable failures match the owner UI exactly: coupon_not_found (invalid code), coupon_inactive, coupon_expired, coupon_wrong_plan (code is scoped to a different plan), coupon_exhausted (total redemption cap reached), coupon_customer_limit (this business already used it), coupon_requires_paid_plan, plus the standard management auth errors (missing_api_key / forbidden_account / management_rate_limited), billing_already_active, billing_checkout_in_progress, and billing_not_configured. A coupon changes the subscription PRICE only. It never changes verification class, review reputation, plan entitlement, eligibility, or quality band; completed payment grants exactly the chosen plan.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The coupon code exactly as issued by the Loppee team. Case- and whitespace-insensitive. | |
| tier | Yes | Paid exposure plan to price: nearby=Silver, local=Gold, regional=Platinum, metro=Diamond. | |
| period | No | Billing period to price the plan at. | monthly |
| account_id | Yes | The agent account id this API key belongs to (confirm with get_agent_identity). | |
| business_id | Yes | The managed business to apply the coupon for. Must be within this key's allowed_business_ids. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
reply_to_customer_messageReply To Customer MessageIdempotentInspect
Post a reply to an inbound customer message on behalf of a business you manage. Pass the interaction_id from list_customer_messages and the reply body. client_message_id is required and makes an exact retry idempotent; reuse with different content is rejected. Requires allowed_actions include reply_to_customer_message. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. The reply is stored and attributed to this agent; it does not change the verification class or review reputation.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| account_id | Yes | ||
| business_id | Yes | ||
| interaction_id | Yes | The customer message being answered (from list_customer_messages). | |
| client_message_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
report_reviewReport ReviewInspect
Report a customer review of a business you manage into Loppee's moderation queue for a claimed policy violation (spam, harassment, off_topic, fake, or other). IMPORTANT: reporting NEVER removes the review — the review stays published, moderation is HUMAN and REACTIVE, and a moderator removes a review only for a recorded policy violation, never for being negative. Do not use this tool to suppress honest criticism; use respond_to_review to answer it publicly. Filing a report never changes the verification class, review authority, the review's weighting, or recommendation order. Requires allowed_actions include report_review. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. Call get_agent_identity first. Reportability rules: only a NEGATIVE review (rating 3 stars and below) can be reported at all — a 4-5 star review returns review_report_not_negative; only ONE report may be open at a time — while a prior report is being reviewed a new one returns review_report_already_open; and a review accepts at most 3 reports in its LIFETIME — past that the call returns review_report_limit_reached. Returns review_not_found when the review does not belong to this business and invalid_report_reason for an unknown category.
| Name | Required | Description | Default |
|---|---|---|---|
| review_id | Yes | The review being reported. | |
| account_id | Yes | The managing agent's account id (from get_agent_identity). | |
| business_id | Yes | The reviewed business (must be in the key's allowed_business_ids). | |
| reason_detail | No | What specifically violates policy (up to 2000 characters). | |
| reason_category | Yes | Policy-violation category. 'The review is negative' is not a category — negative reviews are never removed for being negative. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
resolve_admin_review_anomalyResolve Review Anomaly FlagDestructiveInspect
Resolve or ignore one anomaly flag with a recorded reason and exact confirmation. Requires a team/admin-agent key with moderate_reviews. This changes only the flag; it cannot hide/remove the review, change review weight, or change a business class.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| confirm | Yes | ||
| flag_id | Yes | ||
| resolution_note | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
respond_to_reviewRespond To ReviewIdempotentInspect
Publish the business's ONE public response to a customer review of a business you manage. Repeating the call EDITS the existing response in place (idempotent per review — a business never gets a second response slot). The response is public and attributed to this agent. Responding NEVER changes the verification class, review authority, the review, its rating, or its weighting — it only adds the business's side of the story under the review. Requires allowed_actions include respond_to_review. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. Call get_agent_identity first. Returns review_not_found when the review does not belong to this business, and missing_response_body when body is empty.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The public response text (up to 2000 characters, same cap as the owner dashboard). | |
| review_id | Yes | The review being answered (review ids appear in the business's review notifications and dashboard payload). | |
| account_id | Yes | The managing agent's account id (from get_agent_identity). | |
| business_id | Yes | The reviewed business (must be in the key's allowed_business_ids). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
revoke_my_keyRevoke My KeyDestructiveInspect
Immediately and irreversibly revoke the API key THIS call authenticates with — the agent-side 'delete my key' for connection hygiene (e.g. the key may be exposed, the integration is being retired, or the user asked to disconnect). Possession of the key is the authorization: it can only ever revoke itself, never another key or account, and it removes access rather than granting any. Takes effect on the next request (key validation is a live database check, so there is no cache window). The revocation is written to the audit log before the key is disabled. Requires confirm:true — without it the tool returns confirm_required and changes nothing. A new key can only be issued by the account's human owner from their Loppee dashboard (or by an admin); this tool cannot mint keys. Operator keys configured in the server environment return env_key_not_revocable. Call get_agent_identity first if you need to confirm which account and label this key belongs to.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
save_businessSave BusinessIdempotentInspect
Attach a published business or directory listing to a customer/service-agent account workflow (a shortlist — it does not contact the business). The shortlist round-trips: read it back with list_saved_businesses and prune entries with unsave_business. Requires a valid scoped agent API key whose account_id matches the account_id argument and whose allowed_actions include save_business; call get_agent_identity first to confirm scope. Idempotent: saving the same business twice is a no-op. Saving never affects the business's verification class, review authority, review reputation, or recommendation eligibility. Returns a machine-readable auth error (missing_api_key / forbidden_account) when the key is absent or out of scope.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| notes | No | ||
| state | No | ||
| category | No | ||
| account_id | Yes | ||
| business_id | Yes | ||
| business_name | Yes | ||
| business_source | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
search_businessesSearch BusinessesRead-onlyInspect
Search Loppee's closed taxonomy or use universal business-name lookup. Every claimed result carries an explicit Verified or Listed class and its exact disclosure; unclaimed registry records carry a separate subject_kind and are never silently promoted into a business class. Category discovery is reach-gated, while direct name lookup preserves exact/prefix relevance and reports the requested entity truthfully. ZIP, city, saved points, provider IP, and agent-supplied coordinates are coarse in the guarded agent path and cannot prove one-mile Free eligibility; when location_context requests it, use create_location_handoff and retry with location_handoff_id. Exposure-plan payment changes discovery reach and, when Sponsored ordering is active, labeled position-weighted exposure only within the same verification class and verified-review reputation band. It never changes business-profile publication, verification, review authority, reputation, moderation, class ordering, or reputation band. Loppee Jobs is a separate optional paid product; its billing affects job-posting activation only and never business verification or directory ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search. Category terms auto-route to taxonomy discovery; otherwise this is a universal business-name lookup. | |
| lat | No | Requester latitude for distance-aware discovery. | |
| lng | No | Requester longitude for distance-aware discovery. | |
| zip | No | 5-digit US ZIP (ZIP+4 accepted); resolved to its ZCTA centroid and treated as a located search. | |
| city | No | City filter. | |
| limit | No | Maximum result count from 1 to 50. | |
| state | No | Two-letter US state or territory code. | |
| cursor | No | Opaque cursor returned in next_cursor by the previous v3 search page. Omit for the first page. | |
| intent | No | Routing hint: auto resolves taxonomy first; category and name force their respective lanes. | auto |
| category | No | Taxonomy category alias or category term. Resolved categories use reach-gated category discovery. | |
| radius_miles | No | Maximum distance for category discovery. Universal agent name lookup uses it for context unless consumer_reach=true, which enforces each result's exact plan/branch radius. | |
| location_confidence | No | Precision of the explicit location anchor for disclosure. It never widens plan reach and never changes trust or ordering. | |
| location_handoff_id | No | Opaque Loppee Location Handoff approved by the consumer. Requires the same active scoped consumer-agent key that created it. Do not combine it with lat/lng, ZIP, city, or state; Loppee uses the point privately and never returns it to the agent. | |
| include_directory_listings | No | Include honestly labeled, unverified directory listings for discovery. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
search_categorySearch CategoryRead-onlyInspect
Reach-gated category discovery over published businesses. Claimed results are ordered Verified first and Listed fill, each with its exact class disclosure. Deliberately exposed unclaimed registry records remain a separate subject_kind and are never recommendation-eligible. A coarse area can preview wider paid reach but cannot establish one-mile Free eligibility; use create_location_handoff when location_context.next_action says so. Exposure-plan payment changes discovery reach and, when Sponsored ordering is active, labeled position-weighted exposure only within the same verification class and verified-review reputation band. It never changes business-profile publication, verification, review authority, reputation, moderation, class ordering, or reputation band. Loppee Jobs is a separate optional paid product; its billing affects job-posting activation only and never business verification or directory ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Requester latitude for distance-aware discovery. | |
| lng | No | Requester longitude for distance-aware discovery. | |
| zip | No | 5-digit US ZIP (ZIP+4 accepted); resolved to its ZCTA centroid and treated as a located search. | |
| city | No | City filter. | |
| limit | No | Maximum result count from 1 to 50. | |
| state | No | Two-letter US state or territory code. | |
| cursor | No | Opaque cursor returned in next_cursor by the previous v3 search page. Omit for the first page. | |
| category | Yes | Taxonomy category alias or natural category term. | |
| radius_miles | No | Maximum distance for category discovery. Universal agent name lookup uses it for context unless consumer_reach=true, which enforces each result's exact plan/branch radius. | |
| location_confidence | No | Precision of the explicit location anchor for disclosure. It never widens plan reach and never changes trust or ordering. | |
| location_handoff_id | No | Opaque Loppee Location Handoff approved by the consumer. Requires the same active scoped consumer-agent key that created it. Do not combine it with lat/lng, ZIP, city, or state; Loppee uses the point privately and never returns it to the agent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
search_jobsSearch JobsRead-onlyInspect
Discover active schema.org-aligned Loppee jobs from currently Verified, published employers. Every employer carries the exact v3 Verified class disclosure and no numeric verification metric. Location and job filters remain commercially neutral. Exposure-plan payment changes discovery reach and, when Sponsored ordering is active, labeled position-weighted exposure only within the same verification class and verified-review reputation band. It never changes business-profile publication, verification, review authority, reputation, moderation, class ordering, or reputation band. Loppee Jobs is a separate optional paid product; its billing affects job-posting activation only and never business verification or directory ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Role/keyword search across job title, description, category, skills, experience, and location. Typo-tolerant (trigram word similarity). | |
| lat | No | Latitude for radius search (use with lng and radius_miles). | |
| lng | No | Longitude for radius search. | |
| zip | No | 5-digit US ZIP filter, matched against the posting's postal code. | |
| city | No | City filter. | |
| sort | No | Result ordering; both are commercially neutral. Default relevance (text/location fit + recency). | |
| limit | No | Maximum result count. | |
| state | No | Two-letter US state filter. | |
| job_id | No | Exact posting lookup — the id behind the /jobs/{job_id} page. | |
| offset | No | Pagination offset into the ranked result set. | |
| category | No | Field/domain filter resolved against the same closed category taxonomy as businesses (aliases + synonyms, e.g. 'hvac' or 'ac repair'); unresolvable terms fall back to free-text category matching. | |
| salary_max | No | Annualized USD salary ceiling. | |
| salary_min | No | Annualized USD salary floor (hourly salaries compare at x2080, monthly at x12). Jobs without a disclosed salary are excluded when set. | |
| radius_miles | No | Radius in miles around lat/lng. Remote roles are included regardless of distance unless include_remote=false. | |
| include_remote | No | Default true: remote roles bypass ZIP/radius location filters. Set false to exclude remote roles from located searches. | |
| workplace_type | No | Workplace type. | |
| employment_type | No | Employment type. | |
| experience_level | No | Experience-level filter (substring match, e.g. 'entry', 'senior'). | |
| posted_within_days | No | Only roles published within the last N days. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
send_message_requestSend Message RequestIdempotentInspect
Send a message to a published business on behalf of the calling customer account. Messaging is available on every v3 exposure plan; the exposure plan does not change messaging access. The message is delivered DIRECTLY to the business owner's Loppee inbox with no human pre-moderation. The stored business name is resolved from the registry, never from target_business_name. Repeat sends to the same business append to the one ongoing conversation thread; read replies with list_my_conversations. client_message_id is required and makes an exact retry idempotent; reuse with different content is rejected. Subject is capped at 160 characters and the message at 4000. Requires a valid scoped agent API key whose account_id matches the account_id argument and whose allowed_actions include send_message_request (call get_agent_identity first). Returns a machine-readable auth error when the key is absent or out of scope. Sending a message never affects the business's verification class, ranking, or review weighting.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| subject | Yes | ||
| account_id | Yes | ||
| client_message_id | Yes | ||
| target_business_id | Yes | ||
| target_business_name | Yes | ||
| target_business_source | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
send_support_messageSend Support MessageInspect
Post a message to Loppee support on behalf of a business you manage. It appends to the business's one open support thread (reopening a resolved one), or opens a fresh ticket if none is active — the same behavior as the owner sending from the support widget. A closed ticket is never reused; a new one opens instead. The turn is stored as an owner-side message and attributed to this agent in the audit log. SCOPED to THIS business only. Requires allowed_actions include send_support_message. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. Optional subject (≤160 chars) names a new ticket; body ≤4000 chars. Support chat never affects verification class, review reputation, ranking, reach, or review weighting.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| subject | No | Subject for a NEW ticket (ignored when appending to an open one). | |
| account_id | Yes | ||
| business_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
set_admin_business_lifecycleSuspend or Restore a BusinessDestructiveInspect
Suspend an active business from public surfaces or restore a suspended business without changing its pipeline status. Requires a team/admin-agent key with the exact publish action; suspend requires an enumerated reason and other requires detail. Archive, unarchive, and deletion are mechanically unavailable to this tool and remain human-only. Every successful transition uses the existing transactional audit path.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| business_id | Yes | ||
| reason_code | No | ||
| reason_detail | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
set_business_hoursSet Business HoursIdempotentInspect
Set (or clear) the structured operating hours for a business you manage — the same validated write the owner's dashboard hours editor performs. Supply the WHOLE document each time (idempotent replace): hours.weekly maps every weekday mon..sun to { status, ranges } where status is one of open (1-4 time ranges, split hours like a lunch break supported), closed, open_24 (open 24 hours), or appointment (by appointment only); ranges use business-local 24h "HH:MM" times with open < close (close may be "24:00" = midnight). hours.overrides is an optional list of date-specific SPECIAL/HOLIDAY schedules ({ date: "YYYY-MM-DD", label e.g. "Independence Day", status, ranges }) that REPLACE the weekly schedule on that date. Pass hours=null to clear the schedule (profile shows no hours again). The business's IANA time_zone is derived server-side from its location; the public payloads expose the schedule plus a live computed open_now status in that zone. Hours are informational display data ONLY — they never change verification class, review reputation, ranking, reach, share-of-voice, or eligibility. Requires a scoped management key (allowed_actions include update_business_profile).
| Name | Required | Description | Default |
|---|---|---|---|
| hours | Yes | The full hours document, or null to clear the stored schedule. | |
| account_id | Yes | ||
| business_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
set_my_locationSet My Saved LocationIdempotentInspect
Save or replace the calling customer account's home location: EITHER a 5-digit US zip (validated against the Census gazetteer) OR latitude+longitude, optionally with a label like 'Home'. Once saved it becomes the customer's DEFAULT discovery anchor — search_businesses/search_category/search_jobs and /v1/search anchor on it automatically for this customer whenever no explicit location is passed (explicit lat/lng/zip/city always win). Confirm the location with the user before saving. Discovery anchor ONLY — never a ranking, trust, or review input. Requires a valid scoped customer personal-agent key whose account_id matches the account_id argument.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | 5-digit US ZIP to save as the customer's home location (validated against the Census gazetteer). Provide EITHER zip OR latitude+longitude. | |
| label | No | Optional human label, e.g. 'Home' or 'Office'. | |
| latitude | No | Precise latitude to save (with longitude). | |
| longitude | No | Precise longitude to save (with latitude). | |
| account_id | Yes | The customer account id this personal-agent key belongs to (confirm with get_agent_identity). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
submit_review_for_moderationSubmit ReviewIdempotentInspect
Submit or edit one first-party review for the authenticated consumer account. The review is published immediately. Loppee labels it Verified interaction only when an independently observed qualifying interaction already exists; otherwise it remains Unverified with ranking_weight=0. No caller may choose a label or interaction channel. There is no anonymous submission or pre-moderation. Only a human moderator may remove it for a recorded policy violation, never for being negative. Requires a valid scoped key whose account_id matches the request and whose allowed_actions include submit_review_for_moderation.
| Name | Required | Description | Default |
|---|---|---|---|
| rating | Yes | ||
| message | Yes | ||
| subject | Yes | ||
| account_id | Yes | ||
| service_date | No | Optional real, non-future service date in YYYY-MM-DD format; empty means not provided. | |
| target_business_id | Yes | ||
| attestation_accepted | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
triage_admin_business_claimTriage Business ClaimDestructiveInspect
Reject a business claim or request more evidence. Requires a team/admin-agent key with review_intake, a non-empty reason, and the exact decision-matched confirmation phrase; it retains the existing audit and notification flow. Ownership approval is intentionally absent: only a freshly stepped-up human admin with verify_evidence can approve and grant ownership.
| Name | Required | Description | Default |
|---|---|---|---|
| claim_id | Yes | ||
| decision | Yes | ||
| confirmation | Yes | ||
| review_notes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
unsave_businessUnsave BusinessIdempotentInspect
Remove one business from the calling account's OWN saved-business shortlist — the prune half of save_business. Idempotent: unsaving a business that is not on the shortlist is a no-op that returns removed=false, never an error. This only edits the account's own shortlist; it does not contact the business and never affects the business's verification class, review authority, review reputation, or recommendation eligibility. Requires a valid scoped agent API key whose account_id matches the account_id argument and whose allowed_actions include unsave_business (keys scoped to save_business may also unsave; call get_agent_identity first). Returns a machine-readable auth error (invalid_agent_api_key / agent_account_scope_violation) when the key is absent or out of scope.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | The customer/service-agent account id this key belongs to (confirm with get_agent_identity). | |
| business_id | Yes | The saved business to remove from the shortlist. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
update_business_photosUpdate Business PhotosDestructiveInspect
Add or remove branding media for a business you manage — all three kinds: kind=business_photo (default) is the plan-neutral GALLERY: operation=add uploads one image (JPEG/PNG/WebP base64, up to 8MB) that enters the media review queue before appearing publicly. kind=logo and kind=cover_photo are REPLACE-IN-PLACE SINGLETONS that follow the owner-dashboard path exactly: JPEG/PNG/WebP/SVG up to 5MB, SVG is sanitized on upload, the new file replaces the prior one and is published immediately (moderation is reactive, same as owner uploads). operation=remove deletes any branding photo by asset_id (verification evidence files are never reachable here). Photos never change verification class, review authority, or recommendation order. Requires allowed_actions include update_business_photos. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Branding kind for add (default business_photo = gallery). logo/cover_photo replace the current one in place. | |
| asset_id | No | Required for remove. | |
| file_name | No | Required for add. | |
| operation | Yes | ||
| account_id | Yes | ||
| size_bytes | No | Byte length of the decoded image, required for add. | |
| business_id | Yes | ||
| data_base64 | No | Base64-encoded image bytes, required for add. | |
| content_type | No | Image MIME type, required for add. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
update_business_profileUpdate Business ProfileIdempotentInspect
Update editable profile fields for a business you manage: display_name, category, website, phone, city, state, zip. Provide only the fields you want to change; any supplied field replaces/overwrites the current stored value, and repeating the same payload is idempotent. Changing category REQUIRES category_aliases: 1-3 exact taxonomy leaf aliases (discover them via GET /v1/taxonomy/suggest?q=...) — they set the business's authoritative category placement in search. IMPORTANT: an agent may ESTABLISH a business's category (when it has none) and CORRECT it (prune/reorder/replace within the same number of lines), but it may NOT GROW an existing set by adding a brand-new line of business — that is a regulated action requiring an owner license + admin approval (403 category_addition_requires_approval), and the owner must submit it from the owner portal (Lines of business → Request to add a line of business). Requires allowed_actions include update_business_profile. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. Cannot edit legal name, verification evidence, billing, publish state, or the verification class.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | ||
| city | No | ||
| phone | No | ||
| state | No | ||
| website | No | ||
| category | No | ||
| account_id | Yes | ||
| business_id | Yes | ||
| display_name | No | ||
| category_aliases | No | Exact taxonomy leaf aliases (1-3) for the business, e.g. home_property.trades.hvac_services. Required when category is supplied. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
update_job_application_statusUpdate Job Application Status (Employer)IdempotentInspect
Set the employer-side status of one application to a job posting of a business you manage: submitted, viewed, shortlisted, rejected, or hired. Applicants alone may withdraw — passing 'withdrawn' is rejected (invalid_job_application_status). Idempotent per (application, status): re-setting the same status is a no-op overwrite. The change is visible to the seeker in their applications view and is audit-logged with this agent's attribution. Status changes never affect the business's verification class, recommendation order, or the applicant's account. Requires allowed_actions include update_job_application_status — an explicit owner grant, never default. Requires an owner-scoped management key, explicit business scope, and the tool's permission; exposure tier does not grant or remove access. Under v3, a business owner connects an external agent they already use. Loppee provides scoped API and MCP access only; it does not provide or host that customer-connected agent. Access is available at no charge for now. Returns job_application_not_found when the application does not belong to this business's postings.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Employer-set status. Applicants alone may withdraw — 'withdrawn' is rejected here. | |
| account_id | Yes | The managing agent's account id (from get_agent_identity). | |
| business_id | Yes | The employer business (must be in the key's allowed_business_ids). | |
| application_id | Yes | The application to update (from list_job_applications). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
validate_couponValidate CouponRead-onlyInspect
Check a Loppee-issued subscription coupon code against a business you manage and a chosen paid exposure plan, and return the priced result: original_cents, discount_cents, final_cents, plan_name, and whether the discount repeats (duration: once = first payment, forever = every renewal). Read-only — nothing is redeemed, reserved, or counted against the code's limits. Requires a scoped management key whose account_id + business_id match and whose allowed_actions include validate_coupon; call get_agent_identity first. Coupons are issued by Loppee admins to discount the plan PRICE (this is NOT the business's own customer-facing deals — see manage_deal for those). Machine-readable failures match the owner UI exactly: coupon_not_found (invalid code), coupon_inactive, coupon_expired, coupon_wrong_plan (code is scoped to a different plan), coupon_exhausted (total redemption cap reached), coupon_customer_limit (this business already used it), coupon_requires_paid_plan, plus the standard management auth errors (missing_api_key / forbidden_account / management_rate_limited), billing_already_active, billing_checkout_in_progress, and billing_not_configured. A coupon changes the subscription PRICE only. It never changes verification class, review reputation, plan entitlement, eligibility, or quality band; completed payment grants exactly the chosen plan.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The coupon code exactly as issued by the Loppee team. Case- and whitespace-insensitive. | |
| tier | Yes | Paid exposure plan to price: nearby=Silver, local=Gold, regional=Platinum, metro=Diamond. | |
| period | No | Billing period to price the plan at. | monthly |
| account_id | Yes | The agent account id this API key belongs to (confirm with get_agent_identity). | |
| business_id | Yes | The managed business to apply the coupon for. Must be within this key's allowed_business_ids. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
withdraw_job_applicationWithdraw Job ApplicationIdempotentInspect
Withdraw one of the calling customer account's OWN job applications. The application row is kept and flipped to status=withdrawn (the employer sees an honest withdrawn status; nothing is deleted), and the seeker can re-apply later, which reactivates the same application. Idempotent: withdrawing an already-withdrawn application succeeds and reports already_withdrawn=true — never an error. Only the applicant's own application changes; withdrawing never affects the employer's verification class, review authority, review reputation, or recommendation eligibility. Requires a customer personal agent key whose account_id matches the account_id argument (apply_to_job-scoped keys may also withdraw; call get_agent_identity first). Returns job_application_not_found when the application does not belong to this account.
| Name | Required | Description | Default |
|---|---|---|---|
| account_id | Yes | The customer account id this personal-agent key belongs to (confirm with get_agent_identity). | |
| application_id | Yes | The application to withdraw (from list_my_job_applications or apply_to_job). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | No | |
| error | No | |
| contract_version | Yes |
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!