MCP App Store
Business
webfaCeMEdia icon

webfaCeMEdia

by webfaCeMEdia

Overview

webfaCeMEdia connects your AI assistant to the webfaCeMEdia platform so you can manage your sites, contacts, content drafts, campaigns, and analytics in plain language. Each request is scoped to your own organization and runs against live platform data; destructive actions are clearly flagged before they run.

Tools

add_contact

ChatGPT
Add a single contact to a client's CRM. Useful for quickly adding prospects found via Apollo or referral without going through the sheet/Notion sync.

add_contact

ChatGPT
Add a single contact to a client's CRM. Useful for quickly adding prospects found via Apollo or referral without going through the sheet/Notion sync.

add_contact

ChatGPT
Add a single contact to a client's CRM. Useful for quickly adding prospects found via Apollo or referral without going through the sheet/Notion sync.

add_page_module

ChatGPT
Insert a new module (section) into a page. Module must be a complete object with _type and _key per SanityPress schema. Check the module catalog for the correct shape.

add_page_module

ChatGPT
Insert a new module (section) into a page. Module must be a complete object with _type and _key per SanityPress schema. Check the module catalog for the correct shape.

add_page_module

ChatGPT
Insert a new module (section) into a page. Module must be a complete object with _type and _key per SanityPress schema. Check the module catalog for the correct shape.

append_to_array

ChatGPT
Append items to an array field on a Sanity document. Without insertAfter, items are appended at the end (and the array is created via setIfMissing if missing — single transaction). With insertAfter, items are inserted directly after the matching _key. Each item should include its own _key if Sanity's schema expects one; patch_document auto-generates _keys for items missing them. Common uses: adding a CTA to a hero, a stat to a stat-list, or a module to a page.

append_to_array

ChatGPT
Append items to an array field on a Sanity document. Without insertAfter, items are appended at the end (and the array is created via setIfMissing if missing — single transaction). With insertAfter, items are inserted directly after the matching _key. Each item should include its own _key if Sanity's schema expects one; patch_document auto-generates _keys for items missing them. Common uses: adding a CTA to a hero, a stat to a stat-list, or a module to a page.

append_to_array

ChatGPT
Append items to an array field on a Sanity document. Without insertAfter, items are appended at the end (and the array is created via setIfMissing if missing — single transaction). With insertAfter, items are inserted directly after the matching _key. Each item should include its own _key if Sanity's schema expects one; patch_document auto-generates _keys for items missing them. Common uses: adding a CTA to a hero, a stat to a stat-list, or a module to a page.

create_document

ChatGPT
CREATE a new Sanity document. Fails with a clear error if the _id already exists (unlike upsert_document which replaces). Use this when you want create-or-fail semantics — adding a new portfolio entry, testimonial, blog post, etc. without risk of overwriting.

create_document

ChatGPT
CREATE a new Sanity document. Fails with a clear error if the _id already exists (unlike upsert_document which replaces). Use this when you want create-or-fail semantics — adding a new portfolio entry, testimonial, blog post, etc. without risk of overwriting.

create_document

ChatGPT
CREATE a new Sanity document. Fails with a clear error if the _id already exists (unlike upsert_document which replaces). Use this when you want create-or-fail semantics — adding a new portfolio entry, testimonial, blog post, etc. without risk of overwriting.

delete_document

ChatGPT
DELETE a Sanity document by _id. Destructive — only restorable via Sanity's revision history within the retention window. Requires confirmDelete: true.

delete_document

ChatGPT
DELETE a Sanity document by _id. Destructive — only restorable via Sanity's revision history within the retention window. Requires confirmDelete: true.

delete_document

ChatGPT
DELETE a Sanity document by _id. Destructive — only restorable via Sanity's revision history within the retention window. Requires confirmDelete: true.

generate_asset

ChatGPT
Generate an image, logo, icon, or illustration for a client via Creative Studio. Optionally uploads to Sanity. Best for: hero images, service cards, blog covers, favicons, social post imagery.

generate_asset

ChatGPT
Generate an image, logo, icon, or illustration for a client via Creative Studio. Optionally uploads to Sanity. Best for: hero images, service cards, blog covers, favicons, social post imagery.

generate_asset

ChatGPT
Generate an image, logo, icon, or illustration for a client via Creative Studio. Optionally uploads to Sanity. Best for: hero images, service cards, blog covers, favicons, social post imagery.

get_agent_stats

ChatGPT
Return contact count, pending drafts, recent runs, and AI config for a client's agent.

get_agent_stats

ChatGPT
Return contact count, pending drafts, recent runs, and AI config for a client's agent.

get_agent_stats

ChatGPT
Return contact count, pending drafts, recent runs, and AI config for a client's agent.

get_analytics_site

ChatGPT
Return one Insights site's metadata, last 30 days of daily rollups, and last 100 raw events for debug.

get_analytics_site

ChatGPT
Return one Insights site's metadata, last 30 days of daily rollups, and last 100 raw events for debug.

get_analytics_site

ChatGPT
Return one Insights site's metadata, last 30 days of daily rollups, and last 100 raw events for debug.

get_client_details

ChatGPT
Get detailed information for a single client including config, contact count, and recent agent runs.

get_client_details

ChatGPT
Get detailed information for a single client including config, contact count, and recent agent runs.

get_client_details

ChatGPT
Get detailed information for a single client including config, contact count, and recent agent runs.

get_deployment_health

ChatGPT
Fleet-level health summary across all client deployments. Each entry separates LIVENESS from HEALTH: reachable is the endpoint ping; agentHealthy is derived from the agent's runs (NOT the ping) — a deployment whose syncs complete is healthy even if unreachable. online is a back-compat alias of reachable. Counts (contacts, lastRunAt) come from the same source as get_agent_stats. CRITICAL for unattended use: read statsSource before trusting counts — 'live' = fresh, 'cache' = last-known (also stale:true), 'unavailable' = unknown (contacts is null, NEVER 0 — do not treat as zero). summary buckets: healthy (reachable + agentHealthy), unreachable (syncing but ping failed), failing (agentHealthy=false ONLY), unknown (stats unresolved), siteOnly. Each entry has kind: 'full' | 'site-only'; site-only deployments (no Convex agent) are pinged via their site URL and counted in summary.siteOnly, never failing.

get_deployment_health

ChatGPT
Fleet-level health summary across all client deployments. Each entry separates LIVENESS from HEALTH: reachable is the endpoint ping; agentHealthy is derived from the agent's runs (NOT the ping) — a deployment whose syncs complete is healthy even if unreachable. online is a back-compat alias of reachable. Counts (contacts, lastRunAt) come from the same source as get_agent_stats. CRITICAL for unattended use: read statsSource before trusting counts — 'live' = fresh, 'cache' = last-known (also stale:true), 'unavailable' = unknown (contacts is null, NEVER 0 — do not treat as zero). summary buckets: healthy (reachable + agentHealthy), unreachable (syncing but ping failed), failing (agentHealthy=false ONLY), unknown (stats unresolved), siteOnly. Each entry has kind: 'full' | 'site-only'; site-only deployments (no Convex agent) are pinged via their site URL and counted in summary.siteOnly, never failing.

get_deployment_health

ChatGPT
Fleet-level health summary across all client deployments. Each entry separates LIVENESS from HEALTH: reachable is the endpoint ping; agentHealthy is derived from the agent's runs (NOT the ping) — a deployment whose syncs complete is healthy even if unreachable. online is a back-compat alias of reachable. Counts (contacts, lastRunAt) come from the same source as get_agent_stats. CRITICAL for unattended use: read statsSource before trusting counts — 'live' = fresh, 'cache' = last-known (also stale:true), 'unavailable' = unknown (contacts is null, NEVER 0 — do not treat as zero). summary buckets: healthy (reachable + agentHealthy), unreachable (syncing but ping failed), failing (agentHealthy=false ONLY), unknown (stats unresolved), siteOnly. Each entry has kind: 'full' | 'site-only'; site-only deployments (no Convex agent) are pinged via their site URL and counted in summary.siteOnly, never failing.

get_document

ChatGPT
Fetch a single Sanity document by _id, regardless of type. Returns the full document JSON with image references preserved as _ref strings (not dereferenced URLs) so they can be reused in patch_document.

get_document

ChatGPT
Fetch a single Sanity document by _id, regardless of type. Returns the full document JSON with image references preserved as _ref strings (not dereferenced URLs) so they can be reused in patch_document.

get_document

ChatGPT
Fetch a single Sanity document by _id, regardless of type. Returns the full document JSON with image references preserved as _ref strings (not dereferenced URLs) so they can be reused in patch_document.

get_document_at_revision

ChatGPT
Fetch a point-in-time SNAPSHOT of a Sanity document at a given revision (from list_document_history) or ISO time. Returns the document as it existed then. Returns 'no_history_in_range' when outside the retention window. Read-only — does not modify anything.

get_document_at_revision

ChatGPT
Fetch a point-in-time SNAPSHOT of a Sanity document at a given revision (from list_document_history) or ISO time. Returns the document as it existed then. Returns 'no_history_in_range' when outside the retention window. Read-only — does not modify anything.

get_document_at_revision

ChatGPT
Fetch a point-in-time SNAPSHOT of a Sanity document at a given revision (from list_document_history) or ISO time. Returns the document as it existed then. Returns 'no_history_in_range' when outside the retention window. Read-only — does not modify anything.

get_navigation

ChatGPT
Fetch header, footer, and social navigation for a client via site singleton references. Read-only.

get_navigation

ChatGPT
Fetch header, footer, and social navigation for a client via site singleton references. Read-only.

get_navigation

ChatGPT
Fetch header, footer, and social navigation for a client via site singleton references. Read-only.

get_page

ChatGPT
Fetch a single page's full module content by slug or id. Read-only.

get_page

ChatGPT
Fetch a single page's full module content by slug or id. Read-only.

get_page

ChatGPT
Fetch a single page's full module content by slug or id. Read-only.

get_schema

ChatGPT
Inspect a site's content schema BEFORE writing. With { client }, returns that client's actually-DEPLOYED Sanity schema (source: 'server') or the bundled template (source: 'template-fallback') if none is deployed — field support differs from site to site (e.g. some sites have i18n fields, different module sets). With { client, type }, returns that type's allowed fields and which are multilingual (i18nFields). Without { client }, returns the generic template baseline (advisory only). Use this to learn valid fields before create_document / patch_document so writes aren't rejected by the schema gate.

get_schema

ChatGPT
Inspect a site's content schema BEFORE writing. With { client }, returns that client's actually-DEPLOYED Sanity schema (source: 'server') or the bundled template (source: 'template-fallback') if none is deployed — field support differs from site to site (e.g. some sites have i18n fields, different module sets). With { client, type }, returns that type's allowed fields and which are multilingual (i18nFields). Without { client }, returns the generic template baseline (advisory only). Use this to learn valid fields before create_document / patch_document so writes aren't rejected by the schema gate.

get_schema

ChatGPT
Inspect a site's content schema BEFORE writing. With { client }, returns that client's actually-DEPLOYED Sanity schema (source: 'server') or the bundled template (source: 'template-fallback') if none is deployed — field support differs from site to site (e.g. some sites have i18n fields, different module sets). With { client, type }, returns that type's allowed fields and which are multilingual (i18nFields). Without { client }, returns the generic template baseline (advisory only). Use this to learn valid fields before create_document / patch_document so writes aren't rejected by the schema gate.

get_singleton

ChatGPT
Generic singleton fetcher for whitelisted document IDs (site, pricing, shop-settings, etc.). Read-only.

get_singleton

ChatGPT
Generic singleton fetcher for whitelisted document IDs (site, pricing, shop-settings, etc.). Read-only.

get_singleton

ChatGPT
Generic singleton fetcher for whitelisted document IDs (site, pricing, shop-settings, etc.). Read-only.

get_site_settings

ChatGPT
Fetch the site singleton (title, blurb, logo, announcements, CTAs, copyright) for a client. Read-only.

get_site_settings

ChatGPT
Fetch the site singleton (title, blurb, logo, announcements, CTAs, copyright) for a client. Read-only.

get_site_settings

ChatGPT
Fetch the site singleton (title, blurb, logo, announcements, CTAs, copyright) for a client. Read-only.

list_analytics_events

ChatGPT
Paginated raw event log for one site (debug / verification). Pass dayBucket (UTC ISO date) to scope.

list_analytics_events

ChatGPT
Paginated raw event log for one site (debug / verification). Pass dayBucket (UTC ISO date) to scope.

list_analytics_events

ChatGPT
Paginated raw event log for one site (debug / verification). Pass dayBucket (UTC ISO date) to scope.

list_analytics_sites

ChatGPT
List every site registered in the webfaCeMEdia Insights Convex deployment, with last-7-day pageview/visitor counts and archive status.

list_analytics_sites

ChatGPT
List every site registered in the webfaCeMEdia Insights Convex deployment, with last-7-day pageview/visitor counts and archive status.

list_analytics_sites

ChatGPT
List every site registered in the webfaCeMEdia Insights Convex deployment, with last-7-day pageview/visitor counts and archive status.

list_campaigns

ChatGPT
List Brevo email campaigns for a client, optionally filtered by status.

list_campaigns

ChatGPT
List Brevo email campaigns for a client, optionally filtered by status.

list_campaigns

ChatGPT
List Brevo email campaigns for a client, optionally filtered by status.

list_clients

ChatGPT
List all managed client deployments with online status, Convex URL, agent domain, and timezone.

list_clients

ChatGPT
List all managed client deployments with online status, Convex URL, agent domain, and timezone.

list_clients

ChatGPT
List all managed client deployments with online status, Convex URL, agent domain, and timezone.

list_contacts

ChatGPT
List contacts for a client, optionally filtered by score bucket or free-text search.

list_contacts

ChatGPT
List contacts for a client, optionally filtered by score bucket or free-text search.

list_contacts

ChatGPT
List contacts for a client, optionally filtered by score bucket or free-text search.

list_document_history

ChatGPT
List the revision history of a Sanity document, NEWEST-FIRST: [{ rev, timestamp, author }]. Use to find a revision to inspect or roll back to. Returns status 'no_history_in_range' (not an error) when the document is older than the plan's history retention window. Read-only.

list_document_history

ChatGPT
List the revision history of a Sanity document, NEWEST-FIRST: [{ rev, timestamp, author }]. Use to find a revision to inspect or roll back to. Returns status 'no_history_in_range' (not an error) when the document is older than the plan's history retention window. Read-only.

list_document_history

ChatGPT
List the revision history of a Sanity document, NEWEST-FIRST: [{ rev, timestamp, author }]. Use to find a revision to inspect or roll back to. Returns status 'no_history_in_range' (not an error) when the document is older than the plan's history retention window. Read-only.

list_document_types

ChatGPT
Discover which Sanity document types exist in a client's dataset. Returns each _type with a count. Use this first to find non-page types (portfolio, testimonial, blog.post, etc.) before listing or fetching documents.

list_document_types

ChatGPT
Discover which Sanity document types exist in a client's dataset. Returns each _type with a count. Use this first to find non-page types (portfolio, testimonial, blog.post, etc.) before listing or fetching documents.

list_document_types

ChatGPT
Discover which Sanity document types exist in a client's dataset. Returns each _type with a count. Use this first to find non-page types (portfolio, testimonial, blog.post, etc.) before listing or fetching documents.

list_documents_by_type

ChatGPT
List documents of a specific Sanity _type with pagination. Returns _id, _type, _updatedAt, title, slug by default (override with fields). Use list_document_types first to discover what types exist.

list_documents_by_type

ChatGPT
List documents of a specific Sanity _type with pagination. Returns _id, _type, _updatedAt, title, slug by default (override with fields). Use list_document_types first to discover what types exist.

list_documents_by_type

ChatGPT
List documents of a specific Sanity _type with pagination. Returns _id, _type, _updatedAt, title, slug by default (override with fields). Use list_document_types first to discover what types exist.

list_drafts

ChatGPT
List outreach drafts for a client, optionally filtered by status.

list_drafts

ChatGPT
List outreach drafts for a client, optionally filtered by status.

list_drafts

ChatGPT
List outreach drafts for a client, optionally filtered by status.

list_pages

ChatGPT
List all pages in a client's SanityPress CMS with module metadata and counts. Read-only.

list_pages

ChatGPT
List all pages in a client's SanityPress CMS with module metadata and counts. Read-only.

list_pages

ChatGPT
List all pages in a client's SanityPress CMS with module metadata and counts. Read-only.

list_sequences

ChatGPT
List Brevo email sequences (automations) for a client with step count and active contact count.

list_sequences

ChatGPT
List Brevo email sequences (automations) for a client with step count and active contact count.

list_sequences

ChatGPT
List Brevo email sequences (automations) for a client with step count and active contact count.

patch_card_image

ChatGPT
Set the image field on a specific card within a card-list module on a page. Convenience over patch_document — handles the image object construction (asset reference + alt). Pass the page _id, the card-list module _key, the card _key, the asset _id (e.g. 'image-abc123-1600x1000-webp'), and the alt text. Atomic single-card update; for batch card image updates use patch_document with multiple set patches.

patch_card_image

ChatGPT
Set the image field on a specific card within a card-list module on a page. Convenience over patch_document — handles the image object construction (asset reference + alt). Pass the page _id, the card-list module _key, the card _key, the asset _id (e.g. 'image-abc123-1600x1000-webp'), and the alt text. Atomic single-card update; for batch card image updates use patch_document with multiple set patches.

patch_card_image

ChatGPT
Set the image field on a specific card within a card-list module on a page. Convenience over patch_document — handles the image object construction (asset reference + alt). Pass the page _id, the card-list module _key, the card _key, the asset _id (e.g. 'image-abc123-1600x1000-webp'), and the alt text. Atomic single-card update; for batch card image updates use patch_document with multiple set patches.

patch_document

ChatGPT
Apply surgical patches to any Sanity document. Operations: set, unset, setIfMissing, insert (with numeric index or GROQ selector), splice (numeric-index array insert, recommended for stability). Always validates positional indices against current array length; uses ifRevisionID for optimistic concurrency. Returns 409-style error if the document was modified between fetch and write.

patch_document

ChatGPT
Apply surgical patches to any Sanity document. Operations: set, unset, setIfMissing, insert (with numeric index or GROQ selector), splice (numeric-index array insert, recommended for stability). Always validates positional indices against current array length; uses ifRevisionID for optimistic concurrency. Returns 409-style error if the document was modified between fetch and write.

patch_document

ChatGPT
Apply surgical patches to any Sanity document. Operations: set, unset, setIfMissing, insert (with numeric index or GROQ selector), splice (numeric-index array insert, recommended for stability). Always validates positional indices against current array length; uses ifRevisionID for optimistic concurrency. Returns 409-style error if the document was modified between fetch and write.

patch_page_metadata

ChatGPT
Update a page's SEO metadata — OG image, title, description, noIndex. Use after generate_asset to apply an OG image to a page.

patch_page_metadata

ChatGPT
Update a page's SEO metadata — OG image, title, description, noIndex. Use after generate_asset to apply an OG image to a page.

patch_page_metadata

ChatGPT
Update a page's SEO metadata — OG image, title, description, noIndex. Use after generate_asset to apply an OG image to a page.

patch_page_module

ChatGPT
Patch one or more fields on a specific module within a page's modules[] array, identified by module _key. Pass the page _id, the module _key, and a flat object of fields to set on that module — the tool builds the GROQ paths internally. Use this instead of patch_document when you only need to update a single module: clearer intent, less syntax noise. Atomic single transaction. Inherits ifRevisionID concurrency handling and 409 conflict surfacing from patch_document.

patch_page_module

ChatGPT
Patch one or more fields on a specific module within a page's modules[] array, identified by module _key. Pass the page _id, the module _key, and a flat object of fields to set on that module — the tool builds the GROQ paths internally. Use this instead of patch_document when you only need to update a single module: clearer intent, less syntax noise. Atomic single transaction. Inherits ifRevisionID concurrency handling and 409 conflict surfacing from patch_document.

patch_page_module

ChatGPT
Patch one or more fields on a specific module within a page's modules[] array, identified by module _key. Pass the page _id, the module _key, and a flat object of fields to set on that module — the tool builds the GROQ paths internally. Use this instead of patch_document when you only need to update a single module: clearer intent, less syntax noise. Atomic single transaction. Inherits ifRevisionID concurrency handling and 409 conflict surfacing from patch_document.

patch_site_settings

ChatGPT
Update the site singleton — title, blurb, copyright text. Plain text is automatically converted to Portable Text format.

patch_site_settings

ChatGPT
Update the site singleton — title, blurb, copyright text. Plain text is automatically converted to Portable Text format.

patch_site_settings

ChatGPT
Update the site singleton — title, blurb, copyright text. Plain text is automatically converted to Portable Text format.

remove_from_array

ChatGPT
Remove items from an array field by their _keys. Common uses: deleting stale modules from a page, removing outdated stats, dropping unused CTAs. Atomic — all removals commit in a single transaction.

remove_from_array

ChatGPT
Remove items from an array field by their _keys. Common uses: deleting stale modules from a page, removing outdated stats, dropping unused CTAs. Atomic — all removals commit in a single transaction.

remove_from_array

ChatGPT
Remove items from an array field by their _keys. Common uses: deleting stale modules from a page, removing outdated stats, dropping unused CTAs. Atomic — all removals commit in a single transaction.

reorder_page_modules

ChatGPT
Change the order of modules on a page. Pass the complete list of _keys in the desired order. Must include every module currently on the page.

reorder_page_modules

ChatGPT
Change the order of modules on a page. Pass the complete list of _keys in the desired order. Must include every module currently on the page.

reorder_page_modules

ChatGPT
Change the order of modules on a page. Pass the complete list of _keys in the desired order. Must include every module currently on the page.

search_content

ChatGPT
Full-text search across all page content for a client. Read-only.

search_content

ChatGPT
Full-text search across all page content for a client. Read-only.

search_content

ChatGPT
Full-text search across all page content for a client. Read-only.

update_contact

ChatGPT
Update status, notes, starred flag, or signal fields on an existing contact. Omitted fields are left unchanged.

update_contact

ChatGPT
Update status, notes, starred flag, or signal fields on an existing contact. Omitted fields are left unchanged.

update_contact

ChatGPT
Update status, notes, starred flag, or signal fields on an existing contact. Omitted fields are left unchanged.

upsert_document

ChatGPT
CREATE or fully REPLACE a Sanity document. REPLACE is destructive: any field on the stored document that is absent from your payload is permanently deleted. For editing specific fields on an existing document, DO NOT use this — use patch_document (or the purpose-built patch_page_module / append_to_array / remove_from_array), which change only the fields you name and cannot drop anything else. Use upsert_document only to create a brand-new document or to deliberately overwrite an entire document. Always fetch the complete current document with get_document first if replacing. Requires confirmDestructive: true. If the payload would drop existing fields, the call is refused unless confirmReplace: true is also set.

upsert_document

ChatGPT
CREATE or fully REPLACE a Sanity document. REPLACE is destructive: any field on the stored document that is absent from your payload is permanently deleted. For editing specific fields on an existing document, DO NOT use this — use patch_document (or the purpose-built patch_page_module / append_to_array / remove_from_array), which change only the fields you name and cannot drop anything else. Use upsert_document only to create a brand-new document or to deliberately overwrite an entire document. Always fetch the complete current document with get_document first if replacing. Requires confirmDestructive: true. If the payload would drop existing fields, the call is refused unless confirmReplace: true is also set.

upsert_document

ChatGPT
CREATE or fully REPLACE a Sanity document. REPLACE is destructive: any field on the stored document that is absent from your payload is permanently deleted. For editing specific fields on an existing document, DO NOT use this — use patch_document (or the purpose-built patch_page_module / append_to_array / remove_from_array), which change only the fields you name and cannot drop anything else. Use upsert_document only to create a brand-new document or to deliberately overwrite an entire document. Always fetch the complete current document with get_document first if replacing. Requires confirmDestructive: true. If the payload would drop existing fields, the call is refused unless confirmReplace: true is also set.

Capabilities

Writes

App Stats

114

Tools

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily