sheepit-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DO_NOT_TRACK | No | Set to 1 to disable telemetry. Cross-vendor convention. | |
| SHEEPIT_API_KEY | No | API key for authentication. Used as fallback if ~/.sheepit/credentials.json is not present. | |
| SHEEPIT_API_URL | No | Base URL for the Sheepit API. (Optional, defaults to api.goatech.ai) | |
| SHEEPIT_PROFILE | No | Profile identifier. Used as fallback if ~/.sheepit/credentials.json is not present. | |
| SHEEPIT_TELEMETRY | No | Set to 0 or false to disable Sheepit-specific telemetry. |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sheepit_helpA | Returns a curated overview of what this MCP server can do, or a deep-dive on a specific area. Call this WITHOUT a topic when the user asks 'what can I do?' / 'how do I get started?' / 'what is Sheepit?' (or the Spanish equivalents — '¿qué es sheepit?' / '¿qué puedo hacer?' / '¿qué herramientas tiene sheepit?'). Call WITH a topic when the user asks about a specific area (campaigns, destinations, dashboards, insights, feedback, credentials). Pass |
| sheepit_quickstartA | Returns a step-by-step recipe naming the exact tool calls to chain for a specific goal. Use when the user has a clear intent ('send a marketing email', 'analyze the signup funnel', 'wire a webhook' — or in Spanish 'enviar un email de marketing', 'analizar el funnel de signups', etc.). Pass |
| event_catalog_canonicalA | Returns the events GoaTech understands out of the box (so they appear in pre-built dashboards / templates without manual rework) merged with the project's own registered custom events. Call this BEFORE writing any new |
| group_listA | List user groups in the current project. Cursor-paginated, with optional free-text search across key and name. Use this BEFORE group_create to confirm the group doesn't already exist. |
| group_createA | Create a new user group in the current project. Group keys are snake_case slugs unique per project. After creating, add members with |
| group_add_memberA | Add a user to a user group, by user UUID OR email. Provide exactly ONE of |
| group_remove_memberA | Remove a user from a group by group id + user id. Returns 404 if the user wasn't a member. Idempotent in spirit — caller can treat 404 here as 'already gone' rather than an error. |
| campaign_listB | List campaigns in the current project. Supports cursor pagination, status filter, free-text search across name/key/goal. |
| campaign_getA | Fetch a single campaign by id with full audience / channels / creative / metric / budget / schedule / status. |
| campaign_createC | Create a new campaign in |
| campaign_updateA | Patch a campaign. ALLOWED only in |
| campaign_previewA | Dry-run the campaign and return the launch plan + a single-use |
| campaign_launchA | Move a campaign from draft|paused → scheduled|running. REQUIRES a fresh |
| campaign_pauseC | Pause a scheduled or running campaign. Pause is reversible via campaign_resume. |
| campaign_resumeA | Resume a paused campaign (paused → running). Re-validates launchability — empty audience / channels / creative / metric will reject. |
| campaign_completeA | Move a scheduled / running / paused campaign to |
| campaign_archiveA | Archive a completed (or never-launched draft) campaign. Removes it from the default list view but keeps history. |
| campaign_resultsA | Fetch the latest results snapshot for a campaign. v1 only stores the latest aggregate (impressions, clicks, conversions, by_channel, by_variant); time-series snapshots land with the destinations framework. |
| destination_catalogA | Read-only enumeration of every destination adapter the server currently knows about (webhook, resend, etc.). Use this to discover which |
| destination_listA | List destination configs installed in the current project. Filter by connector_id (e.g. only Resend installs) or status (active|paused|failed). |
| destination_getA | Fetch a single destination config by id with the full saved config + filters + last delivery state. |
| destination_createA | Install a destination adapter into the current project. |
| destination_updateA | Update name / config / filters / status of an existing destination. Status transitions allowed: active ↔ paused (the "failed" state is system-set after consecutive delivery errors and cannot be set manually). Trinary semantics for nullable fields: omit = preserve, send a new value to overwrite. |
| destination_deleteA | Soft-delete a destination — it stops being eligible for campaign dispatch but its history (audit log of past deliveries) is retained. |
| destination_testA | Run the adapter's connection check against the saved config. For webhooks: GETs the URL to verify it's reachable. For Resend: lists domains with the API key to verify auth. Does NOT send a real campaign payload. |
| dashboard_listA | List every dashboard installed in the current project (excludes archived). Returns id / name / description / created_at per row. Use dashboard_get for the full widget list. |
| dashboard_getA | Fetch a single dashboard by id, including the full widget list (each with its query, viz, and position). Use this to understand what's on a dashboard before editing it. |
| dashboard_createA | Create an empty dashboard with |
| dashboard_updateA | Update name / description / layout of an existing dashboard. Trinary semantics for nullable fields: omit = preserve, send |
| dashboard_deleteA | Soft-delete a dashboard — it stops appearing in dashboard_list but its history is retained. Templates can't be deleted. |
| dashboard_template_listA | Read-only enumeration of every starter dashboard the platform ships with. Returns id / name / tagline / description / icon / widget_count per template. Use dashboard_template_get(id) to retrieve the full widget specs, then materialize via dashboard_create + widget_create calls. |
| dashboard_template_getA | Returns the full blueprint for a template (id, name, description, icon, full widgets array with each query + viz + position). Use this to fetch the recipe, then call dashboard_create + a widget_create per item to materialize it. Returns 404 if the template id is unknown. |
| widget_createA | Create a new widget on the given dashboard. |
| widget_updateB | Update name / description / position / query / viz of a single widget. Trinary semantics for nullable fields. For bulk position changes (drag/drop save), prefer the dashboard layout endpoint at the API level — this tool is for one-widget edits. |
| widget_deleteA | Hard-delete a widget. The dashboard remains; only this single widget is removed. |
| insights_queryA | Execute a one-shot InsightsQuery without saving it as a widget. Use this to answer questions like 'how many signups yesterday?' / 'errors-per-hour by app version this week?' / 'which utm_source converted best in the last 30 days?'. Input envelope: |
| release_listA | List releases newest-first with each release's CURRENT pre-computed health verdict (healthy/degraded/critical/unknown) and crash-free + error + latency rates. The verdict is computed server-side — read health_status, do not recompute it from the rates. Filter by platform, channel, or status (status='active' means deployed to production). Supports cursor pagination: pass cursor from pagination.cursor to fetch the next page. Use release_health for the full four-signal breakdown of one release, and release_regressions to find releases that got WORSE. |
| release_healthA | Return the full pre-computed health verdict and all four signals (crash-free, error rate, p95 latency, conversion) for ONE release, plus code context (commit SHA, PR number, PR title, branch, commit count) and the delta vs the prior release. health_status and health_score are authoritative — narrate them, never derive your own verdict from the individual rates. conversion_rate may be null when business metrics are not instrumented for this project; do not treat null as 0%. |
| release_regressionsA | List releases that REGRESSED (crash-free rate dropped past the server's significance gate), newest-first, optionally since a timestamp. kind='release' means the release degraded vs the prior release; kind='change' means it degraded right after a specific flag/config change (see change_entity_key). The drop is detected server-side — report crash_free_delta as given, do not recompute it. crash_free_delta of 0 on a kind='change' entry may mean the delta was not computable — check pre/post_crash_free_rate to confirm before treating 0 as a true no-change reading. Use release_health(release_id) to investigate a specific regression in depth. |
| feedback_submitA | File a bug report, feature request, or general note for the Sheepit team. The friction barrier between 'this is annoying' and 'report filed' is one tool call — use it. Call this proactively when the user expresses frustration ('this is confusing', 'I wish I could…', 'it should…'), when a tool returns a confusing error, or when you hit an obvious gap (a missing connector, a missing widget type, an unclear field name). Always confirm with the user before calling — quote their words back so the message is their voice, not yours. Returns the feedback id and createdAt timestamp. The MCP auto-stamps source/version metadata; you only supply type + message. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sheepit-ai/sheepit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server