/mcp · grow-contact-mcp v2.0.0 · streamable http
MCP server docs.
Production-ready.
90 tools. OAuth + Bearer auth. Discoverable via /.well-known/mcp.json. Try them in the browser playground before installing.
Install
Pick your client. Replace YOUR_MCP_SECRET with a token from OAuth.
{
"mcpServers": {
"grow-contact": {
"url": "https://grow.contact/api/public/mcp",
"headers": {
"Authorization": "Bearer YOUR_MCP_SECRET"
}
}
}
}Endpoints
| Method | Path |
|---|---|
| POST | /api/public/mcp |
| GET | /.well-known/mcp.json |
| GET | /.well-known/mcp/server-card.json |
| GET | /.well-known/oauth-protected-resource |
| GET | /.well-known/oauth-authorization-server |
| POST | /api/public/oauth/token |
Auth
Option A · Bearer
Static MCP_SECRET
Send Authorization: Bearer YOUR_MCP_SECRET on every POST. Compared in constant time on the server.
POST /api/public/mcp Authorization: Bearer *** Content-Type: application/json Accept: application/json, text/event-stream
Option B · OAuth 2.1
Standards-based
Discover at /.well-known/oauth-authorization-server, exchange creds at /api/public/oauth/token, use the returned token as Bearer.
POST /api/public/oauth/token grant_type=client_credentials &client_id=... &client_secret=...
Tools
90 tools across 8 categories. Try public-safe ones live in the playground.
Scan & Audit
18 toolsscan_urlRun the full GEO scan on any URL.bulk_scan_urlsScan up to 20 URLs at once.get_scanFetch a stored scan by id.compare_hostsSide-by-side score comparison for two hosts.diff_scanDiff two scans of the same host over time.track_competitor_over_timePlot a competitor's score history.get_competitor_scoreOne-shot competitor score lookup.validate_jsonldValidate JSON-LD blocks on a page.extract_meta_tagsPull title, description, OG, canonical, robots.fetch_urlServer-side fetch with bot UA, returns HTML.check_llms_txtVerify llms.txt presence and validity.generate_llms_txtDraft an llms.txt from sitemap.publish_llms_txtPublish llms.txt to a managed site.get_geo_standardFetch the current GEO Standard spec.list_recent_scansLast N scans across all hosts.search_scansSearch scans by host/url/score range.export_scans_csvExport scan history as CSV.get_host_trendScore timeseries for a single host.
Content & Blog
8 toolslist_blog_postsPaginated list of published posts.get_blog_postFetch a post by slug.search_blog_contentFull-text search across posts.create_blog_postCreate a new draft.list_blog_draftsPending drafts in the queue.update_blog_postEdit body, tags, metadata.publish_blog_postFlip draft → published.delete_blog_postSoft-delete a post.
Leads & CRM
10 toolssubmit_leadSubmit a contact-form lead.list_leadsRecent leads with qualification.get_leadOne lead with full history.list_clientsActive client roster.create_clientOnboard a new client.update_clientEdit client metadata.save_lead_replyLog an outbound reply.requalify_leadRe-run AI qualification.update_lead_tierMove lead between tiers.create_invoiceIssue an invoice for a lead.
Dashboard & Stats
10 toolsget_statsHigh-level KPIs.get_dashboard_statsWindowed dashboard stats.top_scanned_hostsMost-scanned hosts this week.get_lead_funnelFunnel breakdown by stage.revenue_statsMRR / revenue rollup.get_activity_feedRecent activity stream.table_row_countsRow counts per table.recent_activity_for_hostActivity feed scoped to a host.list_ordersRecent orders.get_revenue_statsDetailed revenue breakdown.
Site Content
9 toolsget_page_contentRead editable copy for a page.update_page_contentWrite copy for a page.update_heroEdit homepage hero.get_copyBulk fetch site copy.get_site_urlsList all canonical URLs.site_infoSite metadata + brand kit.get_brand_kitColors, fonts, tokens.list_content_editsAudit log of content edits.revert_content_editRoll back a single edit.
Distribution
4 toolsgenerate_badge_embedGet embed code for the GEO badge.submit_to_leaderboardAdd a site to the leaderboard.create_wordpress_plugin_configGenerate WP plugin config.push_schemaPush JSON-LD to a managed site.
AI & Generation
5 toolsai_completeOne-shot LLM completion.ai_complete_with_contextCompletion with tool-fetched context.draft_blog_postGenerate a full blog post draft.generate_imageText-to-image via Gemini image models.generate_outreach_emailDraft an outreach email.
Admin & Ops
26 toolshealth_checkLiveness probe.pingEcho for transport sanity.get_system_statusSubsystem status rollup.list_adminsAdmin roster.grant_roleGrant a role.revoke_roleRevoke a role.list_email_logRecent transactional emails.get_email_delivery_statsDelivery / bounce stats.is_email_suppressedCheck suppression status.suppress_emailAdd an address to suppression.list_faq_itemsFAQ entries.update_faq_itemEdit a FAQ entry.update_pricing_displayEdit displayed pricing.upsert_productCreate or edit a product.set_product_activeToggle product visibility.list_productsAll products.list_projectsEngagements in flight.update_project_statusMove a project stage.schedule_scanSchedule a recurring scan.list_scheduled_scansScheduled scan roster.cancel_scheduled_scanCancel a scheduled scan.run_due_scheduled_scansRun all due scans now.list_report_requestsEmail-report opt-ins.send_report_emailSend a scan report.trigger_client_alertNotify a client of a score change.submit_for_reviewSend a build for human review.
Spec compliance
- · MCP protocol 2025-06-18 (Streamable HTTP transport).
- · JSON-RPC 2.0. POST only — GET/DELETE return 405.
- · Required headers:
Accept: application/json, text/event-stream. - · Server card published at /.well-known/mcp/server-card.json.
- · Discovery via
Linkheader withrel="mcp"on every HTML response.