Overview
The Obenan AI MCP Server lets AI assistants manage multi-location business data on the Obenan platform. Through natural conversation, users can search locations, update business information, analyze customer reviews, and access Emotion AI analytics—all without leaving their AI assistant.
The server implements the Model Context Protocol (MCP) with OAuth 2.0 authentication and Streamable HTTP transport.
Features
Location Management
Search, view, and update business locations. Manage names, addresses, contact details, business hours, special hours, categories, services, brands, attributes, and service areas.
Review Intelligence
Analyze customer reviews with AI-powered sentiment analysis. View top positive and most concerning reviews, and reply to reviews directly through conversation.
Emotion AI Analytics
Access Obenan's Emotion AI engine for deep analytics: topic analysis, keyword sentiment, platform comparisons, reputation scoring, rating breakdowns, and AI-generated action plans.
Google Business Insights
View Google Business Profile performance data including search impressions, discovery vs. direct searches, keyword performance, and interaction breakdowns.
Content Management
Update short and long descriptions, manage SEO keywords, create Google Business posts, and update menus—all through natural language.
Setup Instructions
Prerequisites
- An Obenan account with at least one business location
- An AI assistant that supports MCP servers or connectors (Claude, ChatGPT, Claude Code)
- Any Obenan subscription tier
Claude (claude.ai / Claude Desktop)
Add the Obenan connector from the Claude Integrations directory, or add it manually:
- Open Settings → Integrations (or MCP Servers in Claude Desktop)
- Click Add Integration and enter the server URL
- Complete the OAuth login at agent.obenan.ai
- Start chatting — Obenan tools are now available
Claude Code (CLI)
Add the server to your Claude Code configuration:
Verify It Works
After setup, test the connection by asking:
You should see a list of your Obenan business locations. If prompted to approve tool access, click Allow.
-
1
Open ChatGPT
Go to chat.openai.com and sign in to your account.
-
2
Enable Developer Mode
Before adding custom connectors, you need to enable Developer mode. This is a BETA feature that allows you to add unverified connectors.
Settings → Apps & Connectors → Advanced settings → Enable "Developer mode" toggleNote: When enabled, you'll see a message that memory is disabled. This is normal for custom connectors.
-
3
Navigate to Connector Settings
Go to the settings menu and find the connectors section:
Settings → Apps & Connectors -
4
Add Custom Connector
Click the "Add Custom Connector" or "New Connector" button to create a new MCP server connection.
-
5
Enter Connector Details
Fill in the following information in the connector form:
Obenan AIAI-powered marketing automation for local businesseshttps://mcp.obenan.ai/mcpSelect OAuth from the Authentication dropdown menu.
obenanobenanNote: While this field is marked as optional, please enter "obenan" for proper authentication.
You'll see a warning banner about custom MCP servers introducing risk. Check the box that says "I understand and want to continue" to proceed.
-
6
Save & Connect
Click Create to add the connector. This will redirect you to agent.obenan.ai for authentication. After you log in successfully, you'll be redirected back to ChatGPT and the connection will be established automatically. The system will then load all available tools.
-
7
Start Using the Connector
You're all set! The Obenan AI connector is now available in any ChatGPT conversation. Test it by asking: "Show me all my locations"
Authentication
The server uses OAuth 2.0 Authorization Code flow with PKCE (Proof Key for Code Exchange). This is a secure, industry-standard protocol that does not require a client secret.
How it works
- Your AI assistant initiates the OAuth flow and redirects you to agent.obenan.ai
- You log in with your Obenan credentials
- After approval, you are redirected back to the AI assistant with an authorization code
- The assistant exchanges the code for an access token using PKCE verification
- All subsequent API calls use this token — your credentials are never shared with the AI assistant
OAuth Discovery
The server publishes standard OAuth metadata at:
- /.well-known/oauth-authorization-server — RFC 8414
- /.well-known/oauth-protected-resource — RFC 9728
Available Tools
Debug / Utility
| Tool | Description | Type |
|---|---|---|
| debug_auth_status | Show redacted Java MCP authentication and session health for the current connection. Use when diagnosing whether an agent can safely call Obenan tools without exposing secrets. | Read |
Account Switching
| Tool | Description | Type |
|---|---|---|
| get_active_account | Show the effective active Obenan account that read and write tools will use. Use before any write or multi-account workflow to confirm the merchant context. | Read |
| get_accessible_accounts | List Obenan customer accounts the authenticated agency user can manage, including switch targets. Use before changing account context or confirming which merchant workspace a request should affect. | Read |
| clear_active_account | Clear the active account override and return to the default account encoded in the authenticated session after strict confirmation. Use when finishing work in a switched merchant context. | Write |
| switch_account | Switch the active Obenan account for subsequent tools after strict confirmation. Use when an agency user manages multiple merchants and needs future reads or writes scoped to a different account. | Write |
Location Management
| Tool | Description | Type |
|---|---|---|
| search_locations | Search the active account's Obenan-managed locations by name or address. Use to find the correct location ID before reading or updating a merchant profile. | Read |
| replace_catalog | Replace a location's whole retail catalogue in one call. Use for a bulk import or a full re-publish. Read the catalogue first and pass the returned current_hash as expected_hash; the call refuses without writing if anything would be removed unless allow_deletions is true. | Write |
| get_directory_presence | Read directory presence and listing sync status for one location, including essential and supporting directory coverage. Use to audit whether the merchant's location data is distributed consistently. | Read |
| get_location_business_hours | Read the regular business hours Obenan manages for a location. Use before changing opening hours or confirming what customers currently see for day-to-day availability. | Read |
| get_my_groups | List location groups in the active Obenan account with IDs and names. Use before applying group-based profile, reporting, or review automation work. | Read |
| get_location_discoverability_keywords | List the local-search keywords Obenan tracks for one location. Use to review or audit keyword targeting before optimizing the merchant's local discoverability. | Read |
| get_menu_enums | Read the allowed menu enum values and a copyable menu JSON example for cuisines, dietary restrictions, spiciness, allergens, and preparation methods. Use before create_menu, update_menu, or replace_menu so the menu payload validates on the first pass. Takes no input parameters. | Read |
| get_location_attrs | Read the Google Business Profile attributes Obenan manages for a location, such as amenities, accessibility, payment options, and service options. Use before updating public profile attributes. | Read |
| search_categories | Search the Google Business Profile category catalogue for a location. Use before setting categories so the merchant can choose supported public profile categories. | Read |
| fetch | Read a location by canonical ID using the same authoritative Obenan profile view as get_location. Use when a client asks to fetch a known location ID before review or update work. | Read |
| get_menu | Read the location's full menu as managed through Obenan for Google Business Profile: sections, items, prices, photos, dietary attributes, and structured menu fields. Use before editing a menu or showing the merchant exactly what customers can see. | Read |
| get_catalog | Read the location's retail product catalogue: items with their SKUs, prices, availability and any variant matrix. Use before editing a catalogue, and pass the returned current_hash back as expected_hash when replacing it. | Read |
| get_group_info | Read details for a single location group in the active Obenan account. Use to confirm group membership before group-scoped profile or automation changes. | Read |
| get_location | Read the authoritative Obenan profile for a single location, including public identity, address, categories, contact fields, and related listing data. Use before editing a profile or showing the merchant what Obenan currently manages for that location. | Read |
| create_catalog_item | Add one product to a location's retail catalogue. The item either carries its own price, sku and availability, or enumerates variants — never both, and never neither. Use when a merchant starts selling something new; adding cannot overwrite an existing item, and is confirmation-gated so a retry does not add it twice. | Write |
| import_menu_draft | Validate a customer menu PDF/photo/base64 or HTTPS reference and return enum vocabulary, safe transport status, and copyable menu-writing guidance without writing anything. Use after a merchant uploads a menu document so the agent can extract structured items and choose create_menu, update_menu, or replace_menu with confirmation. | Read |
| search | Search the active account's Obenan-managed locations by query text. Use as a short alias for search_locations when an agent needs the correct location before a profile task. | Read |
| get_my_locations | List the active account's Obenan-managed locations with IDs, names, and paging. Use when a merchant asks which locations are available or before applying changes across one or more locations. | Read |
| update_catalog_item | Change one product in a location's retail catalogue. Use to correct a price, a SKU or availability without touching the rest of the catalogue. The payload REPLACES the item, so send every field you want to keep; confirmation-gated, so call once to see what would change. | Write |
| delete_catalog_item | Delete exactly one product, and its variants, from a location's retail catalogue. Use when a merchant discontinues something. The item may be named by id, SKU or exact name; the call fails without deleting anything if that matches no item or more than one. Confirmation-gated. | Write |
| get_listing_completeness | Read listing profile completeness and connected social-link status for one location. Use to spot missing profile fields that can reduce the merchant's local presence quality. | Read |
Review Analysis
| Tool | Description | Type |
|---|---|---|
| get_auto_reply_rule | Read one auto review-response rule in detail, including targets, ratings, conditions, and reply settings. Use before editing or deleting a rule so the merchant can confirm exact automation. | Read |
| list_auto_reply_rules | List the active account's auto review-response rules with targets, ratings, status, and reply modes. Use to audit existing automation before changing or deleting a rule. | Read |
| reply_to_location_review | Post a confirmation-gated public reply to one customer review through Obenan. Use when the merchant has approved exact response text and needs the reply written safely. | Write |
| list_review_source_catalog | List external review source types Obenan can track for a location. Use before connecting a source URL so the merchant chooses the right source type. | Read |
| validate_auto_reply_payload | Validate an auto-reply rule locally without writing. Use to catch field errors and computed supervision mode before dry-running or requesting confirmation. | Read |
| list_review_reply_templates | List reusable manual review-reply templates available to the active account. Use when configuring supervised auto-reply rules that should use an approved template. | Read |
| get_auto_reply_enums | Read auto review-response enum values, response modes, and safety guidance. Takes no input. Use before validating or creating rules so star ratings, text conditions, and reply modes are valid. | Read |
| list_connected_review_sources | List active or inactive review source URL connections for the active account or one location. Use to audit which non-Google review channels Obenan is already tracking. | Read |
| create_auto_reply_rule | Create a confirmation-gated auto review-response rule after validation, conflict preflight, and readback. Use when the merchant wants approved reply automation for specific ratings and locations. | Write |
| update_auto_reply_rule | Update a confirmation-gated auto review-response rule after validation, conflict preflight, and readback. Use when changing ratings, targets, or reply mode for existing automation. | Write |
| analyze_location_reviews | Analyze a bounded date range of customer reviews with sentiment, topics, reply-rate, and trend signals for selected locations. Use to understand reputation health before drafting review responses or operational follow-up. | Read |
| disconnect_review_source | Disconnect one review source connection after naming the target and requiring strict confirmation. Use when a merchant no longer wants Obenan to track that review channel. | Write |
| check_auto_reply_conflicts | Preview overlapping auto-reply rules for selected locations or groups and star ratings. Use before creating or updating automation to avoid duplicate or conflicting public replies. | Read |
| get_location_top_positive_reviews | Read high-rated customer reviews for a location, preserving total counts across pages. Use to find praise, testimonial themes, and examples the merchant may want to learn from. | Read |
| connect_review_source | Connect a review source URL to a location after strict confirmation and readback. Use when the merchant wants Obenan to track an additional review channel. | Write |
| delete_auto_reply_rule | Delete one auto review-response rule after naming the target and requiring strict confirmation. Use when the merchant wants to permanently remove review automation. | Write |
| get_location_most_concerning_reviews | Read low-rated or concerning customer reviews for a location, preserving total counts across pages. Use to identify urgent service issues and follow-up themes before responding. | Read |
| dry_run_auto_reply_rule | Preview an auto-reply rule, computed supervision mode, target scope, and conflicts without writing. Use before create or update to show exactly what would be affected. | Read |
Emotion AI Analytics
| Tool | Description | Type |
|---|---|---|
| emotion_ai_details | Read per-review Emotion AI details for selected locations and a bounded date range, with filters for sentiment, star rating, and location. Use to inspect the individual review evidence behind summaries and trends. | Read |
| emotion_ai_keywords | Read Emotion AI review Keyword clouds or Keyword drilldowns for selected locations and a bounded date range, with sentiment scoring for customer-mentioned terms. Use to find the words customers repeat before explaining reputation drivers. | Read |
| emotion_ai_reputation | Read Emotion AI online-reputation sections for selected locations and a bounded date range, including headline totals, sentiment distribution, trend, and rating-velocity signals. Use to reconcile reputation performance before customer reporting or operational planning. | Read |
| emotion_ai_platforms | Read Emotion AI review performance split by source platform for selected locations and a bounded date range. Use to compare where reputation issues or praise are coming from before planning platform-specific follow-up. | Read |
| emotion_ai_topics | Read topic-level Emotion AI sentiment themes from customer reviews for selected locations and a bounded date range. Use to identify which operational themes are driving positive, neutral, or negative customer feedback. | Read |
| emotion_ai_ratings | Read Emotion AI rating distribution and rating-breakdown metrics for selected locations and a bounded date range. Use to explain how review scores are distributed before comparing reputation movement or prioritizing service fixes. | Read |
| emotion_ai_action_plans | Read Emotion AI action-plan recommendations derived from review sentiment for selected locations and a bounded date range. Use to turn reputation analysis into practical next steps the merchant can review before acting. | Read |
| emotion_ai_overview | Read the Emotion AI executive review-sentiment overview for selected locations and a bounded date range, including impression, rating, variance, and comparison-period signals. Use to summarize reputation health before deeper topic, keyword, rating, or action-plan analysis. | Read |
Google Business Insights
| Tool | Description | Type |
|---|---|---|
| get_discoverability_overview | Read a location's Discoverability overview, including composite score, sub-scores, competitors, and report status. Use to summarize local-presence health before drilling into keywords, scores, or listing issues. | Read |
| get_review_keyword_drilldown | Read the review rows behind one review-derived keyword for a location, with optional sentiment and pagination filters. Use to inspect the evidence behind a keyword theme before explaining or acting on it. | Read |
| get_discoverability_post_insights | Read a location's Discoverability post activity snapshot, including monthly post count, content-type count, and days since the last post. Use to spot stale posting activity before planning Google Post work. | Read |
| get_review_keyword_insights | Read review-derived keyword visibility and sentiment for one location, including positive and negative mention signals. Use to find themes customers actually mention in reviews before local discoverability or reputation work. | Read |
| google_keyword_insights | Read the top Google search keywords driving profile discovery for selected locations and a bounded date range, with filtering and sorting options. Use to audit which search terms create visibility before optimizing local search content. | Read |
| google_insights | Read Google Business Profile performance metrics for selected locations and a bounded date range, including profile views, actions, and customer behavior signals. Use to understand how customers find and interact with the merchant on Google before reporting or optimization work. | Read |
| google_search_breakdown | Read monthly branded versus discovery search rows for selected locations and a bounded date range. Use to explain whether customers search for the merchant by name or discover it through category and need-based keywords. | Read |
| get_omnipulse_scores | Read Discoverability, indexability, and reputation score-contribution rows for one location. Use to explain which concrete local-presence factors are helping or hurting the merchant's overall score. | Read |
| get_discoverability_google_stats | Read a location's Discoverability Google Stats monthly series for views, actions, and search-keyword sections over a bounded date range. Use to compare local-presence trend signals without mixing in broader account-level insights. | Read |
| get_google_connection_status | Check whether a location's Google Business Profile connection is valid and return a browser reconnect URL when action is needed. Use before Google-dependent reads or writes so the merchant can reconnect in the browser without exposing authentication details. | Read |
Google Posts
| Tool | Description | Type |
|---|---|---|
| get_scheduled_google_posts | List scheduled, queued, paused, or completed Google Business Profile posts across selected locations without creating anything. Use to audit planned post delivery before changing schedules; final per-location delivery proof comes from delivery logs. | Read |
| cancel_scheduled_google_post | Pause, resume, or request supported cancellation controls for scheduled Google Business Profile posts after strict confirmation. Use when the merchant wants to stop or restart planned post delivery without changing unrelated posts. | Write |
| get_post_delivery_logs | Read per-location delivery logs for one Google Business Profile post. Use after creating or scheduling a post to prove which locations reached done status and which still need follow-up. | Read |
| bulk_schedule_google_posts | Bulk dry_run or confirmation-gate a batch of Google Business Profile posts across selected locations. Use to preview hashes, conflicts, and per-item payloads before queueing many merchant posts safely. | Write |
| get_location_posts | Read Google Business Profile posts managed through Obenan for one location or across the active account. Use to review what post content already exists before creating, scheduling, pausing, or auditing posts. | Read |
| get_google_post_enums | Read supported Google Post fields, CTA values, categories, repeat options, custom schedule rules, and language codes. Use before creating or scheduling posts so the merchant's live Google Business Profile content validates on the first pass. Requires no input parameters. | Read |
| create_location_post | Create a confirmation-gated Google Business Profile post for selected locations or groups, including CTA, event, offer, image, language, and repeat options. Use when the merchant has approved the post content and wants Obenan to queue it safely. | Write |
Survey Reporting
| Tool | Description | Type |
|---|---|---|
| get_survey_report_data | Read aggregate survey reporting data: response totals, average rating, answer distributions, and privacy-safe short-answer themes. Use to summarize merchant survey performance while raw free-text answers stay hidden by default. | Read |
| get_surveys | List the merchant's survey definitions, with optional question and answer-option details. Use to find the right survey before pulling NPS, aggregate report data, safe response lists, or approved row-level exports. | Read |
| export_survey_responses | Export admin-gated, row-level survey responses for approved monthly reporting, with respondent answers in CSV-friendly rows. Use only when an explicit client deliverable requires free text. | Read |
| get_survey_responses | List token-scoped survey submissions with submitted date, location, survey, campaign, and NPS score. Use for safe response audits because respondent answers and free text are intentionally unavailable in this read tool. | Read |
| get_survey_nps_breakdown | Read token-scoped Net Promoter Score results for survey campaigns, including detractor, passive, promoter, and grand-total counts. Use to audit customer sentiment by survey, date range, or location before preparing an NPS report. | Read |
Reporting Automation
| Tool | Description | Type |
|---|---|---|
| cancel_report_schedule | Pause a recurring report schedule after strict confirmation and read it back as paused. Use when the merchant wants to stop future scheduled runs without deleting the schedule. | Write |
| schedule_report | Create a recurring report schedule after strict confirmation, with direct email dispatch disabled in this tool slice. Use when the merchant wants Obenan to prepare recurring reporting for selected locations, cadence, file type, and sections. | Write |
| dry_run_report | Preview how a report schedule request would be interpreted without creating a schedule, exporting a file, or sending email. Use to review target locations, date range, cadence, file type, and recipient intent before asking for confirmation. | Read |
| delete_report_schedule | Soft-delete a report schedule after strict confirmation and read back deletion proof. Use only when the merchant intends to remove the schedule rather than pause it. | Write |
| get_report | Inspect one report schedule without exposing raw recipient emails. Use to confirm the schedule, cadence, report type, masked recipients, and current state before making a report automation change. | Read |
| get_report_enums | Read the supported report automation field names, report types, file types, repeat values, statuses, and section keys. Use before validating, generating, or scheduling a report so the merchant's reporting request matches Obenan's accepted contract. | Read |
| validate_report_payload | Validate a report generation or schedule payload locally without exporting, scheduling, or emailing anything. Use to catch missing fields, invalid report or file values, and unsafe recipient settings before a confirmation-gated report action. | Read |
| validate_report_recipients | Validate report recipient email inputs locally and return only masked addresses. Use before generating or scheduling reports so invalid recipients are caught without sending email. | Read |
| resume_report_schedule | Resume a paused report schedule after strict confirmation and read it back as active. Use when the merchant wants scheduled report generation to continue. | Write |
| generate_report | Generate a report artifact for selected locations after strict confirmation, with recipient emailing disabled in this tool. Use when the merchant needs an on-demand file for supported report types without creating a recurring schedule. | Write |
| list_report_delivery_history | List delivery records for one report schedule with recipient emails masked and optional date filters. Use to investigate whether scheduled reports were generated or sent without exposing recipient PII. | Read |
| list_reports | List the merchant's report schedules in the effective active account with search and report-type filters. Use to audit existing recurring reports before editing, pausing, resuming, deleting, or creating a new schedule. | Read |
| list_report_recipients | List the masked recipients attached to one report schedule. Use to verify who receives a report without exposing full email addresses. | Read |
| debug_report_delivery_status | Read a redacted delivery-status snapshot for one report schedule and its latest record. Use to troubleshoot report automation state without exposing raw recipient emails or internal payloads. | Read |
Update Tools
| Tool | Description | Type |
|---|---|---|
| set_location_attrs | Replace profile attributes such as amenities, accessibility, payment methods, and service options for a location. Use to keep customer-facing profile details accurate; this write is confirmation-gated. | Write |
| set_location_business_hours | Replace the regular business hours Obenan publishes for a location. Use when a merchant changes weekly opening times; this write is confirmation-gated. | Write |
| upload_location_profile_media | Upload and attach cover, logo, profile, or additional listing photos to selected locations. Use when the merchant wants refreshed public profile imagery; this write is confirmation-gated. | Write |
| add_location_keywords | Add local discoverability keywords without replacing the location's existing keyword set. Use to expand search targeting safely; this write is confirmation-gated. | Write |
| delete_menu_section | Delete exactly one menu section by name through a read-transform-replace write. Use when removing an obsolete menu category; confirmation-gated and fails without writing if the section is missing or ambiguous. | Write |
| set_location_details | Update top-level location details such as business name and opening date. Use when core merchant profile facts change; this write is confirmation-gated. | Write |
| replace_menu | Authoritatively replace a location's menu with exactly the supplied structured payload. Use when a merchant's uploaded menu is the source of truth and removals are intentional; confirmation-gated with deletion and staleness safeguards. Attach item photos with item-level photo_url (a single remote https:// image URL) or photo_urls (a list of them); the server uploads each and stores it in that item's attributes.mediaKeys. Local file paths and base64 are not accepted for item photos — remote https URLs only. To attach an uploaded/attachment or base64 image, first call upload_menu_item_photos to stage it, then put the returned https url in attributes.mediaKeys. See the menus schema below or get_menu_enums for a copyable example. | Write |
| set_social_links | Replace social links Obenan manages for a location. Use when the merchant wants customers to see current social destinations from its public profile; this write is confirmation-gated. | Write |
| set_location_keywords | Replace all local discoverability keywords Obenan tracks for a location. Use when the merchant wants to retarget local search terms; this write is confirmation-gated. | Write |
| create_menu | Create the location's first structured menu, or upsert only with explicit overwrite confirmation when a menu already exists. Use to seed a Google Business Profile food menu from structured sections/items; confirmation-gated and readback-verified before success. Attach item photos with item-level photo_url (a single remote https:// image URL) or photo_urls (a list of them); the server uploads each and stores it in that item's attributes.mediaKeys. Local file paths and base64 are not accepted for item photos — remote https URLs only. To attach an uploaded/attachment or base64 image, first call upload_menu_item_photos to stage it, then put the returned https url in attributes.mediaKeys. See the menus schema below or get_menu_enums for a copyable example. | Write |
| set_location_service_area | Replace the service area Obenan manages for a location. Use when the merchant serves customers outside the storefront address; this write is confirmation-gated. | Write |
| bulk_apply_location_profile | Apply profile descriptions and keyword additions to multiple explicitly selected locations. Use for controlled bulk profile maintenance; this write is confirmation-gated and reports each target location. | Write |
| set_location_special_hours | Set holiday or exception hours for a location's public profile. Use for one-off closures or special schedules; this write is confirmation-gated. | Write |
| create_location | Create a new Obenan location shell in the effective active account. Use to prepare a merchant location record before completing profile setup; this write is confirmation-gated. | Write |
| upload_menu_item_photos | Stage customer menu item photos from base64, image_url/image_urls, or common Google Drive/Dropbox share links as hosted https media. Use before menu writes when a merchant provides photos through chat or links; confirmation-gated, returns url, media key, sha256, and mediaKeys guidance, and writes no menu. | Write |
| set_location_contacts | Replace contact details such as phone, website, and email for a location. Use when customers need updated ways to reach the merchant; this write is confirmation-gated. | Write |
| remove_location_keywords | Remove specific local discoverability keywords from a location while leaving the rest intact. Use to prune irrelevant search targeting; this write is confirmation-gated. | Write |
| set_categories | Replace the Google Business Profile categories Obenan manages for a location. Use after selecting valid categories; this write is confirmation-gated and applies to the effective active account. | Write |
| set_location_long_description | Update the long business description Obenan manages for a location's public profile. Use to revise the merchant's detailed customer-facing business story; this write is confirmation-gated. | Write |
| delete_menu_item | Delete exactly one menu item by name through a read-transform-replace write, optionally scoped to a section. Use when removing a discontinued dish; confirmation-gated and fails without writing if the item is missing or ambiguous. | Write |
| update_menu | Additively update a location's menu by merging supplied sections/items by display name while preserving existing content. Use to add or revise dishes, prices, attributes, or item photos without deleting the rest; confirmation-gated. Attach item photos with item-level photo_url (a single remote https:// image URL) or photo_urls (a list of them); the server uploads each and stores it in that item's attributes.mediaKeys. Local file paths and base64 are not accepted for item photos — remote https URLs only. To attach an uploaded/attachment or base64 image, first call upload_menu_item_photos to stage it, then put the returned https url in attributes.mediaKeys. See the menus schema below or get_menu_enums for a copyable example. | Write |
| add_services_and_brands | Add services and brands to a location while preserving and deduplicating existing values. Use to enrich the merchant's public service profile; this write is confirmation-gated. | Write |
| set_location_labels | Replace internal labels used to organize a location inside Obenan. Use to keep merchant operations and reporting segments tidy; this write is confirmation-gated. | Write |
| set_location_opening_hours | Set a location's open status and optional regular hours in one profile update. Use when the merchant needs to mark a business open, temporarily closed, or permanently closed; this write is confirmation-gated. | Write |
| set_location_short_description | Update the short business description Obenan manages for a location's public profile. Use to revise the merchant's concise customer-facing summary; this write is confirmation-gated. | Write |
Usage Examples
Once connected, you can interact with Obenan tools through natural conversation. Here are examples of what you can do:
Privacy & Security
Obenan takes the security and privacy of your business data seriously.
Data Handling
- All communication uses HTTPS/TLS encryption
- OAuth tokens are scoped to your account — the AI assistant never sees your password
- The server processes requests in real-time and does not store conversation data
- Business data is accessed on-demand from the Obenan API and not cached
What data is accessed
- Business location information (name, address, hours, descriptions)
- Customer reviews and ratings (from Google and other platforms synced by Obenan)
- Aggregated analytics from Emotion AI (no personally identifiable reviewer data)
- Google Business Profile performance metrics
Policies
Support
Need help getting started or have questions about the Obenan MCP Server?
- Contact Us: obenan.ai/contact-us
- Email: support@obenan.com
- Website: obenan.ai