Regent MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SUPABASE_URL | Yes | Your Supabase project URL, e.g. https://xxxx.supabase.co | |
| REGENT_ADMIN_EMAIL | No | Email of a Supabase Auth user with the admin role. Only required for send_newsletter/reply_to_consultation tools. | |
| REGENT_ADMIN_PASSWORD | No | Password for that user. Only required for send_newsletter/reply_to_consultation tools. | |
| MCP_ALLOW_LOCAL_NO_AUTH | No | Set to '1' for local dev convenience only. Allows requests without auth for local development. | 0 |
| SUPABASE_SERVICE_ROLE_KEY | Yes | Service role key (Supabase dashboard → Settings → API) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_contentA | List blog posts, case studies, or resources. Returns published and unpublished items unless filtered. |
| get_contentA | Fetch the full record (all fields, including body content) for a single blog post, case study, or resource by slug or id. |
| create_contentA | Create a new blog post, case study, or resource. Provide a JSON object matching the table's columns. blog_posts: slug, title, excerpt, content, author, date, category, read_time, published, meta_title, meta_description, og_image, image_url. case_studies: slug, title, industry, summary, challenge, solution, results (string array), metrics (JSON array of {label, value}), published, meta_title, meta_description, og_image, image_url. resources: slug, title, type ('Whitepaper'|'Research'|'Documentation'|'Case Study'), description, file_url, featured, published. |
| update_contentA | Update fields on an existing blog post, case study, or resource. Identify the row by slug or id, and pass only the fields you want to change. |
| set_content_publishedA | Toggle the published flag on a blog post, case study, or resource. Optionally set a future publish_at timestamp for scheduled publishing (blog_posts and case_studies only). |
| delete_contentA | Permanently delete a blog post, case study, or resource by slug. This cannot be undone — confirm with the user before calling. |
| list_job_postingsA | List all career/job postings, optionally filtered to published-only. |
| create_job_postingC | Create a new job posting on the careers page. |
| update_job_postingB | Update fields on an existing job posting, identified by id. |
| delete_job_postingA | Permanently delete a job posting. Prefer unpublishing (update_job_posting with published: false) if you just want to close applications while keeping history. |
| list_job_applicationsA | List applications submitted for job postings. Filter by career_id or status. Status is typically one of: new, reviewing, interviewing, offered, rejected, hired (site-defined, not enforced by DB). |
| update_job_application_statusC | Update the status of a job application (e.g. move a candidate to 'interviewing'). |
| list_consultation_requestsA | List inbound consultation/demo requests submitted via the site's contact form. Filter by status (e.g. 'new', 'replied', 'closed' — site-defined). |
| get_consultation_requestA | Fetch a single consultation request along with its internal notes thread. |
| update_consultation_requestA | Update a consultation request's status and/or admin_notes. Use add_inquiry_note instead if you want to append a timestamped note rather than overwrite admin_notes. |
| add_inquiry_noteA | Append an internal note to a consultation request's thread (does not overwrite prior notes). |
| list_newsletter_subscribersB | List email newsletter subscribers, most recent first. |
| list_newsletter_sendsA | List past newsletter campaigns that were sent, with subject, sent/failed counts, and timestamps. |
| get_content_analyticsA | Per-content-item view counts, average time on page, average scroll depth, and last-viewed timestamp, across blog posts, case studies, and resources. Sorted by view count descending. |
| get_content_insightsA | Automated content performance categorization: top-performing ('stellar'), recently trending ('improving'), and stale/underperforming content, each with a suggested next action. |
| get_daily_viewsB | Daily page-view counts and unique session counts over a trailing window. |
| get_unique_visitors_countA | Total count of distinct visitors tracked across all time. |
| get_audience_breakdownB | Visitor breakdown by dimension (e.g. device_type, browser, os, country) with counts per value. |
| get_conversion_statsA | Conversion counts and rates by conversion type (e.g. newsletter signup, consultation request) derived from tracked content views. |
| get_analytics_detailA | Paginated raw page-view events with full detail: session, device, browser, os, country, city, referrer, scroll depth, time on page, and any conversion. Use for drill-down investigation; prefer the summary tools for regular reporting. |
| get_admin_activity_logB | Recent admin actions taken across the site (content edits, publishes, etc.), most recent first. |
| send_newsletterA | Send a newsletter campaign to all subscribers via the site's send-newsletter function (Resend). This actually dispatches real emails — confirm the subject and HTML content with the user before calling. |
| reply_to_consultationA | Send an email reply to someone who submitted a consultation/demo request, via the site's reply-consultation function. This sends a real email to the requester and marks the request as replied. Confirm the message with the user before calling. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Most tools are clearly scoped to a single resource and action, and the descriptions clarify boundaries. The main risk is among the seven analytics tools, but their differing timeframes and aggregation levels are distinct enough to avoid serious misselection.
Tool names consistently follow a verb_noun snake_case pattern: list_, get_, create_, update_, delete_, set_, add_, send_, and reply_. Even mixed pluralization like list_job_applications vs get_consultation_request does not undermine the clear convention.
At 28 tools, the server exceeds the 25-tool threshold and feels heavy even though it spans several domains. The tools are individually useful, but the overall surface is large enough that an agent may struggle to scan and choose efficiently.
Content, job postings, consultation requests, newsletters, and analytics are largely well covered with sensible lifecycle operations. Minor gaps exist, such as no single get_job_posting tool and no subscriber management beyond listing and sending, but these can be worked around.